Vous êtes sur la page 1sur 322

Universidad Nacional del Nordeste Facultad de Ciencias Exactas, Naturales y Agrimensura Trabajo Final de Aplicacin

Sistema Web con Acceso a Bases de Datos Multiplataforma a Travs de Telfonos Celulares

Soa J. Vallejos - L.U.: 37.032 Prof. Coordinador: Agr. Castor Herrmann Prof. Orientador: Mgter. David Luis la Red Martnez. Licenciatura en Sistemas de Informacin Corrientes - Argentina 2010

En memoria de mi abuelo Pedro R. Vallejos

Prefacio
En los ltimos aos, la evolucin de la tecnologa ha dado un salto inesperado. El boom tecnolgico de la nueva generacin se traduce en trminos de telefona celular e Internet, las cuales, ms que ser realidades separadas se complementan. Sin embargo, el desarrollo de estos dos tipos de tecnologa llega a un punto en el cual convergen, y es cuando la red de comunicaciones a nivel mundial se abre y sobrepasa las expectativas de sus creadores; Internet deja de ser para uso exclusivo de la milicia y el gobierno, y combinada con los servicios de telefona se transforma en un medio de interaccin social que actualmente est presente en todos los mbitos de la vida diaria. En la actualidad, estas tecnologas se combinan en una sola; los celulares ya no se limitan a la funcin de comunicar a dos personas entre s, sino que ahora han evolucionado hasta incluir modalidades como el acceso a Internet en casi todos sus aspectos (transmisin de datos, mp3, tele conferencia, transmisin de archivos fotogrcos y videos, etc.). Esto trae consigo inumerables ventajas; acelera el ritmo de obtencin de informacin, facilita las comunicaciones, reduce los tiempos de emisin y respuesta; es decir, transforma la vida diaria en todo un acontecimiento tecnolgico, todo esto anudado al crecimiento econmico de las sociedades, y ms all, a todos los cambios en el orden natural de las cosas que la tecnologa genera. Habiendo observado de manera amplia y constante los numerosos cambios que la telefona mvil y la Internet han dictado sobre la comunidad global, surge en mi el inters por conocer ms detalladamente los aspectos que delinean esta revolucin en nuestro propio entorno. Para satisfacer lo anteriormente mencionado, en este trabajo se propuso el desarrollo de una aplicacin con software de computacin mvil multiplataforma, que permita el acceso a informacin situada en una base de datos multiplataforma en un servidor Web, a travs de dispositivos mviles tales como telfonos celulares. La aplicacin contempla el registro y seguimiento de informacin propia de una entidad farmacutica, es decir la informacin pertinente del cliente, la compra de productos y medicamentos de venta libre. Esto signica para los clientes la posibilidad de auto gestionar sus compras

en cualquier momento y en cualquier lugar sin tener que asistir fsicamente a las sucursales de la farmacia y con slo la ayuda de un telfono celular moderno. A su vez se propuso el desarrollo de una plataforma Web de la aplicacin que sea accesible desde la Intranet, que contemple funciones adicionales como ser: registro de usuarios, control de stock de los productos y medicamentos de venta libre. Se propuso tambin el desarrollo de un sitio Web accesible desde Internet, que simula ser el sitio de una farmacia, el cual contemple funciones de e-commerce como ser: registro de clientes, venta de los productos y/o medicamentos on-line, permitiendo a un cliente poder realizar su compra de manera virtual. Objetivos Logrados Se han alcanzado plenamente la totalidad de los objetivos planteados para el presente trabajo: Desarrollo de una aplicacin utilitaria empleando un software de computacin mvil multiplataforma para telfonos celulares, que permita acceder a informacin remota situada en una base de datos que se encuentra en un servidor web. Desarrollo de la plataforma web de la aplicacin con accesos a base de datos, que sirva de apoyo a la aplicacin mvil. Clasicacin del Trabajo El trabajo se encuadra en la utilizacin de software de base que permite el desarrollo de aplicaciones que permitan el acceso a bases de datos multiplataformas desde dispositivos mviles tales como telfonos celulares. Etapas de Desarrollo Se ha efectuado una amplia recopilacin bibliogrca especca a los temas pertinentes a la tarea planicada y a los productos de software que se emplearon para la concrecin del Trabajo Final. Gracias a las gestiones realizadas por el Profesor Orientador Mgter. David Luis la Red Martinez ante IBM Argentina se han recibido materiales tanto en CDs como en libros de dicha empresa, en el marco

de Scholars Program de la misma, destinado a Universidades de todo el mundo; se destacan por ser necesarios para la realizacin del presente Trabajo Final los referentes productos de software como los siguientes: Rational Application Developer for WebSphere Software versin 6.0. DB2 Express-C versin 9.7. Se ha efectuado un estudio acerca de las arquitecturas de aplicaciones mviles. Se ha realizado el anlisis y diseo de la base de datos que utiliza la aplicacin. Se ha realizado el estudio del manejador de bases de datos DB2 ExpressC para Windows. Se ha realizado un detallado estudio del J2ME (versin de Java para mviles), para la herramienta de desarrollo NetBeans IDE versin 6.7.1. Se ha realizado un detallado estudio del software para el desarrollo de la plataforma web de la aplicacin, Rational Application Developer for WebSphere Software versin 6.0. Se ha desarrollado el aplicativo mvil con la utilizacin del lenguaje Java, versin J2ME. En el marco de la herramienta Rational Application Developer for WebSphere Software se desarroll el mdulo web del aplicativo utilizando pginas XHTMLs y Servlets de Java. Una vez nalizada la etapa de desarrollo se realizaron las siguientes actividades: Instalacin y conguracin del Rational Application Developer for WebSphere Software, utilizando como servidor web al servidor Tomcat vesin 5.0, el cual se encuentra embebido en dicha herramienta. Empaquetado de la aplicacin mvil para su distribucin e instalacin en los telfonos celulares. Instalacin de emuladores de telfonos celulares que fueron descargados desde los sitios webs de los fabricantes de los mismos. Instalacin y prueba de la aplicacin tanto en los emuladores como as tambin en telfonos celulares reales.

Testeo del sistema, simulando un escenario real realizando pruebas de conexin entre el sistema mvil y el servidor web a travs de Internet. Finalizada la aplicacin se realiz la grabacin en DVD de todo el material correspondiente al trabajo nal: una versin de la aplicacin, otra referente al libro en formato LaTex y el PDF generado. Tambin se incluy los instaladores de los productos utilizados para el desarrollo, es decir DB2 Express-C, Rational Application Developer for WebSphere, NetBeans IDE y emuladores. Organizacin del Informe Final El Trabajo Final de Aplicacin comprende un informe nal impreso y un DVD adems de un resmen y de un resmen extendido. El informe nal est organizado en captulos los que se indican a continuacin: Introduccin: Se presenta una visin global acerca de las nuevas tecnologas de informacin y comunicaciones, como as tambin las principales caractersticas de la tecnologa mvil, computacin ubicua y de la sociedad de la informacin y el conocimiento. Comercio Electrnico: Se indican deniciones y las principales caractersticas del Comercio Electrnico. El Mundo Mvil : Se indican las principales caractersticas de la evolucin de los sistemas de telefona mvil. Aplicaciones Mviles: Se explican los requerimientos necesarios para una aplicacin mvil. Java: Se presentan los principales aspectos y destacadas caractersticas referidas al lenguaje. Java 2 Micro Edition: Se detallan conceptos y caractersticas del lenguaje Java para dispositivos electronicos con menos recursos. Introduccin al DB2: Se detallan las ms relevantes caractersticas de esta familia de productos de gestin de bases de datos.

Rational Application Developer for WebSphere Software: Presenta los principales aspectos de este entorno de aplicaciones complejas. NetBeans IDE: Presenta los principales aspectos de este entorno para el desarrolo de aplicaciones moviles. Tomcat: Presenta las principales caractersticas y aspectos de este servidor web con soporte de Servlets y JSPs. Descripcin de la aplicacin: Se describen todos los aspectos de la aplicacin desarrollada utilizando las herramientas antes mencionadas. Conclusiones: Se presentan conclusiones a las que se ha llegado al nalizar el presente trabajo y posibles lneas futuras de accin. El DVD adjunto al informe nal impreso, contiene lo siguiente: Instaladores del software utilizado. Resmenes del trabajo realizado. Informe nal en formato digital. Presentacin para la defensa nal. Aplicacin desarrollada. Soa J. Vallejos Licenciatura en Sistemas de Informacin Universidad Nacional del Nordeste L.U.: 37032 Corrientes; 10 de Diciembre de 2010

ndice general
1. Introduccin 1.1. Visin Global . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Computacin Ubicua o Pervasiva . . . . . . . . . . . . . 1.2.1. Principios . . . . . . . . . . . . . . . . . . . . . . 1.2.2. Hacia las Cosas Inteligentes e Interconectadas . . 1.2.3. La Ley de Moore y la Visin de Weiser . . . . . 1.3. La Sociedad de la Informacin y el Conocimiento . . . . 1.3.1. Denicin de Conocimiento . . . . . . . . . . . . 1.3.2. Proceso de Formacin del Conocimiento . . . . . 1.3.3. Clases de Conocimiento . . . . . . . . . . . . . . 1.3.4. Ciclo del Conocimiento . . . . . . . . . . . . . . 1.3.5. Caractersticas de la Sociedad del Conocimiento 1.3.6. Gestin del Conocimiento . . . . . . . . . . . . . 1.3.7. Tecnologas de la Gestin del Conocimiento . . . 2. Comercio Electrnico 2.1. Visin Global . . . . . . . . . . . . . . . . . . . . . . . 2.2. Deniciones . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Origen y Evolucin Histrica . . . . . . . . . . . . . . 2.4. Ventajas del Comercio Electrnico . . . . . . . . . . . 2.4.1. Ventajas para los Clientes . . . . . . . . . . . . 2.4.2. Ventajas para las Empresas . . . . . . . . . . . 2.5. Tipos de Comercio Electrnico . . . . . . . . . . . . . 2.5.1. B2B (Business-to-Business) . . . . . . . . . . . 2.5.2. B2E (Business to Employe) . . . . . . . . . . . 2.5.3. B2C (Business-to-Consumer) . . . . . . . . . . 2.5.4. B2B2C . . . . . . . . . . . . . . . . . . . . . . 2.6. M-Commerce . . . . . . . . . . . . . . . . . . . . . . . 2.7. Comercio Electrnico en la Sociedad del Conocimiento . . . . . . . . . . . . . 1 1 3 3 5 6 7 8 8 9 9 10 12 12 15 15 16 17 19 19 20 22 22 23 24 26 26 28

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

NDICE GENERAL

2.8. Riesgos, Usos y Tecnologa . . . . . . . . . . . . . . . 2.8.1. Riegos . . . . . . . . . . . . . . . . . . . . . . 2.8.2. Usos . . . . . . . . . . . . . . . . . . . . . . . 2.8.3. Teconolgas que emplea . . . . . . . . . . . . 2.9. Tipos de Relaciones, Cambios y Efectos . . . . . . . 2.9.1. Tipos de Relaciones que Pueden Presentarse 2.9.2. Cambios en las Empresas . . . . . . . . . . . 2.9.3. Efectos . . . . . . . . . . . . . . . . . . . . . 2.10. Los Intermediarios . . . . . . . . . . . . . . . . . . . 2.10.1. Tipos de Intermediarios . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

28 28 30 31 31 31 32 33 34 37

3. El Mundo Mvil 41 3.1. Evolucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.2. Telfonos Mviles de Primera Generacin . . . . . . . . . . . . 42 3.2.1. Sistema Avanzado de Telefona Mvil . . . . . . . . . . 43 3.3. Telfonos Mviles de Segunda Generacin . . . . . . . . . . . . 45 3.3.1. D-AMPS - El Sistema Avanzado de Telefona Mvil Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.3.2. GSM (Sistema Global Para Comunicaciones Mviles) . 46 3.3.3. CDMA (Acceso Mltiple por Divisin de Cdigo) . . . . 48 3.4. Telfonos Mviles de Tercera Generacin . . . . . . . . . . . . . 49 3.4.1. EDGE (Tasa de Datos Mejorada para la Evolucin del GSM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.4.2. GPRS (Servicio de Radio de Paquetes Generales) . . . . 50 3.5. Servicios Adicionales de las Empresas Telefnicas . . . . . . . . 51 3.5.1. Servicios Analgicos . . . . . . . . . . . . . . . . . . . . 51 3.5.2. Recepcin y Envo de Mensajes de Texto . . . . . . . . 51 3.5.3. Servicios de Informacin . . . . . . . . . . . . . . . . . . 52 3.5.4. Mensajes Multimedia . . . . . . . . . . . . . . . . . . . 53 3.5.5. Juegos y Aplicaciones . . . . . . . . . . . . . . . . . . . 53 3.5.6. Internet Mvil . . . . . . . . . . . . . . . . . . . . . . . 54 3.6. WAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.6.1. Introduccin a WAP . . . . . . . . . . . . . . . . . . . . 56 3.6.2. Motivacin . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.6.3. Modelo de WAP . . . . . . . . . . . . . . . . . . . . . . 57 3.6.4. Tecnologa . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.6.5. WAP 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4. Aplicaciones Mviles 67 4.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

NDICE GENERAL

4.2. 4.3. 4.4. 4.5.

Arquitectura de Aplicaciones Mviles . Portal Para Aplicaciones Mviles . . . Arquitectura de Bases de Datos . . . . Aplicaciones Multiplataforma . . . . . 4.5.1. Java y Multiplataforma . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68 70 73 76 76 79 79 81 82 83 84 85 85 86 87 87 88 90 90 91 91 91 91 92 92 92 93 93 94 94 94 95 96 99 100 104 105 105 106

5. Java 5.1. Introduccin al Lenguaje . . . . . . . . . . . . . . . 5.1.1. Bibliotecas de Clases Estndares de Java . 5.1.2. Java es Multiplataforma . . . . . . . . . . . 5.1.3. Caractersticas del Lenguaje . . . . . . . . . 5.2. Estructura de un Programa Java . . . . . . . . . . 5.3. Conceptos Bsicos . . . . . . . . . . . . . . . . . . 5.3.1. Clases . . . . . . . . . . . . . . . . . . . . . 5.3.2. Herencia . . . . . . . . . . . . . . . . . . . . 5.3.3. Interfaces . . . . . . . . . . . . . . . . . . . 5.3.4. Package . . . . . . . . . . . . . . . . . . . . 5.4. Variables de Java . . . . . . . . . . . . . . . . . . . 5.4.1. Datos de Objetos o Instancia . . . . . . . . 5.4.2. Datos de Clase . . . . . . . . . . . . . . . . 5.5. Operadores del Lenguaje Java . . . . . . . . . . . . 5.5.1. Operadores Aritmticos . . . . . . . . . . . 5.5.2. Operadores de Asignacin . . . . . . . . . . 5.5.3. Operadores Unarios . . . . . . . . . . . . . 5.5.4. Operador Instanceof . . . . . . . . . . . . . 5.5.5. Operador Condicional . . . . . . . . . . . . 5.5.6. Operadores Incrementales . . . . . . . . . . 5.5.7. Operadores Relacionales . . . . . . . . . . . 5.5.8. Operadores de Concatenacin de Caracteres 5.6. Estructuras de Programacin . . . . . . . . . . . . 5.6.1. Sentencias o Expresiones . . . . . . . . . . . 5.6.2. Comentarios . . . . . . . . . . . . . . . . . 5.6.3. Bifurcaciones . . . . . . . . . . . . . . . . . 5.6.4. Bucles . . . . . . . . . . . . . . . . . . . . . 5.7. Servlets . . . . . . . . . . . . . . . . . . . . . . . . 5.7.1. Estructura de un Servlet . . . . . . . . . . . 5.7.2. Instanciacin e Inicializacin . . . . . . . . 5.7.3. Servicio de Demanda . . . . . . . . . . . . . 5.7.4. Terminacin . . . . . . . . . . . . . . . . . . 5.7.5. Java Server Faces . . . . . . . . . . . . . . .

NDICE GENERAL

5.7.6. Desarrollando Aplicaciones . . . . . . . . . . . . . . . . 111 6. Java 2 Micro Edition 113 6.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.1.1. Comparacin de Versiones . . . . . . . . . . . . . . . . . 114 6.1.2. Algunas Consideraciones al Desarrollar en J2ME . . . . 117 6.2. Componentes de J2ME . . . . . . . . . . . . . . . . . . . . . . . 118 6.2.1. Mquinas Virtuales J2ME . . . . . . . . . . . . . . . . . 119 6.2.2. Conguraciones . . . . . . . . . . . . . . . . . . . . . . . 122 6.2.3. Perles 125 6.3. Requerimientos Funcionales para Detectar una Aplicacin J2ME 130 6.4. Los MIDlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 6.4.1. El Gestor de Aplicaciones . . . . . . . . . . . . . . . . . 132 6.4.2. Ciclo de Vida de un MIDlet . . . . . . . . . . . . . . . . 132 6.4.3. Estados de un MIDlet . . . . . . . . . . . . . . . . . . . 134 6.4.4. El Paquete javax.microedition.midlet . . . . . . . . . . . 134 6.4.5. La Clase MIDlet . . . . . . . . . . . . . . . . . . . . . . 135 6.4.6. Estructura de los MIDlets . . . . . . . . . . . . . . . . . 137 6.5. Interfaces Grcas de Usuario . . . . . . . . . . . . . . . . . . . 139 6.5.1. La Clase Display . . . . . . . . . . . . . . . . . . . . . . 141 6.5.2. La Clase Displayable . . . . . . . . . . . . . . . . . . . . 141 6.5.3. Las Clases Command y CommandListener . . . . . . . . 141 6.5.4. Interfaz de Usuario de Alto Nivel . . . . . . . . . . . . . 145 6.6. RMS (Record Management System) . . . . . . . . . . . . . . . 154 6.6.1. Modelo de Datos . . . . . . . . . . . . . . . . . . . . . . 156 6.6.2. Record Stores . . . . . . . . . . . . . . . . . . . . . . . . 157 6.6.3. Creacin de un Record Store . . . . . . . . . . . . . . . 158 6.6.4. Manipulacin de Registros . . . . . . . . . . . . . . . . . 159 6.6.5. Operaciones con Record Stores . . . . . . . . . . . . . . 168 6.6.6. Bsqueda de Registros . . . . . . . . . . . . . . . . . . . 169 6.7. Comunicaciones en J2ME . . . . . . . . . . . . . . . . . . . . . 170 6.7.1. Clases y Conexiones del Generic Connection Framework 170 6.7.2. Comunicaciones HTTP . . . . . . . . . . . . . . . . . . 174 7. Introduccin al DB2 185 7.1. Bases de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 7.1.1. Objetivos de las Bases de Datos . . . . . . . . . . . . . 186 7.1.2. Ventajas de las Bases de Datos . . . . . . . . . . . . . . 186 7.2. Sistema de Administracin de Bases de Datos . . . . . . . . . 187

NDICE GENERAL

7.3. Organizacin de Bases de Datos . . . . . . . . . . . . . . . 7.3.1. Bases de Datos Jerrquicas . . . . . . . . . . . . . . 7.3.2. Bases de Datos en Red . . . . . . . . . . . . . . . . 7.3.3. Bases de Datos Relacional . . . . . . . . . . . . . . 7.4. Introduccin a DB2 UDB . . . . . . . . . . . . . . . . . . . 7.4.1. Caractersticas Generales del DB2 UDB . . . . . . 7.5. DB2 Express-C . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.1. Informacin Tcnica . . . . . . . . . . . . . . . . . . 7.5.2. DB2 para Linux, UNIX y Windows Caractersticas Benecios . . . . . . . . . . . . . . . . . . . . . . . . 7.5.3. Herramientas de DB2 . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . y . . . .

189 189 190 190 192 193 196 196 197 199 205 205 206 208 209 210 211 211 212 212 213 214 214 215 215 216 216 216 217 225 225 225 226 226 226 227

8. Rational Application Developer 8.1. Qu es RAD 6.0? . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1. Rational Software Development Platform . . . . . . . . 8.1.2. Rational Application Developer for WebSphere Software se extiende de Eclipse . . . . . . . . . . . . . . . . . . . 8.1.3. Desarrollo Web . . . . . . . . . . . . . . . . . . . . . . . 8.1.4. Desarrollo de Java . . . . . . . . . . . . . . . . . . . . . 8.1.5. Editor Visual de Java . . . . . . . . . . . . . . . . . . . 8.1.6. Servicios de Desarrollo Web . . . . . . . . . . . . . . . . 8.1.7. XML para el Desarrollo . . . . . . . . . . . . . . . . . . 8.1.8. Desarrollo de Base de datos . . . . . . . . . . . . . . . . 8.1.9. Desarrollo de Portales . . . . . . . . . . . . . . . . . . . 8.1.10. Desarrollo J2EE . . . . . . . . . . . . . . . . . . . . . . 8.1.11. Equipo de Desarrollo . . . . . . . . . . . . . . . . . . . . 8.1.12. Especicacin de Arquitectura. UML . . . . . . . . . . . 8.1.13. Pruebas e Implementacin . . . . . . . . . . . . . . . . . 8.1.14. Asistencia Tcnica de Servidor . . . . . . . . . . . . . . 8.2. WebSphere Application Server . . . . . . . . . . . . . . . . . . 8.2.1. Qu es WebSphere? . . . . . . . . . . . . . . . . . . . . 8.2.2. Que es WebSphere Application Server? . . . . . . . . . 9. Tomcat 9.1. Descripcin . . . . . . . . . 9.2. Entorno . . . . . . . . . . . 9.3. Estado de su Desarrollo . . 9.4. Estructura de Directorios . 9.5. Caractersticas del Producto 9.6. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

NDICE GENERAL

10.NetBeans 10.1. Introduccin . . . . . . . . . . . . . . . . . . . 10.2. Qu hay de nuevo en 6.7.1? . . . . . . . . . . 10.2.1. Tecnologas compatibles: . . . . . . . . 10.2.2. Servidores de Aplicaciones: . . . . . . 10.2.3. Requisitos del Sistema . . . . . . . . . 10.2.4. Conguraciones de hardware mnimos 10.2.5. Software Necesario . . . . . . . . . . . 10.2.6. Compatibilidad . . . . . . . . . . . . . 10.3. NetBeans y las Aplicaciones Moviles . . . . . 10.4. SDK de Nokia S60 . . . . . . . . . . . . . . . 10.5. Nuevo Proyecto Utilizando J2ME . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

229 229 230 230 231 232 232 232 232 233 233 235

11.Descripcin de la Aplicacin 239 11.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 11.2. Estructuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 11.3. Estructuracin . . . . . . . . . . . . . . . . . . . 11.3.1. La Aplicacin Mvil (Farmacia Corrientes 11.3.2. La Aplicacin Web . . . . . . . . . . . . . 11.4. Estructuras de Datos Utilizadas . . . . . . . . . . 11.4.1. Modelo de datos . . . . . . . . . . . . . . . . . . Mvil) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 243 264 284 285

12.Conclusiones 291 12.1. Conclusiones Generales . . . . . . . . . . . . . . . . . . . . . . . 291 12.2. Conclusiones Acerca de las Tecnologas y Software Utilizados . 292 12.3. Lneas Futuras de Accin . . . . . . . . . . . . . . . . . . . . . 293

Bibliografa ndice alfabtico

295 297

ndice de guras
1.1. Mark Weiser (1952-1999), el Visionario de la Computacin Ubicua 7 1.2. La Cadena del Conocimiento . . . . . . . . . . . . . . . . . . . 10 1.3. La Era de la Informacin . . . . . . . . . . . . . . . . . . . . . 11 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. Sistema Telefnico Mvil . . . . . . . . Un canal D-AMPS con 3 y 6 usuarios. Algunos Juegos Conocidos. . . . . . . Modelo Wap. . . . . . . . . . . . . . . Modelo de la Red Wap. . . . . . . . . Pilas de Protocolos TCP/IP y WAP. . Modelo de Programacin Wap. . . . . Modelo Proxy para WAP 2.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 46 54 58 58 61 64 64 74

4.1. Arquitectura de un Portal Mvil. . . . . . . . . . . . . . . . . . 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7. 6.8.

Mecanismo de Mensajes . . . . . . . . . . . . . . . . . . . . . . 81 Proceso Compilacin y Ejecucin . . . . . . . . . . . . . . . . . 83 Jerarqua y Mtodos de las Principales Clases para Crear Servlets.101 Ciclo de Vida de un Servlet. . . . . . . . . . . . . . . . . . . . . 104 Requerimiento de un archivo JSP. . . . . . . . . . . . . . . . . 110 Requerimiento de un Servlet . . . . . . . . . . . . . . . . . . . . 110 Arquitectura de la Plataforma Java Ubicacin de las Tecnologas Java . Proceso de Vericacin . . . . . . . Entorno de Ejecucin de J2ME . . Ciclo Vida de un MIDlet. . . . . . Estados de un MIDlet. . . . . . . . Jerarqua de Clases. . . . . . . . . Un MIDlet y el RMS . . . . . . . . 2 de . . . . . . . . . . . . . . . . . . . . . Sun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 117 121 126 133 135 140 156

NDICE DE FIGURAS

6.9. Acceso a Un RMS a Travs de Un MIDlet Suite 6.10. Estructura de Un Record Store . . . . . . . . . 6.11. Ejemplo en un emulador Nokia. . . . . . . . . . 6.12. Jerarqua de Interfaces . . . . . . . . . . . . . . 6.13. Estados de una Conexin HTTP . . . . . . . . 7.1. 7.2. 7.3. 7.4. 7.5. 7.6. 7.7. 7.8. 7.9.

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

157 158 168 171 175 188 188 190 191 192 195 195 200 201 202 203 204

Estructura de Una Base de Datos . . . . . . . . . . . . . . . . . Sistema de Administracin de Bases de Datos . . . . . . . . . . Modelo de Bases de Datos Jerrquica. . . . . . . . . . . . . . . Modelo de Bases de Datos en Red. . . . . . . . . . . . . . . . . Modelo de Bases de Datos Relacional. . . . . . . . . . . . . . . AIV Extender. . . . . . . . . . . . . . . . . . . . . . . . . . . . XML Extender. . . . . . . . . . . . . . . . . . . . . . . . . . . . Centro de Control. . . . . . . . . . . . . . . . . . . . . . . . . . Lanzando Centro de Control de DB2 desde la bandeja de Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.10. El Editor de Comandos DB2. . . . . . . . . . . . . . . . . . . . 7.11. El icono Editor de Comandos en El Centro de Control. . . . . . 7.12. El SQL Assist. . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.1. RAD. Entorno de Trabajo. . . . . . . . . . . . . . . . . . . . . 207 8.2. WebSphere para e-bussines. . . . . . . . . . . . . . . . . . . . . 218 10.1. Aadir Platforma Java . . . . . . . . 10.2. Ventana: Nuevo Proyecto. . . . . . . 10.3. Ventana: Nombre y Localizacin. . . 10.4. Ventana: Seleccin de la Plataforma. 10.5. Ventana: Conguracin Adicional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 235 236 237 237 242 243 245 247 248 249 250 251 252 253 254 256

11.1. Caso de Uso del Sitema. . . . . . . . . . . . . 11.2. Arquitectura del Sistema. . . . . . . . . . . . 11.3. Pantalla Principal Farmacia Corrientes Movil. 11.4. Inicio. . . . . . . . . . . . . . . . . . . . . . . 11.5. Pantallas de Ingreso al Sistema. . . . . . . . . 11.6. Pantalla Conectando . . . . . . . . . . . . . . 11.7. Pantalla Error. . . . . . . . . . . . . . . . . . 11.8. Pantalla Datos del Cliente. . . . . . . . . . . 11.9. Pantalla Catalogo(Rubros). . . . . . . . . . . 11.10. nicio 2. . . . . . . . . . . . . . . . . . . . . . I 11.11. atalogo. . . . . . . . . . . . . . . . . . . . . C 11.12. antalla Descripcin de la Presentacin. . . . P

NDICE DE FIGURAS

11.13. antalla Descripcin de la Compra. . . . . . . . . . P 11.14. antalla Carrito. . . . . . . . . . . . . . . . . . . . P 11.15. antalla Forma de Pago. . . . . . . . . . . . . . . . P 11.16. antalla Datos Relevantes de la Factura. . . . . . . P 11.17. antalla para Congurar la URL del Servidor. . . P 11.18. antalla Ayuda. . . . . . . . . . . . . . . . . . . . P 11.19. nicio. . . . . . . . . . . . . . . . . . . . . . . . . . I 11.20. estaa Quienes Somos. . . . . . . . . . . . . . . . P 11.21. atlogo. . . . . . . . . . . . . . . . . . . . . . . . C 11.22. escripcin del Producto. . . . . . . . . . . . . . . D 11.23. liente. . . . . . . . . . . . . . . . . . . . . . . . . C 11.24. egistrarse. . . . . . . . . . . . . . . . . . . . . . . R 11.25. ontacto. . . . . . . . . . . . . . . . . . . . . . . . C 11.26. nicio (logueado por el cliente). . . . . . . . . . . . I 11.27. i Carrito. . . . . . . . . . . . . . . . . . . . . . . M 11.28. edido . . . . . . . . . . . . . . . . . . . . . . . . . P 11.29. actura Virtual. . . . . . . . . . . . . . . . . . . . F 11.30. ensaje Fin de la Compra . . . . . . . . . . . . . . M 11.31. armacia Movil. . . . . . . . . . . . . . . . . . . . F 11.32. nicio (Operador / Administrador). . . . . . . . . . I 11.33. nicio - Administrador. . . . . . . . . . . . . . . . . I 11.34. uevo Producto (pg1). . . . . . . . . . . . . . . . N 11.35. uevo Producto (pg2). . . . . . . . . . . . . . . . N 11.36. uevo Producto (pg. 3). . . . . . . . . . . . . . . N 11.37. uevo Producto (pg. 4). . . . . . . . . . . . . . . N 11.38. uevo Producto (pg. 5). . . . . . . . . . . . . . . N 11.39. uevo Usuario. . . . . . . . . . . . . . . . . . . . . N 11.40. ueva Cuenta (pg.1). . . . . . . . . . . . . . . . . N 11.41. ueva Cuenta (pg. 2). . . . . . . . . . . . . . . . N 11.42. ueva Cuenta(pg. 3) . . . . . . . . . . . . . . . . N 11.43. ablas que Integran la Base de Datos del Sistema. T 11.44. odelado de Datos . . . . . . . . . . . . . . . . . . M

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

257 258 260 261 262 263 265 266 267 267 268 268 269 271 272 272 273 274 275 276 277 278 279 279 280 280 281 282 283 283 284 285

ndice de cuadros
5.1. 5.2. 5.3. 5.4. Categoras de Variables. . Tipos Primitivos de Datos Operadores de asignacin. Operadores relacionales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 89 91 93 124 125 127 128 130 135 142 143 144 144 146 148 150 152 154 155 160 161 172 173 176 176 177

6.1. Libreras de conguracin CDC . . . . . . . . 6.2. Libreras de conguracin CLDC . . . . . . . 6.3. Libreras del Fondation Prole . . . . . . . . 6.4. Libreras del Personal Prole . . . . . . . . . 6.5. Libreras del MIDP Prole . . . . . . . . . . . 6.6. Clases del Paquete javax.microedition.midlet 6.7. Mtodos de la Clase Display . . . . . . . . . . 6.8. Mtodos de la Clase Displayable . . . . . . . 6.9. Tipos de Commands . . . . . . . . . . . . . . 6.10. Mtodos de la Clase Command . . . . . . . . 6.11. Tipos de Alerta . . . . . . . . . . . . . . . . . 6.12. Mtodos de la Clase List . . . . . . . . . . . . 6.13. Mtodos de la Clase Form . . . . . . . . . . . 6.14. Mtodos de la Clase StringItem . . . . . . . . 6.15. Mtodos de la Clase ImageItem . . . . . . . . 6.16. Mtodos de la Clase TextField . . . . . . . . 6.17. Mtodos Generales de la Clase RecordStore . 6.18. Mtodos Para Manejo de Registros . . . . . . 6.19. Mtodos de la Clase Connector . . . . . . . . 6.20. Tipos de Permisos . . . . . . . . . . . . . . . 6.21. Mtodos en la Etapa de Establecimiento . . . 6.22. Tipos de peticiones . . . . . . . . . . . . . . . 6.23. Campos de la Cabecera . . . . . . . . . . . .

Captulo 1

Introduccin
1.1. Visin Global

La implantacin en la sociedad de las denominadas Nuevas Tecnologas de la Comunicacin e Informacin, est produciendo cambios insospechados respecto a los originados en su momento por otras tecnologas, como fueron la imprenta, y la electrnica. Sus efectos y alcance, no slo se sitan en el terreno de la informacin y comunicacin, sino que lo sobrepasan para llegar a provocar y proponer cambios en la estructura social, econmica, laboral, jurdica y poltica. Y ello es debido a que no slo se centran en la captacin de la informacin, sino tambin, a las posibilidades que tienen para manipularla, almacenarla y distribuirla. Las Nuevas Tecnologas de la Informacin y la Comunicacin no son slo invenciones geniales, tienen su justicacin social ya que contribuyen a disminuir los costos de produccin de bienes de la sociedad al incrementar la productividad e impulsar la investigacin y el desarrollo. Ha surgido la llamada supercarretera de la informacin: Internet, la red de redes de computadoras, la gran autopista que conecta todas las redes de ordenadores del mundo; en ella la informacin uye libremente y sin interrupciones, se comparte y se esparce, nadie an ha sido capaz de calcular el volumen de informacin que almacena ni tampoco sus lmites. Las Nuevas Tecnologas de la Informacin y la Comunicacin rompen las barreras geogrcas borrando las distancias fsicas pero no rompen las barreras 1

CAPTULO 1. INTRODUCCIN

sociales, mantienen e incluso incrementan las distancias sociales entre ricos y pobres. Una de sus ventajas es que en la actualidad el ritmo de produccin de los conocimientos ha crecido vertiginosamente y se ha reducido el tiempo necesario para transformar el conocimiento bsico en ciencia aplicada y sta en tecnologa la cual se difunde ampliamente a travs de diferentes vas. Por tanto, las Nuevas Tecnologas de la Informacin y la Comunicacin a pesar de sus ventajas, no son accesibles a todos por igual; este acceso est mediado por factores econmicos, se tiene informacin si se dispone de recursos necesarios para adquirirla. El efecto social de las redes y servicios telemticos es difcil de predecir. El aumento del ancho de banda disponible ser la base de las futuras innovaciones que pueden afectar profundamente a la sociedad humana. Las redes inalmbricas jugarn un papel muy importante, stas hoy en da son una realidad, estamos acostumbrados a ver ordenadores porttiles conectados a Internet sin necesidad de cables, pequeos ordenadores de mano conectados con los ordenadores de la ocina, cada da aumenta ms la creacin de las redes inalmbricas ciudadanas, en la que voluntariamente y sin buscar benecios ms all del uso de las tecnologas disponibles y el afn de aprender y practicar con ellas, hay ciudadanos que van poniendo a disposicin de los dems puntos de acceso a una red que cada da va creciendo ms, y que cada voluntario ayuda a que sta crezca. Y todo este avance tecnolgico no es ms que el inicio de un mundo de posibilidades que se abren con este nuevo modelo de computacin, denominado computacin pervasiva o computacin ubicua. Este modelo de computacin ubicua signica bsicamente la omnipresencia de computadores muy pequeos interconectados sin cables que se incorporan de forma casi invisible a cualquier objeto de uso cotidiano, y usando pequeos sensores unidos a estos computadores pueden detectar el entorno que les rodea y tienen capacidades tanto de procesar informacin como de comunicacin. Una de las posibilidades es el comercio electrnico, el cual est cambiando la manera que los consumidores, comerciantes y empresas realizan sus transacciones. El comercio electrnico permite comprar, invertir, realizar operaciones bancarias, vender, distribuir en cualquier lugar en donde se pueda disponer de conexin a Internet y con la interconexin con las redes sin hilos con Internet desde cualquier lugar y cualquier momento que se desee.

1.2. COMPUTACIN UBICUA O PERVASIVA

El uso de telfonos mviles para el acceso a Internet abre nuevas posibilidades en el comercio electrnico. el m-commerce, involucra tres aspectos bsicos: oferta de los negocios y de servicios en un rea circundante al usuario; informacin oportuna, georeferenciada mientras el usuario est en movimiento y posibilidad de completar la transaccin en forma inmediata.

1.2.

Computacin Ubicua o Pervasiva

Mark Weiser, en Septiembre de 1991, describi su visin de lo que l llamaba computacin ubicua, hoy llamada computacin pervasiva. La esencia de su visin era la creacin de entornos llenos de computacin y de capacidad de comunicacin, todo integrado de forma inapreciable junto a las personas. La visin de Weiser estaba bastante alejada de su poca, entre otras razones porque no exista la tecnologa necesaria para llevarla a cabo. Pero despus de ms de una dcada de progreso en el campo de los dispositivos hardware, las criticadas ideas de Weiser en 1991 ahora son productos comercialmente viables: Ordenadores de bolsillo. Redes inalmbricas. Sensores muy avanzados. Computacin vestible.

1.2.1.

Principios

Uno de los principales objetivos de la computacin ubicua es hacer desaparecer a los dispositivos computacionales hacindolos situarse en un segundo plano. Este objetivo de crear dispositivos que se mezclen en la vida cotidiana hasta que lleguen a ser indistinguibles supone una potencial revolucin que puede hacer cambiar el modo de vida diario. Las personas se centrarn en las tareas que deben hacer, no en las herramientas que utilizan, porque se pretende que esas herramientas pasen desapercibidas.

CAPTULO 1. INTRODUCCIN

El signicado de enviar la computacin a un segundo plano est referido a dos conceptos diferentes pero relacionados. El primero es el signicado literal de que la tecnologa de la computacin se debe integrar en los objetos, cosas, tareas y entornos cotidianos. Y la segunda es que esta integracin se debe realizar de forma que la introduccin de la computacin en estas cosas u objetos no intereran con las actividades para las que son usadas, y que siempre proporcionen un uso ms cmodo, sencillo y til de esos objetos. Estos objetos cotidianos en los que se integra la tecnologa de la computacin pasan a tener una serie de propiedades que permiten la creacin del entorno ubicuo buscado. Algunas de esas propiedades son: Comunicacin entre dispositivos: Todos estos objetos dotados de capacidad de computacin tambin tienen capacidad de comunicacin, y no solo con el usuario, sino con los dems objetos integrados que haya a su alrededor. Poseen memoria: Adems de poder comunicarse entre ellos e interactuar con los usuarios, estos dispositivos tienen capacidad de memoria y pueden utilizar esta memoria para una mejor interaccin con el resto de dispositivos. Son sensibles al contexto: Estos objetos son sensibles al contexto, es decir, se adaptan a las posibles situaciones, como la situacin geogrca, los dispositivos que hay a su alrededor, las preferencias de los usuarios, y actan dependiendo de ese entorno que los rodea. Son reactivos: Estos objetos reaccionan al ocurrir determinados eventos, que pueden percibir en su entorno mediante sensores o a travs de la interaccin con otros dispositivos. El computador personal, Internet y la World-Wide Web han inuido ya en muchos aspectos del mundo de los negocios y hay seales evidentes de una amplia convergencia de industrias enteras como la de los medios de comunicacin, entretenimiento, electrnica de consumo, telecomunicaciones y tecnologa de la informacin. La siguiente ola de la revolucin tecnolgica puede afectar directamente y en todos los aspectos de la vida cotidiana. Durante ms de 30 aos la conocida ley de Moore, segn la cual la funcionalidad de un procesador se duplica cada 18 meses, ha demostrado ser cierta.

1.2. COMPUTACIN UBICUA O PERVASIVA

Una mejora similar en prestaciones se aplica tambin a algunos otros parmetros importantes de la tecnologa. Se arma que la tendencia actual continuar durante unos cuantos aos ms, lo que hace que toda esta rea de desarrollo sea tan intrigante. Ahora parece que el futuro prximo estar caracterizado por pequeos computadores que se comunican de forma espontnea, que por su pequeo tamao y por su bajo precio, se integrarn en casi todos los objetos cotidianos. La tecnologa de la informacin por lo tanto se volver ubicua e invadir todos los aspectos de la vida de las personas. Los telfonos mviles con acceso a Internet y los Asistentes Digitales Personales (Personal Digital Assistants, PDAs) que se comunican sin cables con otros dispositivos prximos a ellos son los primeros indicios de la era post-PC venidera. Al principio, el principal objetivo es permitir el acceso a la informacin de cualquier tipo desde cualquier lugar y en cualquier momento, lo que evidencia los esfuerzos actuales de la industria por integrar aparatos de informacin mviles y utilizables en procesos de negocios basados en la Web y escenarios de comercio electrnico. Sin embargo, a largo plazo, esta continua tendencia tecnolgica puede dar lugar a la fusin del computador con los objetos cotidianos tpicos para que se vuelva literalmente invisible.

1.2.2.

Hacia las Cosas Inteligentes e Interconectadas

Hoy, Internet conecta casi todos los computadores del mundo. Desde un punto de vista tecnolgico, se podra describir a la computacin ubicua como la posibilidad de conectar todo lo que hay en el mundo a Internet, para proporcionar informacin acerca de cualquier cosa, en cualquier momento, en cualquier sitio. Por decirlo de otra forma, el trmino computacin ubicua signica la omnipresencia de computadores muy pequeos interconectados sin cables que se incrustan de forma casi invisible en cualquier tipo de objeto cotidiano. Usando pequeos sensores, estos procesadores incrustados pueden detectar el entorno que les rodea y equipar a su objeto con capacidades tanto de procesar informacin como de comunicacin.

CAPTULO 1. INTRODUCCIN

1.2.3.

La Ley de Moore y la Visin de Weiser

La ley de Moore, formulada en los aos sesenta por Gordon Moore, arma que la capacidad de computacin disponible en un microchip se multiplica por dos aproximadamente cada 18 meses y, de hecho, esto ha resultado ser un pronstico extraordinariamente exacto del desarrollo del chip desde entonces. Y esta ley se ha venido cumpliendo hasta el da de hoy, la capacidad de cmputo de los procesadores avanza muy rpidamente. Pero no solo la capacidad de cmputo de los procesadores, sino tambin la capacidad de almacenamiento, el ancho de banda para las comunicaciones, en resumen, cada poco tiempo se tiene dispositivos ms baratos, ms pequeos y ms potentes. Y no parece que se vaya a parar este crecimiento, sino todo lo contrario. El trmino computacin ubicua , fue acuado hace ms de diez aos por Mark Weiser; ver g. 1.1 de la pg. 7, un investigador del Palo Alto Research Center de XEROX. Weiser ve la tecnologa solamente como un medio para un n y como algo que debera quedar en segundo plano para permitir al usuario concentrarse completamente en la tarea que est realizando. En este sentido, considerar el computador personal como herramienta universal para la tecnologa de la informacin sera un enfoque equivocado, ya que su complejidad absorbera demasiado la atencin del usuario. Segn Weiser, el computador como dispositivo dedicado debera desaparecer, mientras que al mismo tiempo debera poner a disposicin sus capacidades de procesamiento de la informacin [20]. Weiser ve el trmino computacin ubicua en un sentido ms acadmico e idealista centrada en la persona, como una visin de tecnologa discreta, mientras que la industria ha acuado por eso el trmino computacin pervasiva, o ampliamente difundida con un enfoque ligeramente diferente. Aunque su visin siga siendo todava integrar el procesamiento de la informacin en objetos cotidianos de forma casi invisible, su objetivo principal es utilizar tales objetos en un futuro prximo en el mbito del comercio electrnico y para tcnicas de negocios basados en la Web [18]. Mark Weiser fue un principal cientco de Xerox Parc y ampliamente considerado como el padre de la computacin ubicua (conocida tambin como ubicomp). Weiser naci en Harver, un barrio exterior de Chicago, Illinois; estudi ciencias de la computacin y comunicacin en la Universidad de Michingan,

1.3. LA SOCIEDAD DE LA INFORMACIN Y EL CONOCIMIENTO

Figura 1.1: Mark Weiser (1952-1999), el Visionario de la Computacin Ubicua se dedic a la docencia durante ocho aos en ciencias de la computacin en la Universidad de Maryland, Clollege Park. Mientras Weiser trabajaba para una variedad de compaas relacionadas a la computacin, su trabajo fue en el campo de la computacin ubicua mientras diriga el laboratorio de ciencias de computacin de Parc, al cual se uni en 1987, Se convirti en la cabeza del laboratorio de ciencias de la computacin en 1988 y el ocial primero de la tecnologa en 1996, simultneamente fue autor de ms de 75 publicaciones.

1.3.

La Sociedad de la Informacin y el Conocimiento

Es un hecho de la realidad que los vertiginosos avances que presentan las TICs (Tecnologas de la Informacin y de las Comunicaciones) han convertido al planeta en lo que se ha de llamar la aldea global [1], permitiendo que la sociedad sea conocida como la Sociedad de la Informacin y el Conocimiento o Cibersociedad, en la cual la profusin de redes de datos ha permitido interconectar una diversidad de equipos informticos de diferentes tecnologas de hardware y de software constituyendo una enorme red mundial multiplataforma, que ha generado una nueva forma de interaccin de las personas y de la empresas, impactando en la educacin, las actividades sociales, el comercio, etc.

CAPTULO 1. INTRODUCCIN

1.3.1.

Denicin de Conocimiento

El conocimiento es materia de estudio de distintas disciplinas, tales como la losofa, la gestin empresarial, y ms recientemente la informtica, por ello se encuentran distintas deniciones del trmino conocimiento segn el punto de vista e inters de quienes se pronuncien. Antes de denir conocimiento algunos autores se apoyan a las deniciones de otros dos conceptos: dato e informacin. Dato: antecedente necesario para llegar al conocimiento exacto de una cosa o para deducir las consecuencias legtimas de un hecho. Informacin: accin y efecto de informar e informarse. Conocimiento: accin y efecto de conocer. Nocin, ciencia, sabidura. Tambin se puede denir al conocimiento como: Es el conjunto de experiencias valores e informaciones dotadas de signicado que facilitan el marco idneo para evaluar nuevas informaciones e incorporar nuevas experiencias [11].

1.3.2.

Proceso de Formacin del Conocimiento

Comprende los siguientes pasos: Datos: Hechos y expresiones percibidos, por ejemplo una secuencia de nmeros, letras. Informacin: Datos organizados bajo patrones explicativos; conjunto coherente de datos que transmite un mensaje. Conocimiento: Informacin elaborada de modo que comporta signicado y puede ser utilizada en la toma de decisiones. Sabidura: Conocimiento reutilizado y proceso de retroalimentacin de los conocimientos.

1.3. LA SOCIEDAD DE LA INFORMACIN Y EL CONOCIMIENTO

1.3.3.

Clases de Conocimiento

El conocimiento puede dividirse en: Conocimiento tcito Conocimiento explcito El conocimiento tcito es aquel que no est registrado por ningn medio y que solo se obtiene mediante la adquisicin de conocimientos de manera prctica y solo es posible transmitir y recibir consultando directa y especcamente al poseedor de estos conocimientos. Tambin el conocimiento tcito es aquel conocimiento que no est registrado (el que se tiene en la cabeza). Es la intuicin, opinin, las creencias, la experiencia. El conocimiento tcito como la percepcin subjetiva o las emociones, no se puede instrumentalizar y se transmite en determinados contextos y acciones. El conocimiento tcito es el conocimiento que poseen las personas y que es inseparable de su experiencia y puede ser compartido o intercambiado, mediante contactos directos. El conocimiento explcito se trata del conocimiento basado en datos concretos, con lo que sera suciente su conocimiento para el aprovechamiento de los mismos, sin necesidad de interpretacin alguna, expresndolo de una manera simple, es la teora. El conocimiento explcito es el conocimiento tcito codicado y vertido en algn soporte de almacenamiento y comunicacin. Este conocimiento se puede expresar mediante palabras y nmeros, y es fcil de transmitir. Es un conocimiento formal que puede plasmarse en documentos de una organizacin tales como informes, patentes, manuales, imgenes, esquema, software, productos, diagramas organizativos, etc.

1.3.4.

Ciclo del Conocimiento

Se fundamenta en dos pilares: La cadena del conocimiento.

10

CAPTULO 1. INTRODUCCIN

La transformacin del conocimiento tcito y explcito. El conocimiento tcito encauzado de forma correcta, genera conocimiento explcito (ejemplo almacenndolo en una base de datos). El ciclo de vida del conocimiento depende de la distincin entre conocimiento tcito y conocimiento explcito; (ver g. 1.2 de la pg. 10). Ambos tipos de conocimientos son necesarios y se produce una realimentacin continua entre ambos. Comprende la trasformacin de: Datos en Informacin. Informacin en conocimiento. Conocimiento en acciones/decisiones. La experiencia del conocimiento en sabidura.

Figura 1.2: La Cadena del Conocimiento

1.3.5.

Caractersticas de la Sociedad del Conocimiento

Es una realidad que la nueva sociedad est basada en el conocimiento ms que en la informacin. El conocimiento es informacin almacenada por las personas. La materia prima es la informacin, el producto es el conocimiento; ver g. 1.3 de la pg. 11.

1.3. LA SOCIEDAD DE LA INFORMACIN Y EL CONOCIMIENTO 11

Figura 1.3: La Era de la Informacin

Es dicil predecir cmo ser la nueva sociedad y, por lo cual, difcil de denir con precisin sus caractersticas bsicas. La nueva sociedad plantea nuevos requisitos para las personas, que debern adquirir y mantener una cultura de la informacin. Se puede diferenciar entre una economa de la informacin y una sociedad del conocimiento. Un pas puede entrar en una economa de la informacin mediante un esfuerzo de inversin de equipos y sistemas, o con polticas de fomento de las redes de comunicacin, pero estas caractersticas no incluyen necesariamente el desarrollo de la nueva sociedad que depender ms de la existencia de una cultura de la informacin sucientemente desarrollada. Es preciso fomentar la creacin de redes, equipos y sistemas de informacin y favorecer el ingreso de la poblacin en la cultura de la informacin, a partir de un pacto social. Este nuevo pacto debera ser plural, uniforme y no dirigido, diseado desde la realidad ms cercana de los ciudadanos. Los requisitos de la nueva sociedad plantean la necesidad de realizar un esfuerzo permanente de adaptacin individual y colectiva. La persona instruda (persona con conocimiento) pasar a ser el nuevo protagonista de la sociedad del conocimiento, que aplica su saber a los problemas presentes y ayuda a asentar las bases del futuro.

12

CAPTULO 1. INTRODUCCIN

1.3.6.

Gestin del Conocimiento

La Gestin del Conocimiento corresponde al conjunto de actividades desarrolladas para utilizar, compartir, desarrollar y administrar los conocimientos que posee una organizacin y los individuos que en esta trabajan, de manera de que estos sean encaminados hacia la mejor consecucin de sus objetivos. Inicialmente la gestin del conocimiento se centr exclusivamente en el tratamiento del documento como unidad primaria, pero actualmente se han producido grandes avances. Hoy es necesario buscar, seleccionar, analizar y sintetizar crticamente o de manera inteligente y racional la gran cantidad de informacin disponible, con el n de aprovecharla con el mximo rendimiento social o personal. Esta disciplina no es nueva, sino que sus races se remontan a la inteligencia articial, cuyo objetivo nal ha sido la sintetizacin del comportamiento humano mediante ordenadores. Las Bases de Conocimiento son depsitos o almacenes de datos (repositorios) del conocimiento del negocio (funciones, reglas, clculos, informes) totalmente independiente de la plataforma de ejecucin, que mediante tecnologas de inteligencia articial son capaces de deducir, generar y mantener automticamente estructuras normalizadas de bases de datos y programas. La atencin que se est prestando a la gestin del conocimiento est creciendo a una velocidad impresionante. Revistas, diarios de economa y libros publican innumerable teoras y casos sobre gestin del conocimiento y sus tpicos.

1.3.7.

Tecnologas de la Gestin del Conocimiento

Las tecnologas de GC deben permitir: Identicar conocimientos necesarios. Identicar dnde y quin tiene el conocimiento o si necesita ser creado. Reunir y capturar el conocimiento encontrado. Resumir y sintetizar la informacin.

1.3. LA SOCIEDAD DE LA INFORMACIN Y EL CONOCIMIENTO 13

Distribuir la informacin a distintos niveles. Actualizar, eliminar y modicar el conocimiento obsoleto. La Gestin del Conocimiento es la mezcla de los siguiente factores: Personas: Aquellas que producen y aquellas que utilizan conocimiento que ser la base para la accin. Contenido: El ujo de datos, informacin y conocimiento importantes en el xito del negocio. Tecnologa: Se reere a la infraestructura tcnica que se encarga de la captura, almacenamiento y distribucin del contenido a aquellas personas que lo necesitan, en el lugar y momento oportuno.

Captulo 2

Comercio Electrnico
2.1. Visin Global

Las redes mundiales de informacin estn transformando al mundo y acercando ms a la gente a travs de la innovacin de las comunicaciones mundiales, lo cual posibilita cambios en todos los mbitos de la actividad humana, por ejemplo la competitividad, el empleo y la calidad de vida de las naciones. Con las nuevas tecnologas, el tiempo y la distancia dejan de ser obstculos, los contenidos pueden dirigirse a una audiencia masiva o a un pequeo grupo de expertos y buscar un alcance mundial o meramente local. Las redes mundiales de informacin, como Internet no conoce fronteras. Internet es un medio de comunicacin global, que permite el intercambio de informacin entre los usuarios conectados a la red y que conecta a unos 8 millones de servidores encargados de servicios de informacin y de todas las operaciones de comunicacin y de retransmisin; llega hasta unos 250 millones de usuarios en ms de 100 pases. Internet ofrece una oportunidad nica, especial y decisiva a organizaciones de cualquier tamao. La rpida difusin y el gran inters en el mundo de la informtica, ha permitido la creacin de tecnologa Internet/ Web, una herramienta fundamental para redes de computadoras y sus usuarios. Internet ofrece un nuevo mercado que dene la economa digital. Los productores, proveedores de bienes / servicios y usuarios logran tener acceso y transmisin mundial de la informacin y esparcimiento en forma sencilla y econmica, sea con nes comerciales 15

16

CAPTULO 2. COMERCIO ELECTRNICO

o sociales. La apertura de mercados es fundamental para el rpido crecimiento del uso de nuevos servicios y la asimilacin de tecnologas nuevas. En la prctica, las empresas estn comenzando a usar Internet como un nuevo canal de ventas, sustituyendo las visitas personales, correo y telfono por pedidos electrnicos, ya que gestionar un pedido por Internet cuesta 5 % menos que hacerlo por vas tradicionales. Nace entonces el comercio electrnico, como una alternativa de reduccin de costos y una herramienta fundamental en el desempeo empresarial. Sin embargo, la aparicin del comercio electrnico obliga claramente a replantearse muchas de las cuestiones del comercio tradicional, surgiendo nuevos problemas, e incluso agudizando algunos de los ya existentes. En ese catlogo de problemas, se plantean cuestiones que van, desde la validez legal de las transacciones y contratos sin papel, la necesidad de acuerdos internacionales que armonicen las legislaciones sobre comercio, el control de las transacciones internacionales, incluido el cobro de impuestos, la proteccin de los derechos de propiedad intelectual, la proteccin de los consumidores en cuanto a publicidad engaosa o no deseada, fraude, contenidos ilegales y uso abusivo de datos personales, hasta otros provocados por la dicultad de encontrar informacin en Internet, comparar ofertas y evaluar la abilidad del vendedor y del comprador en una relacin electrnica, la falta de seguridad de las transacciones y medios de pago electrnicos, la falta de estndares consolidados, la proliferacin de aplicaciones y protocolos de comercio electrnico incompatibles y la congestin de Internet [5]

2.2.

Deniciones
Es la aplicacin de la avanzada tecnologa de informacin para incrementar la ecacia de las relaciones empresariales entre socios comerciales. La disponibilidad de una visin empresarial apoyada por la avanzada tecnologa de informacin para mejorar la eciencia y la ecacia dentro del proceso comercial. Es el uso de las tecnologas computacional y de telecomunicaciones que se realiza entre empresas o bien entre vendedores y compradores, para apoyar el comercio de bienes y servicios.

Conjugando estas deniciones se puede decir que el comercio electrnico es

2.3. ORIGEN Y EVOLUCIN HISTRICA

17

una metodologa moderna para hacer negocios que detecta la necesidad de las empresas, comerciantes y consumidores de reducir costos, as como mejorar la calidad de los bienes y servicios, adems de mejorar el tiempo de entrega de los bienes o servicios. Por lo tanto no debe seguirse contemplando el comercio electrnico como una tecnologa, sino que es el uso de la tecnologa para mejorar la forma de llevar a cabo las actividades empresariales. Ahora bien, el comercio electrnico se puede entender como cualquier forma de transaccin comercial en la cual las partes involucradas interactan de manera electrnica en lugar de hacerlo de la manera tradicional con intercambios fsicos o trato fsico directo. Actualmente la manera de comerciar se caracteriza por el mejoramiento constante en los procesos de abastecimiento, y como respuesta a ello los negocios a nivel mundial estn cambiando tanto su organizacin como sus operaciones. El comercio electrnico es el medio de llevar a cabo dichos cambios dentro de una escala global, permitiendo a las compaas ser ms ecientes y exibles en sus operaciones internas, para as trabajar de una manera ms cercana con sus proveedores y estar ms pendiente de las necesidades y expectativas de sus clientes. Adems permiten seleccionar a los mejores proveedores sin importar su localizacin geogrca para que de esa forma se pueda vender a un mercado global [3].

2.3.

Origen y Evolucin Histrica

El comercio, actividad ancestral del ser humano, ha evolucionado de muchas maneras. Pero su signicado y su n en siempre el mismo. Segn el diccionario consultor de economa, el comercio es el proceso y los mecanismos utilizados, necesarios para colocar las mercancas, que son elaboradas en las unidades de produccin, en los centros de consumo en donde se aprovisionan los consumidores, ltimo eslabn de la cadena de comercializacin. Es comunicacin y trato. En lneas generales, y con un sentido amplio, el comercio implica la investigacin de mercado con el n de interpretar los deseos del consumidor, la publicidad que anuncia la existencia del producto, la posibilidad de adquirirlo, y en qu lugar, a la vez que se utilizan los mtodos de persuasin, la venta al por menor y nalmente, la adquisicin por parte del pblico. Segn lo expuesto, a travs de los aos han aparecido diferentes formas

18

CAPTULO 2. COMERCIO ELECTRNICO

o tipos de comercio. A principio de los aos 1920 en Los Estados Unidos apareci la venta por catlogo, impulsado por las grandes tiendas de mayoreo. Este sistema de venta, revolucionario para la poca, consiste en un catlogo con fotos ilustrativas de los productos a vender. Este permite tener mejor llegada a las personas, ya que no hay necesidad de tener que atraer a los clientes hasta los locales de venta. Esto posibilit a las tiendas poder llegar a tener clientes en zonas rurales, que para la poca que se desarroll dicha modalidad exista una gran masa de personas afectadas al campo. Adems, otro punto importante de esto es que los potenciales compradores pueden escoger los productos en la tranquilidad de sus hogares, sin la asistencia o presin, segn sea el caso, de un vendedor. La venta por catlogo tom mayor impulso con la aparicin de las tarjetas de crdito; adems de determinar un tipo de relacin de mayor anonimato entre el cliente y el vendedor. A mediados de 1980, con la ayuda de la televisin, surgi una nueva forma de venta por catlogo, tambin llamada venta directa. De esta manera, los productos son mostrados con mayor realismo, y con la dinmica de que pueden ser exhibidos resaltando sus caractersticas. La venta directa es concretada mediante un telfono y usualmente con pagos de tarjetas de crdito. A principio de los aos 1970, aparecieron las primeras relaciones comerciales que utilizaban una computadora para transmitir datos. Este tipo de intercambio de informacin, sin ningn tipo de estndar, trajo aparejado mejoras de los procesos de fabricacin en el mbito privado, entre empresas de un mismo sector. Es por eso que se trataron de jar estndares para realizar este intercambio, el cual era distinto con relacin a cada industria. Un ejemplo conocido de esto es el caso del Supermercado mayorista Amigazo. A mediados de los aos 1980 esta empresa desarroll un sistema para procesar ordenes de pedido electrnicas, por el cual los clientes de esta empresa emitan ordenes de pedido desde sus empresas y sta era enviada en forma electrnica. Esta implementacin trajo importantes benecios a Amigazo, ya que se eliminaron gran parte de errores de entregas y se redujeron los tiempos de procesamiento de dichas ordenes. El benecio fue suciente como para que la empresa Amigazo, instale un equipo a sus clientes habituales. Por otra parte, en el sector publico el uso de estas tecnologas para el intercambio de datos tuvo su origen en las actividades militares. A nes de los aos 1970 el Ministerio de Defensa de Estados Unidos inici un programa de investigacin destinado a desarrollar tcnicas y tecnologas que permitiesen intercambiar de manera transparente paquetes de informacin entre diferentes redes de computadoras; el proyecto encargado de disear esos protocolos

2.4. VENTAJAS DEL COMERCIO ELECTRNICO

19

de comunicacin se llamo Internetting Project (de este proyecto de investigacin proviene el nombre del popular sistema de redes), del que surgieron el TCP/IP (Transmission Control Protocol) / (Internet Protocol) que fueron desarrollados conjuntamente por Vinton Cerf y Robert Kahn y son los que actualmente se emplean en Internet. A travs de este proyecto se logr estandarizar las comunicaciones entre computadoras y en 1989 aparece un nuevo servicio, la WWW (World Wide Web, Telaraa Global), cuando un grupo de investigadores en Ginebra, Suiza, ide un mtodo a travs del cual empleando la tecnologa de Internet enlazaban documentos cientcos provenientes de diferentes computadoras, a los que podan integrarse recursos multimedia (texto, grcos, msica, entre otros). Lo ms importante de la WWW es su alto nivel de accesibilidad, que se traduce en los escasos conocimientos de informtica que exige de sus usuarios. El desarrollo de estas tecnologas y de las telecomunicaciones ha hecho que los intercambios de datos crezcan a niveles extraordinarios, simplicndose cada vez ms y creando nuevas formas de comercio, y en este marco se desarrolla el Comercio Electrnico [9].

2.4.
2.4.1.

Ventajas del Comercio Electrnico


Ventajas para los Clientes

Permite el acceso a ms informacin. La naturaleza interactiva del Web y su entorno hipertexto permiten bsquedas profundas no lineales que son iniciadas y controladas por los clientes, por lo tanto las actividades de mercadeo mediante el Web estn ms impulsadas por los clientes que aquellas proporcionadas por los medios tradicionales. Facilita la investigacin y comparacin de mercados. La capacidad del Web para acumular, analizar y controlar grandes cantidades de datos especializados permite la compra por comparacin y acelera el proceso de encontrar los artculos. Abarata los costos y precios.

20

CAPTULO 2. COMERCIO ELECTRNICO

Conforme aumenta la capacidad de los proveedores para competir en un mercado electrnico abierto se produce una baja en los costos y precios, de hecho tal incremento en la competencia mejora la calidad y variedad de los productos y servicios.

2.4.2.

Ventajas para las Empresas

Mejoras en la Distribucin. El Web ofrece a ciertos tipos de proveedores (industria del libro, servicios de informacin, productos digitales) la posibilidad de participar en un mercado interactivo, en el que los costos de distribucin o ventas tienden a cero. Por poner un ejemplo, los productos digitales (software) pueden entregarse de inmediato, dando n de manera progresiva al intermediarismo. Tambin compradores y vendedores se contactan entre s de manera directa, eliminando as restricciones que se presentan en tales interacciones. De alguna forma esta situacin puede llegar a reducir los canales de comercializacin, permitiendo que la distribucin sea eciente al reducir sobrecosto derivado de la uniformidad, automatizacin e integracin a gran escala de sus procesos de administracin. De igual forma se puede disminuir el tiempo que se tardan en realizar las transacciones comerciales, incrementando la eciencia de las empresas. Comunicaciones de Mercadeo. Actualmente, la mayora de las empresas utiliza el Web para informar a los clientes sobre la compaa, a parte de sus productos o servicios, tanto mediante comunicaciones internas como con otras empresas y clientes. Sin embargo, la naturaleza interactiva del Web ofrece otro tipo de benecios conducentes a desarrollar las relaciones con los clientes. Este potencial para la interaccin facilita las relaciones de mercadeo as como el soporte al cliente, hasta un punto que nunca hubiera sido posible con los medios tradicionales. Un sitio Web se encuentra disponible las 24 horas del da bajo demanda de los clientes. Las personas que realizan el mercadeo pueden usar el Web para retener a los clientes mediante un dilogo asincrnico que sucede a la conveniencia de ambas partes. Esta capacidad ofrece oportunidades sin precedentes para ajustar con precisin las comunicaciones a los clientes individuales, facilitando que stos soliciten tanta informacin como deseen. Adems, esto permite que

2.4. VENTAJAS DEL COMERCIO ELECTRNICO

21

los responsables del rea de mercadeo obtengan informacin relevante de los clientes con el propsito de servirles de manera ecaz en las futuras relaciones comerciales. Los sitios Web ms sencillos involucran a los clientes mediante botones para enviar mensajes de correo electrnico a la empresa. En otros centros ms sosticados, los clientes rellenan formularios, con el objeto de que desarrollen una relacin continua con la compaa, cuyo n es informar tanto sobre los productos y servicios como obtener informacin sobre las necesidades que los clientes tienen sobre los mismos. De esta manera, se obtiene publicidad, promocin y servicio al cliente a la medida. El Web tambin ofrece la oportunidad de competir sobre la base de la especialidad, en lugar de hacerlo mediante el precio, ya que desde el punto de vista del mercadeo, rara vez es deseable competir tan slo en funcin del precio. El mercadeo intenta satisfacer las necesidades de los clientes en base a los benecios que buscan, lo que quiere decir que el precio depende de la valorizacin del cliente, y no de los costos; tales oportunidades surgen cuando lo ofrecido se diferencia por elementos de mercadeo distintos al precio, lo cual produce benecios cargados de valor, como por ejemplo, la comodidad producida por el reparto directo mediante la distribucin electrnica de software.

Benecios Operacionales.

El uso empresarial del Web reduce errores, tiempo y sobrecostos en el tratamiento de la informacin. Los proveedores disminuyen sus costos al acceder de manera interactiva a las bases de datos de oportunidades de ofertas, enviar stas por el mismo medio, y por ltimo, revisar de igual forma las concesiones; adems, se facilita la creacin de mercados y segmentos nuevos, el incremento en la generacin de ventajas en las ventas, la mayor facilidad para entrar en mercados nuevos, especialmente en los geogrcamente remotos, y alcanzarlos con mayor rapidez. Todo esto se debe a la capacidad de contactar de manera sencilla y a un costo menor a los clientes potenciales, eliminando demoras entre las diferentes etapas de los subprocesos empresariales.

22

CAPTULO 2. COMERCIO ELECTRNICO

2.5.

Tipos de Comercio Electrnico

2.5.1.

B2B (Business-to-Business)

Denicin

Es la transmisin de informacin referente a transacciones comerciales electrnicamente, normalmente utilizando tecnologa como la Electronic Data Interchange (EDI), presentada a nales de los aos 1970 para enviar electrnicamente documentos tales como pedidos de compra o facturas. Ms tarde pas a incluir actividades que seran ms precisamente denominadas Comercio en la Red, como la compra de bienes y servicios a travs de la World Wide Web va servidores seguros (vase HTTPS, un protocolo de servidor especial que cifra la realizacin condencial de pedidos para la proteccin de los consumidores y los datos de la organizacin) emplendose servicios de pago electrnico como autorizaciones para tarjeta de crdito o monederos electrnicos. El B2B ha venido impulsado tambin por la creacin de portales para agrupar compradores. As, encontramos, por ejemplo portales de empresas de automocin, alimentacin, qumicas u hostelera, entre otros. Las compaas se agrupan para crear dichas pginas aglutinando fuerzas lo que les permite negociar en mejores condiciones. El mantenimiento de las pginas se produce pidiendo un canon por cotizar o cobrando a los socios una comisin del negocio realizado en el portal. En trminos generales la expresin business to business no se encuentra limitada al entorno electrnico, sino que hace una referencia de exclusin para destacar el origen y destino de una actividad que, por antagonismo no se reere ni al B2C, B2G, etc. Solo por establecer un ejemplo de referencia, el B2B aplica a la relacin entre un fabricante y el distribuidor de un producto y tambin a la relacin entre el distribuidor y el comercio minorista... pero NO, a la relacin entre el comerciante y su cliente nal (consumidor), relacin esta ltima que quedara ajustada entonces, al entorno del B2C (Business to Consumer).

2.5. TIPOS DE COMERCIO ELECTRNICO

23

Ventajas El comercio electrnico entre empresas es una utilidad ms que aporta Internet y que ha experimentado un gran auge en los ltimos aos. Algunas de las ventajas que aporta el B2B para las empresas implicadas son: Rapidez y seguridad de las comunicaciones. Integracin directa de los datos de la transaccin en los sistemas informticos de la empresa. Posibilidad de recibir mayor nmero de ofertas o demandas, ampliando la competencia. Despersonalizacin de la compra con lo que se evitan posibles tratos de favor. Abaratamiento del proceso: menos visitas comerciales, proceso de negociacin ms rpido, etc. Por tanto, los compradores pueden pedir una reduccin de precios en virtud del menor coste de gestin, o los vendedores incrementar su margen comercial.

2.5.2.

B2E (Business to Employe)

Denicin Es la relacin comercial que se establece entre una empresa y sus propios empleados. Por ejemplo, una empresa area puede ofrecer paquetes tursticos a sus empleados a travs de su propia intranet y, adems de sus ofertas puede incluir las de compaas areas asociadas. El B2E es una nueva demostracin de las muchas aplicaciones que ofrece el comercio electrnico. Pero no slo eso, adems el concepto se ampla a la propia gestin remota por parte del empleado de parte de sus responsabilidades dentro de los procesos de negocio de la empresa. Esto podra incluir facturacin de comisiones de ventas, introduccin de gastos de desplazamiento, etc. Es en denitiva un pequeo portal para la utilizacin de algunos recursos de la empresa por parte de los empleados de la misma, tanto en su que hacer cotidiano, como en la vida privada.

24

CAPTULO 2. COMERCIO ELECTRNICO

Adems existen diferentes polticas que se pueden adecuar a este modelo de negocio. Ventajas Reduccin de costes y tiempo en actividades burocrticas. Formacin en lnea. Mejora de la informacin interna. Equipos de colaboracin en un entorno web. Agilizacin de la integracin del nuevo profesional en la empresa. Servicios intuitivos de gestin de la informacin. Soporte para gestin del conocimiento. Comercio electrnico interno. Motivador, potenciador de la implicacin del profesional. Fidelizacin del empleado.

2.5.3.

B2C (Business-to-Consumer)

Denicin Se reere a la estrategia que desarrollan las empresas comerciales para llegar directamente al cliente o usuario nal. Un ejemplo de transaccin B2C puede ser la compra de un par de zapatos en una zapatera de barrio, por un individuo. Sin embargo, todas las transacciones necesarias para que ese par de zapatos est disponible para la venta en el establecimiento comercial, compra de la piel, suela, cordones, etc., as como la venta de zapatos del fabricante al comerciante forman parte de lo que se llama B2B. A pesar del sentido amplio de la expresin B2C, en la prctica, suele referirse a las plataformas virtuales utilizadas en el comercio electrnico para comunicar empresas (vendedoras) con particulares (compradores). Por eso, el uso ms frecuente es comercio electrnico B2C.

2.5. TIPOS DE COMERCIO ELECTRNICO

25

Ventajas La compra suele ser ms rpida y ms cmoda. Las ofertas y los precios estn siempre actualizados. Los centros de atencin al cliente estn integrados en la web. Las telecomunicaciones por banda ancha han mejorado la experiencia de compra. Tipos de Empresas en Comercio Electrnico B2C Intermediarios on-line. Los intermediarios on-line son compaas que facilitan las transacciones entre compradores y vendedores, como contraprestacin econmica reciben un porcentaje del valor de la transaccin. La mayora de las transacciones se realizan a travs de estos intemediarios, que pueden ser brokers o informediarios, genricos o especializados, respectivamente. Modelos basados en la publicidad. En una publicidad basada en el sistema, las empresas tienen sitios web de un inventario, que venden a las partes interesadas. Existen dos losofas rectores para esta prctica: de alto trco o de nicho. Los anunciantes tienen un alto trco de enfoque al intentar llegar a un pblico ms amplio. Estos anunciantes estn dispuestos a pagar una prima por un sitio que puede ofrecer un nmero elevado, por ejemplo, anuncios en Yahoo! o Google. Cuando los anunciantes estn tratando de llegar a un grupo ms pequeo de compradores, se llevan a un nicho. Estos compradores estn bien denidos, claramente identicados, y deseable. El nicho de enfoque se centra en la calidad, no cantidad. Por ejemplo, un anuncio de WSJ.com. Modelos basados en la comunidad. En una comunidad basada en el sistema, las empresas permiten a los usuarios en todo el mundo el acceso a interactuar unos con otros sobre la base de reas similares de inters. Estas empresas ganan dinero por medio de la acumulacin de leales usuarios y la orientacin con la publicidad.

26

CAPTULO 2. COMERCIO ELECTRNICO

Modelos basados en tarifas. En un sistema de pago basado en el sistema, una empresa cobra una tarifa de suscripcin para ver su contenido. Existen diversos grados de restriccin de contenidos y tipos de suscripcin que van desde las tasas a tanto alzado a pay-as-you-go.

2.5.4.

B2B2C

Designa una modalidad de comercio electrnico que agrupa el business to business y el business to consumer . Se trata de una versin ms sosticada de lo que podra ser la simple superposicin de los dos negocios. Con la misma plataforma online y la misma plataforma de distribucin se trata de crear la cadena de valor completa desde que un producto o servicio se fabrica hasta que llega al consumidor nal. El B2B2C, tambin se emplea en algunos casos para denir a los mercados llamados mercados diagonales en Internet, plataformas en lnea (online) que atienden tanto a transacciones comerciales entre negocios como entre negocios y consumidores nales. Por lo general estos mercados diagonales suelen ser proporcionados por fabricantes o mayoristas que proporcionan una diferenciacin de precios y condiciones comerciales segn se trate de una compra hacia un distribuidor o minorista (otra empresa) o un consumidor nal o ciudadano.

2.6.

M-Commerce (Comercio Electrnico a Travs de Dispositivos Mviles)

El comercio electrnico se est transformando lentamente en m-commerce, un nuevo modelo de comercio on-line en el cual los telfonos mviles, u otros artefactos wireless (inalmbricos), jugarn un papel muy importante. Todos los carriers importantes del mundo estn desarrollando planes sobre este paradigma. El fuerte desarrollo de la norma GSM en Europa, el sistema de SMS, y especialmente el WAP, facilitaron el acceso mvil e interactivo a datos, abriendo nuevas posibilidades para el comercio. Pero esas oportunidades tienen algunas dicultades como el ancho de banda limitado que an complica las

2.6. M-COMMERCE

27

transmisiones, y la interfaz de usuario de los dispositivos mviles es limitada en tamao. Adems, los costos de acceso son altos, y el poder de cmputo de estos dispositivos es mucho ms pequeo que el de las PCs. El m-commerce involucra tres aspectos bsicos: Oferta de los negocios y servicios en un rea circundante al usuario. Informacin oportuna georeferenciada mientras el usuario est en movimiento. Posibilidad de completar la transaccin de forma inmediata. Por ello debe ofrecer al usuario las siguientes prestaciones: Negociacin y entrega inmediata. Mtodos de micro y macro pagos. Facilidades de uso en el contexto mvil. Comercio Electrnico en la Sociedad del Conocimiento A mediados de los noventa se inici la utilizacin de Internet con nes comerciales, en ese momento nadie pudo predecir su impacto en la economa. Se puede armar que Internet no es solo un canal de transmisin o comunicacin de informacin, sino que lleva implcito un cambio cultural importante. Por lo tanto la trascendencia de la economa digital permite hablar de un nuevo marco de actuacin, de una gnesis parametral que traslada el desarrollo organizativo a otro nivel. La economa digital es una economa de cambios importantes, tanto en la forma de entender la gestin dentro y fuera de las empresas como en la ampliacin ms all de los lmites nacionales para el desarrollo de su actividad. Efectivamente, la personalizacin de la relacin con el cliente como la necesidad de ofrecer valor, interactividad y el trato directo e inmediato constituyen elementos diferenciados de primer nivel, siendo uno de los ejemplos ms slidos en la relacin cliente-empresa, el B2C.

28

CAPTULO 2. COMERCIO ELECTRNICO

2.7.

Comercio Electrnico en la Sociedad del Conocimiento

A mediados de los noventa se inici la utilizacin de Internet con nes comerciales, en ese momento nadie pudo predecir su impacto en la economa. Se puede armar que Internet no es solo un canal de transmisin o comunicacin de informacin, sino que lleva implcito un cambio cultural importante. Por lo tanto la trascendencia de la economa digital permite hablar de un nuevo marco de actuacin, de una gnesis parametral que traslada el desarrollo organizativo a otro nivel. La economa digital es una economa de cambios importantes, tanto en la forma de entender la gestin dentro y fuera de las empresas como en la ampliacin ms all de los lmites nacionales para el desarrollo de su actividad. Efectivamente, la personalizacin de la relacin con el cliente como la necesidad de ofrecer valor, interactividad y el trato directo e inmediato constituyen elementos diferenciados de primer nivel, siendo uno de los ejemplos ms slidos en la relacin cliente-empresa, el B2C.

2.8.
2.8.1.

Riesgos, Usos y Tecnologa


Riegos

Como medio comercial el Web presenta las siguientes deciencias, derivadas tanto de su tecnologa como de su naturaleza interactiva: Entorno empresarial y tecnolgico cambiante Empresas y clientes desean tener exibilidad para cambiar, segn su voluntad, de socios comerciales, plataformas y redes. No es posible evaluar el costo de esto, pues depende del nivel tecnolgico de cada empresa, as como del grado deseado de participacin en el comercio electrnico. Como mnimo una empresa necesitar una computadora personal con sistema operativo Windows o Machintosh, un mdem, una suscripcin a un proveedor de servicios de Internet, una lnea telefnica. Una compaa que desee involucrarse ms,

2.8. RIESGOS, USOS Y TECNOLOGA

29

deber prepararse para introducir el comercio electrnico en sus sistemas de compras, nancieros y contables, lo cual implicar el uso de un sistema para el intercambio electrnico de datos con sus proveedores y/o una intranet con sus diversas sedes. Privacidad y seguridad La mayora de los usuarios no confa en el Web como canal de pago. En la actualidad, las compras se realizan utilizando el nmero de la tarjeta de crdito, pero an no es seguro introducirlo en Internet sin conocimiento alguno. Cualquiera que transera datos de una tarjeta de crdito mediante el Web, no puede estar seguro de la identidad del vendedor. Anlogamente, ste no lo est sobre la del comprador. Quien paga no puede asegurarse de que su nmero de tarjeta de crdito no sea recogido y sea utilizado para algn propsito malicioso; por otra parte, el vendedor no puede asegurar que el dueo de la tarjeta de crdito rechace la adquisicin. Resulta irnico que ya existan y funcionen correctamente los sistemas de pago electrnico para las grandes operaciones comerciales, mientras que los problemas se centren en las operaciones pequeas, que son mucho ms frecuentes. Cuestiones legales, polticas y sociales Existen algunos aspectos abiertos en torno al comercio electrnico: Validez de la rma electrnica. No repudio. Legalidad de un contrato electrnico. Violaciones de marcas y derechos de autor. Prdida de derechos sobre las marcas. Prdida de derechos sobre secretos comerciales y responsabilidades. Por otra parte, deben considerarse las leyes, polticas econmicas y censura gubernamentales.

30

CAPTULO 2. COMERCIO ELECTRNICO

2.8.2.

Usos

El comercio electrnico puede utilizarse en cualquier entorno en el que se intercambien documentos entre empresas: compras o adquisiciones, nanzas, industria, transporte, salud, legislacin y recoleccin de ingresos o impuestos. Ya existen compaas que utilizan el comercio electrnico para desarrollar los aspectos siguientes: Creacin de canales nuevos de mercadeo y ventas. Acceso interactivo a catlogos de productos, listas de precios y folletos publicitarios. Venta directa e interactiva de productos a los clientes. Soporte tcnico ininterrumpido, permitiendo que los clientes encuentren por s mismos, y fcilmente, respuestas a sus problemas mediante la obtencin de los archivos y programas necesarios para resolverlos. Mediante el comercio electrnico se intercambian los documentos de las actividades empresariales entre socios comerciales. Los benecios que se obtienen en ello son: reduccin del trabajo administrativo, transacciones comerciales ms rpidas y precisas, acceso ms fcil y rpido a la informacin, y reduccin de la necesidad de reescribir la informacin en las computadoras. Los tipos de actividad empresarial que podran beneciarse mayormente de la incorporacin del comercio electrnico, son: Sistemas de reservas. Centenares de agencias dispersas utilizan una base de datos compartida para acordar transacciones. Existencias comerciales. Aceleracin a nivel mundial de los contactos entre mercados de existencias. Elaboracin de pedidos. Posibilidad de referencia a distancia o vericacin por parte de una entidad neutral. Seguros. Facilita la captura de datos. Empresas que suministran a fabricantes. Ahorro de grandes cantidades de tiempo al comunicar y presentar inmediatamente la informacin que intercambian.

2.9. TIPOS DE RELACIONES, CAMBIOS Y EFECTOS

31

2.8.3.

Teconolgas que emplea

El comercio electrnico utiliza un amplio rango de tecnologas como son: Intercambio Electrnico de Datos (Electronic Data Interchange). Correo Electrnico (E-mail o Electronic Mail). Transferencia Electrnica de Fondos (EFT- Electronic Funds Transfer) . Aplicaciones Internet: Web, News, Gopher, Archie. Aplicaciones de Voz: Buzones, Servidores. Transferencia de Archivos. Diseo y Fabricacin por Computadora (CAD/CAM). Multimedia. Tableros Electrnicos de Publicidad. Videoconferencia.

2.9.
2.9.1.

Tipos de Relaciones, Cambios y Efectos


Tipos de Relaciones que Pueden Presentarse

El comercio electrnico es un mtodo contemporneo para la transaccin empresarial que enfoca la necesidad percibida, tanto por las empresas como por sus clientes, de disminuir los costos de los bienes y servicios, manteniendo la cantidad e incrementando la velocidad de entrega. Las actividades de manejo de la informacin que se realizan en el comercio electrnico mediante transacciones empresariales pueden clasicarse en las siguientes categoras: Transacciones entre una empresa y sus clientes mediante una red pblica de telecomunicaciones (telfono + mdem) con el propsito de realizar compras desde el hogar (home shopping), o el banco en su casa (home banking) utilizando tcnicas de cifrado para manejar los aspectos de seguridad y dinero electrnico.

32

CAPTULO 2. COMERCIO ELECTRNICO

Transacciones con socios comerciales usando EDI. Transacciones para la obtencin de informacin: investigacin de mercados utilizando exploradores de cdigos de barras, tratamiento de informacin para la toma de decisiones directivas o la solucin de problemas organizativos, y la manipulacin de informacin para la organizacin de operaciones, como la administracin de la cadena de proveedores de una empresa. Transacciones para la distribucin de informacin con clientes potenciales, tales como mercadeo, publicidad, y ventas interactivas. La conectividad entre los participantes es una cuestin esencial para la viabilidad del comercio electrnico, e Internet lo consigue a un costo bajo.

2.9.2.

Cambios en las Empresas

El continuo avance en el mejoramiento de la infraestructura de las telecomunicaciones ha proporcionado los medios para el intercambio casi instantneo de los datos. El comercio electrnico hace uso de estos ujos de datos de una forma ecaz. El intercambio eciente de la informacin determina el xito de una empresa; cuando se logra asegurar que el personal de una compaa consume ms tiempo en la produccin o venta de productos y servicios, en lugar de reprocesar innecesariamente los datos, se puede decir que ha iniciado la optimizacin de su potencial. Internet ha demostrado que se est viviendo en una comunidad global, esto quiere decir que no importa las diferencias de horario, ni la ubicacin geogrca, lo que implica que la actividad empresarial puede realizarse con cualquier persona y en cualquier parte del mundo de manera instantnea. Esto signica que las empresas deben replantear sus estrategias empresariales, sean cuales fueran sus objetivos: ampliacin del mercado, obtencin de bienes por parte de proveedores nuevos, externalizacin de servicios (outsourcing), o bsquedas de nuevas alianzas. El comercio electrnico se introduce en las empresas en tres fases: Sustitucin de las operaciones manuales basadas en papel por alternativas electrnicas.

2.9. TIPOS DE RELACIONES, CAMBIOS Y EFECTOS

33

Replanteamiento y simplicacin de los ujos de informacin. Uso novedoso y dinmico de los ujos de informacin. La sustitucin de los sistemas basados en papel, tanto dentro de una empresa, como entre ellas, produce pocos benecios reales. Es cierto que reduce los costos administrativos y mejora el nivel de precisin en el intercambio de datos, pero no aborda las cuestiones relacionadas con que las actividades comerciales se hagan ecientemente a la primera. Las aplicaciones del comercio electrnico ayudan a reformar las maneras de realizar las actividades comerciales, y con frecuencia, actan como un catalizador para que las empresas utilicen la reingeniera de procesos empresariales.

2.9.3.

Efectos

A continuacin se mencionan algunas consecuencias derivadas del desarrollo del comercio electrnico: Empresas virtuales. Es la oportunidad para utilizar socios comerciales externos sin una ubicacin fsica, pues se establece una relacin basada en transacciones electrnicas. Los vendedores pequeos acceden al mercado global. Tradicionalmente estos mercados que tan slo han estado abiertos para las multinacionales, se vuelven accesibles a las compaas ms pequeas debido a la escasa cantidad de recursos necesarios para funcionar en el extranjero. Transformacin de tiendas de venta al menudeo. El crecimiento de las compras desde el hogar y de la venta directa por parte de los fabricantes provocar una disminucin en los precios, y en consecuencia, una reduccin de las comisiones.

34

CAPTULO 2. COMERCIO ELECTRNICO

Presin sobre el servicio al cliente, el ciclo de desarrollo y los costos. Aumentar la necesidad de la entrega rpida y directa. La cadena de valor ser cada vez menos tolerante con la necesidad de inventarios y almacenamiento. Ser inevitable el incremento de la competencia, as como de la necesidad de dinero electrnico.

2.10.

Los Intermediarios

El advenimiento de infraestructuras ubicuas de informacin ha provocado predicciones respecto a que uno de los efectos de los mercados ser la eliminacin de los intermediarios, basndose en la capacidad de las redes de telecomunicaciones. Sin embargo, la realidad puede ser bien distinta puesto que las tecnologas de la informacin no slo reforzarn la posicin de los intermediarios tradicionales, sino que adems promovern la aparicin de nuevas generaciones de intermediarios. En un mercado tradicional puede considerarse que los intermediarios proporcionan un servicio de coordinacin, sin embargo, es necesario denir con mayor precisin esta actividad para identicar cmo afectar Internet a esta tarea: Bsqueda y Evaluacin. Un cliente que elige una tienda especializada sobre unos grandes almacenes escoge implcitamente entre dos alternativas de bsqueda y criterios de evaluacin. En cualquier caso el cliente delega una parte del proceso de bsqueda del producto en el intermediario, quien tambin suministra un control de calidad y evaluacin del producto. Valoracin de Necesidades y Emparejamiento de Necesidades. En muchos casos no es razonable asumir que los clientes posean el conocimiento individual necesario para evaluar dedignamente sus necesidades e identicar los productos que las cumplirn ecazmente. Por lo tanto los intermediarios pueden suministrar un servicio valioso ayudando a sus clientes a determinar sus necesidades. Proporcionando informacin no slo del producto, sino sobre su utilidad, e incluso proporcionando la asistencia explcita de

2.10. LOS INTERMEDIARIOS

35

un experto para identicar las necesidades de los clientes, los intermediarios proporcionan a los clientes servicios sobre la evaluacin de los productos. Manejo de los Riesgos del Cliente. Los clientes no siempre tienen la informacin perfecta y por tanto pueden comprar productos que no satisfagan sus necesidades, en consecuencia en cualquier transaccin al detalle el cliente se enfrenta con ciertos riesgos. Estos pueden ser el resultado de una incertidumbre en las necesidades del cliente, un fallo en la comunicacin con respecto a las caractersticas, o un fallo intencionado o accidental del fabricante al proporcionar un producto adecuado. Otro servicio que proporcionan muchos intermediarios est relacionado con el manejo de este riesgo, suministrando a los clientes la opcin de devolver los productos defectuosos o proporcionando garantas adicionales, los intermediarios reducen la exposicin de los clientes a los riesgos asociados con los errores de los fabricantes. Si el cliente tiene la opcin de devolver los productos por cualquier motivo, el intermediario reduce ms la exposicin del cliente a los riesgos asociados con los fallos de los clientes para valorar las necesidades con precisin y compararlas con las caractersticas del producto. Por lo tanto, eligiendo un intermediario que proporciona estos servicios, los clientes estn comprando implcitamente al intermediario un seguro. Distribucin de Productos. Muchos intermediarios juegan un papel importante en la produccin, envasado y distribucin de bienes. La distribucin es un factor crtico en la determinacin del valor de la mayora de los bienes de consumo. Por ejemplo un litro de gasolina a mil Km del hogar de un cliente frente al que est a un Km es signicativamente diferente, debido principalmente a los servicios de distribucin proporcionados. Difusin de Informacin sobre Productos. Se trata de que el intermediario informe a los clientes sobre la existencia y las caractersticas de los productos. Los fabricantes confan en una variedad de intermediarios, incluyendo a las tiendas de venta al menudeo, casas de ventas por correo / catlogo, agencias de publicidad y puntos de venta para informar a los clientes.

36

CAPTULO 2. COMERCIO ELECTRNICO

Inuencia sobre las Compras. A n de cuentas, a los fabricantes no slo les interesa proporcionar informacin a los clientes, sino vender productos. Adems de los servicios de informacin, los fabricantes tambin valoran los servicios relacionados con la inuencia en las elecciones de compra de los clientes: la colocacin de los productos por parte de los intermediarios puede inuir en la eleccin de los mismos, como poder asesorarse explcitamente mediante un vendedor. Esquemas para la compensacin de comisiones, pagos por el espacio en estanteras y descuentos especiales son formas en las que los fabricantes ofrecen servicios de asesoras de compras a los intermediarios. Suministro de Informacin. Esta informacin que es recogida por intermediarios especializados como empresas de investigacin de mercados, es utilizada por los fabricantes para evaluar nuevos productos y planicar la produccin de los existentes. Manejo de los Riesgos del Fabricante. El fraude y robo realizado por los clientes es un problema que tradicionalmente ha sido tratado por los detallistas e intermediarios crediticios. En el pasado, estos intermediarios han proporcionado sistemas y polticas para limitar este riesgo. Cuando no poda eliminarse, eran los intermediarios quienes afrontaban la exposicin a este riesgo. Integracin de las Necesidades de los Clientes y de los Fabricantes. Los intermediarios deben ocuparse de problemas que surgen cuando las necesidades de los clientes chocan con las de los fabricantes. En un entorno competitivo, un intermediario satisfactoriamente integrado proporciona un haz de servicios que equilibra las necesidades de los clientes y de los fabricantes de una forma aceptable para ambos.

2.10. LOS INTERMEDIARIOS

37

2.10.1.

Tipos de Intermediarios

A continuacin se identican diversos tipos de intermediarios basados en Internet: Directorios. Ayudan a los clientes a encontrar productos clasicando instalaciones Web y proporcionando mens estructurados para facilitar la navegacin. En la actualidad son gratuitos, pero en el futuro podran ser de pago. Existen tres tipos de directorios: - Generales: Como por ejemplo, Yahoo que proporciona un catlogo general de una gran variedad de diferentes sitios Web. Habitualmente existe un esquema para organizar y elegir los sitios que sern incluidos. Estas instalaciones suelen soportar browsing as como bsqueda del catlogo mediante palabras clave. Comerciales: Como El Indice que se centra en proporcionar catlogos de sitios comerciales. No proporcionan infraestructura o servicios de desarrollo para los fabricantes, sino que tan slo actan como un directorio de instalaciones existentes. Tambin pueden suministrar informacin sobre una rea comercial especca, con frecuencia a empresas que no tienen Web. Estos intermediarios son equivalentes a los editores de guas en papel. Especializados: Estn orientados a temas, y son incluso tan sencillos como una pgina creada por una persona interesada en un tema. Estas pginas pueden suministrar al cliente informacin sobre un bien o fabricante en particular. Servicios de Bsqueda. Similares a AltaVista, proporcionan a los usuarios capacidades para realizar bsquedas basadas en palabras clave sobre grandes bases de datos de pginas o instalaciones Web.

38

CAPTULO 2. COMERCIO ELECTRNICO

Centros comerciales. Son instalaciones que proporcionan una infraestructura al fabricante o al detallista a cambio de una cuota. Pueden estar compuestos de una gran variedad de tiendas que venden mltiples productos. Editoriales. Son generadores de trco que ofrecen contenidos de inters para los clientes, que parecen peridicos o revistas interactivas. Las editoriales se convierten en intermediarios cuando ofrecen vnculos con los fabricantes a travs de publicidad o listas de productos relacionadas con sus contenidos. Revendedores Virtuales. Estos intermediarios existen para vender a los clientes centrndose en productos especializados que obtienen directamente de los fabricantes, quienes pueden dudar en dirigirse directamente a los clientes por temor a alejar a los detallistas de los que dependen. Evaluadores de los sitios Web. Los clientes pueden dirigirse a un fabricante a travs de un sitio que ofrece alguna forma de evaluacin, lo que puede ayudar a reducir su riesgo. Algunas veces las evaluaciones se basan en la frecuencia de acceso, mientras que en otros casos son una revisin explcita de las instalaciones. Auditores. Tienen funciones similares a las de los servicios de medicin de audiencia en medios tradicionales. El comercio electrnico requiere de los mismos servicios adicionales que facilitan el comercio tradicional. Los anunciantes requieren informacin sobre las tasas de uso asociadas con la publicidad en el Web, as como informacin dedigna sobre las caractersticas de los clientes. Foros, Clubes de Acionados y Grupos de Usuarios.

2.10. LOS INTERMEDIARIOS

39

Estos tipos de instalaciones no son necesariamente intermediarios directos, pero pueden jugar un gran papel al facilitar la retroalimentacin entre clientes y fabricantes, as como soportar la investigacin de mercados. Los mejores ejemplos de estos grupos son las listas relacionadas con productos que conectan al fabricante con los clientes. Intermediarios Financieros. Cualquier forma de comercio electrnico debe permitir alguna manera de realizar o autorizar pagos del comprador hacia el vendedor. Los sistemas de pago podrn ser desde autorizacin de crdito, cheques electrnicos, pago en efectivo y envo de correo electrnico seguro para autorizar un pago. Redes de Trueque. Es posible que las personas cambien un bien o un servicio por otro, en vez de pagarlo con dinero. Aparecern intermediarios similares a las casas de subastas y bolsas de mercancas para capitalizar estas oportunidades. Agentes Inteligentes. Son programas que mediante un criterio preliminar de bsqueda proporcionado por el usuario, facilitan la localizacin de recursos a travs de Internet, aprendiendo de los comportamientos pasados para optimizar las bsquedas. Esto puede convertirse en un nuevo servicio de intermediacin que los clientes adquieren cuando necesitan cierto bien o servicio.

Captulo 3

El Mundo Mvil
3.1. Evolucin

En 1983, aparecieron en el mercado los primeros telfonos celulares que podan llevarse a todos lados. Desde esos comienzos, los telfonos celulares o mviles han sido vistos como la comunicacin del futuro. Se trataba de un equipo que permita permanecer comunicado en todo momento y en todo lugar, con amigos, familiares y con la empresa. Adems cambiaba radicalmente el modo de comunicarse: ya la comunicacin no se realizaba con un lugar, sino directamente con una persona. En seguida fue adoptado por empresarios, corredores de bolsa, transportistas, hasta llegar a la poca actual donde prcticamente cada integrante de una familia puede llegar a tener su propio equipo celular. La primera generacin de telfonos celulares comenz en 1979 y se trataba de conexiones estrictamente de voz y analgicas. Estas conexiones no tenan seguridad y generaban muchos conictos en las comunicaciones. La tecnologa que ha permitido esta comunicacin se llam AMPS (Advanced Mobile Phone System) y todava sigue siendo utilizada en lugares rurales y ciudades alejadas de Amrica. Hacia 1990 la tecnologa evolucion a lo que se denomin 2G (Segunda Generacin) o PCS (Personal Communication Service). Esta etapa se caracteriz por ser digital y utilizar algoritmos de compresin y seguridad ms sosticados en las comunicaciones. Sigue siendo la tecnologa ms utilizada 41

42

CAPTULO 3. EL MUNDO MVIL

actualmente en las comunicaciones mviles del mundo. En esta etapa, se encuentran predominantemente 3 tipos de tecnologas compitiendo en el mercado: CDMA, TDMA y GSM . GSM es la tecnologa que ms ha evolucionado en sta generacin y por ello, actualmente, posee ms del 70 % del mercado mundial. Tcnicamente es un derivado de la tecnologa TDMA [7]. El sistema 2G trajo consigo nuevas aplicaciones de datos sobre la red celular: fax, mdem, SMS; aunque rpidamente su capacidad de ancho de banda qued limitada. Por esta limitacin de la segunda generacin (9,6 Kbps) y, al darse cuenta que la prxima generacin (la 3G) tardara unos cuantos aos ms en venir, los fabricantes crearon un intermedio llamado 2.5G que permita conexiones de datos ms veloces, como lo es el protocolo GPRS que permite velocidades de 64 Kbps o superiores. En pocos pases del mundo ya est instalada la 3G (Tercera Generacin) de telefona celular. Esta tecnologa tiene un mayor ancho de banda en las transmisiones de datos que permite, por ejemplo, video streaming, videoconferencias y otras aplicaciones de alta performance. Las velocidades son superiores a los 144 Kbps. Tres de las tecnologas ms importantes en 3G al momento son: W-CDMA, TD-SCDMA y CDMA2000. Las velocidades de transmisin de estas tecnologas van de 384 Kbps a 4 Mbps, ya superan a conexiones de banda ancha hogareas en ADSL que estn entre 1 Mbp y 1 Gbps. Se debe recordar que estas velocidades se logran en forma inalmbrica y en constante movimiento del equipo (a mayor velocidad de movimiento, menor ancho de banda). Tambin ya se habla de una 4G que comenzara a implementarse hacia 2010 y que traera aparejado velocidades de 100 Mbps, equiparables con las velocidades actuales de una red local.

3.2.

Telfonos Mviles de Primera Generacin

El sistema ms antiguo fue el de los radiotelfonos mviles que se utilizaban de forma espordica para comunicacin martima y militar durante las primeras dcadas del siglo XX. En 1946 se construy el primer sistema de telfonos instalado en autos. Este sistema utilizaba un solo transmisor grande colocado en la parte superior de un edicio y tena un slo canal que serva

3.2. TELFONOS MVILES DE PRIMERA GENERACIN

43

para enviar y recibir. Para hablar, el usuario tena que oprimir un botn que habilitaba el transmisor e inhabilitaba el receptor. Tales sistemas, conocidos como sistemas de oprimir para hablar, se instalaron en algunas ciudades desde nales de la dcada de 1950. En la dcada del 60 se instal el IMTS (Sistema Mejorado de Telefona Mvil), tambin utilizaba un trasmisor de alta potencia (200 watts), en la cima de una colina, pero tena dos frecuencias, una para enviar y la otra para recibir, por lo que el botn de oprimir para hablar no era necesario. IMTS manejaba 23 canales dispersos desde 150 hasta 450 Mhz. Debido al nmero tan pequeo de canales, los usuarios a veces tenan que esperar bastante tiempo antes de obtener el tono de marcar.

3.2.1.

Sistema Avanzado de Telefona Mvil

La telefona mvil terrestre utiliza estaciones terrestres. stas se encargan de monitorizar la posicin de cada terminal encendida, pasar el control de una llamada en curso a otra estacin, enviar una llamada a un terminal. Cada estacin tiene un rea de cobertura, zona dentro de la cul la comunicacin entre un terminal y sta se puede hacer en buenas condiciones. Las zonas de cobertura tericamente son hexgonos regulares o celdas. En la prctica, toman distintas formas, debido a la presencia de obstculos y a la orografa cambiante de la celda como se puede apreciar en la g. 3.1 de la pg. 44. Adems se solapan unas con otras. Es por esto, que cuando un mvil est cerca del lmite entre dos celdas, puede pasar de una a otra, en funcin de cul de las dos le ofrezca ms nivel de seal, y esto puede suceder incluso durante el transcurso de una llamada sin que se perciba nada. En todos los sistemas de telefona mvil, una regin geogrca se divide en celdas, razn por la cul los dispositivos se conocen como telfonos celulares. En AMPS (Sistema Avanzado de Telefona Mvil, inventado por los laboratorios Bell e instalado por primera vez en los Estados Unidos) las celdas normalmente tienen de 10 a 20 km de dimetro; en los sistemas digitales. Cada celda utiliza un conjunto de frecuencias que no es utilizada por ninguna de sus vecinas. La idea clave que conere a los sistemas celulares con ms capacidad que todos lo sistemas anteriores es el uso de celdas relativamente pequeas y la

44

CAPTULO 3. EL MUNDO MVIL

Figura 3.1: Sistema Telefnico Mvil reutilizacin de las frecuencias de transmisin en celdas cercanas (pero no adyacentes). Un sistema IMTS de 100 km de alcance puede tener una llamada en cada frecuencia, un sistema AMPS podra tener 100 celdas de 10 km en la misma rea con 5 a 10 llamadas en cada frecuencia en celdas muy separadas. El diseo celular incrementa la capacidad del sistema en un orden de magnitud conforme las celdas se hacen ms pequeas en su rea de cobertura. Adems, al ser las celdas ms pequeas se necesita menor potencia, lo cual conduce a dispositivos ms pequeos y econmicos. En el centro de cada celda se encuentra una estacin base a la cul transmiten todos los telfonos de la celda. La estacin base consiste en una computadora y un transmisor / receptor conectado a una antena. En un sistema pequeo, todas las estaciones base se conectan a un mismo dispositivo llamado MTSO (Ocina de Telefona Mvil) o MSC (Centro de Conmutacin Mvil). En un sistema grande pueden ser necesarias varias MTSOs, las cuales se conectan a una MTSO de segundo nivel y as sucesivamente. En cualquier instante cada telfono mvil est en una celda especca y bajo el control de la estacin base de esa celda. Cuando un telfono mvil sale de una celda, sta le cede el control a otra estacin circundante. Cada estacin trabaja con un rango de frecuencias, que delimita el nmero mximo de llamadas simultneas que puede soportar, puesto que a cada lla-

3.3. TELFONOS MVILES DE SEGUNDA GENERACIN

45

mada se le asigna un par de frecuencias diferentes: una para cada sentido de la comunicacin. Esto se denomina FDM, o multiplexacin por divisin en la frecuencia. Las celdas colindantes no pueden utilizar las mismas frecuencias, para que no se produzcan interferencias. Cada telfono mvil en AMPS tiene un nmero de serie de 32 bits y un nmero telefnico de 10 dgitos en su PROM. Cuando un telfono se enciende, examina una lista preprogramada de 21 canales de control para encontrar la seal ms potente. Luego el telfono difunde su nmero de serie de 32 bits y su nmero de telfono de 34 bits [17].

3.3.

Telfonos Mviles de Segunda Generacin

La primera generacin de telfonos mviles fue analgica; la segunda fue digital. De igual manera que en la primera generacin no hubo una estandarizacin mundial de tecnologas, tampoco hubo en la segunda generacin. Existen cuatro sistemas en uso: D-AMPS; GSM; CDMA y PDC.

3.3.1.

D-AMPS - El Sistema Avanzado de Telefona Mvil Digital

D-AMPS se describe en el estndar internacional IS-54 y su sucesor IS136. D-AMPS se dise con mucho cuidado para que pudiera coexistir con AMPS, a n de que tanto telfonos mviles de primera generacin como los de segunda pudieran funcionar de manera simultnea en la misma celda. D-AMPS utiliza los mismos canales de 30 KHz que AMPS y a las mismas frecuencias a n de que un canal pueda ser analgico y los adyacentes digitales. Cuando D-AMPS se introdujo como un servicio, se puso disponible una nueva banda de frecuencia para manejar la carga esperada creciente. Los canales ascendentes estaban en el rango de 1850-1910 MHz y los canales descendentes correspondientes estaban en el rango de 1930-1990 MHz. En un telfono mvil D-AMPS, la seal de voz capturada por el micrfono se digitaliza y se comprime. La compresin se crea mediante un circuito llamado vocoder y se realiza en el telfono en lugar de en la estacin base o

46

CAPTULO 3. EL MUNDO MVIL

la central, para reducir el nmero de bits que se envan a travs del enlace de aire. Con la telefona ja, no hay benecio de hacer que la compresin se realice en el telfono, debido a que la reduccin del traco en el circuito local no incrementa la capacidad del sistema. Gracias a que la digitalizacin y compresin se realiza en el telfono, tres usuarios pueden compartir un solo par de frecuencias que utilizan la multiplexin por divisin de tiempo. Cada par de frecuencias maneja 25 tramas / seg de 40 mseg cada uno como se puede ver en la g. 3.2 de la pg. 46. Adems cada trama se divide en seis ranuras de tiempo de 6.67 mseg cada una [17].

Figura 3.2: Un canal D-AMPS con 3 y 6 usuarios. La estructura de control de D-AMPS es bastante complicada. En resumen, se utilizan seis canales de control: conguracin del sistema, control en tiempo real, y en tiempo no real, localizacin, respuesta de acceso y mensajes cortos. Cuando se enciende un telfono mvil, hace contacto con la estacin base para anunciarse y despus escucha un canal de control para llamadas entrantes. La MTSO informa a la base domstica del usuario dnde est, y las llamadas se pueden enrutar en forma correcta.

3.3.2.

GSM (Sistema Global Para Comunicaciones Mviles)

GSM es similar a D-AMPS. Los dos son sistemas celulares. En ambos se utiliza la multiplexacin por divisin de frecuencia, en el que cada dispositivo mvil transmite en una frecuencia y recibe en una frecuencia mayor (80 MHz ms arriba para D-AMPS, 55 MHz ms arriba para GSM).

3.3. TELFONOS MVILES DE SEGUNDA GENERACIN

47

Adem, en los dos sistemas, se utiliza multiplexin por divisin de tiempo para dividir un solo par de frecuencias en ranuras de tiempo compartidas por mltiples telfonos mviles. Sin embargo los canales GSM son mucho ms anchos que los AMPS (200 KHz en comparacin de 30 KHz) y almacenan relativamente pocos usuarios (8 en comparacin con 3), lo que le da a GSM una tasa de datos mucho ms grande por usuario que D-AMPS. Cada banda de frecuencia tiene una longitud de 200 KHz. Un sistema GSM tiene 124 pares de canales simplex. Cada uno de ellos tiene una longitud de 200 KHz y maneja ocho conexiones por separado, mediante la multiplexin por divisin de tiempo. En cada celda se pueden manejar hasta 992 canales, aunque muchos de ellos no estn disponibles, para evitar conictos de frecuencias con las celdas vecinas. La transmisin y la recepcin no suceden en la misma ranura de tiempo porque los radios GSM no pueden transmitir y recibir al mismo tiempo. Algunas de estas ranuras se utilizan para almacenar algunos canales de control utilizados para manejar el sistema. El canal de control de difusin es ujo continuo de salida de la estacin base que contiene la identidad de la estacin base, as como el estado del canal. Todas las estaciones mviles supervisan su fuerza de seal para ver cundo se han movido a una nueva celda. El canal dedicado de control se utiliza para actualizacin de localizacin, registro y establecimiento de llamada. En particular, cada estacin base mantiene una base de datos de la estaciones mviles actualmente bajo su jurisdiccin. La informacin necesaria para mantener esta base de datos se enva en el canal dedicado de control. Hay un canal de control comn, que se divide en tres subcanales lgicos. El primero de estos subcanales es el canal de localizacin, que la estacin base utiliza para anunciar llamadas entrantes. Cada estacin mvil los supervisa continuamente en busca de llamadas. El segundo es el canal de acceso aleatorio, que permite que los usuarios soliciten una ranura del canal dedicado de control. Si dos peticiones chocan, se distorsionan y se tienen que volver a realizar ms tarde. El tercer subcanal es el canal de otorgamiento de acceso [17].

48

CAPTULO 3. EL MUNDO MVIL

3.3.3.

CDMA (Acceso Mltiple por Divisin de Cdigo)

Se ve como la mejor solucin tcnica existente y como la base para los sistemas mviles de la tercera generacin. Tambin se utiliza ampliamente en los Estados Unidos en los sistemas mviles de segunda generacin y compite frente a D-AMPS. CDMA es completamente diferente de AMPS, D-AMPS y GSM. En lugar de dividir el rango de frecuencia permitida en algunos cientos de canales estrechos, CDMA permite que cada estacin transmita todo el tiempo a travs de todo el espectro de frecuencia. CDMA no supone que las tramas que colisionan son totalmente distorsionadas. Asume que se agregan mltiples seales en forma lineal. Se considera la siguiente analoga: Una sala de espera de un aeropuerto con muchas parejas de personas conversando. TDM (multiplexin por divisin de tiempo) se compara con todas las personas que estn en medio de la sala pero que esperan su turno para hablar. FDM (multiplexin por divisin de frecuencias) se compara con el hecho de que todas las personas que estn en grupos separados ampliamente y cada grupo tiene su propia conversacin al mismo tiempo; aunque de manera independiente, que los otros. CDMA se compara con el hecho de que todas las personas estn en medio de la sala hablando al mismo tiempo, pero cada pareja hablando en un lenguaje diferente, la persona que habla francs se concentra con el francs, rechazando todo lo que no se francs como si hubiera ruido. Por lo tanto la clave de CDMA es tener la capacidad de extraer la seal deseada y rechazar todo lo dems como ruido aleatorio. A cada estacin se le asigna un cdigo nico de m bits llamado secuencia de chip. Cada estacin utiliza completamente el megahertzio, por lo que la tasa de chips es de 1 megachip por segundo. Cada estacin tiene su propia y nica secuencia de bits. Funciona en una banda de 1.25 MHz, pero maneja muchos ms usuarios en esa banda que cualquiera de los otros sistemas.

3.4. TELFONOS MVILES DE TERCERA GENERACIN

49

3.4.

Telfonos Mviles de Tercera Generacin

Algunos factores que estn impulsando a la industria: El trco de datos ya exede el trco de voz en la red ja y est creciendo de manera exponencial. La industria telefnica de entretenimiento y de cmputo han adoptado formatos digitales y estn convergiendo rpidamente. La telefona mvil de tercera generacin trata de encontrar un dispositivo que sea portable y ligero que acte como telfono, reproductor de CDs, reproductor de DVDs, terminal de correo electrnico, interfaz para Web, mquina de juegos, procesador de texto, etc. La ITU trat de concretar esto y cre un diseo para alcanzarlo, llamado IMT-2000 (Telecomunicaciones Mviles Internacionales), pero no cumpli con nada de lo anterior. Luego, se realizaron varias propuestas, y despus de varias selecciones, aparecieron las dos principales. La primera, W-CDMA (CDMA de Banda Ancha), fue propuesta por Ericsson. Este sistema utiliza espectro disperso de secuencia directa. Se ejecuta en una banda ancha de 5 MHz y se ha diseado para interactuar con redes GSM aunque no tiene compatibilidad hacia atrs con GSM. Tiene la propiedad de que el invocador puede salir de una celda W-CDMA y entrar a una celda GSM sin perder la llamada. Este sistema se llam UMTS (Sistema Universal de Telecomunicaciones Mviles). El CDMA 2000, propuesto por Qualcomm, es un diseo de espectro disperso de secuencia directa, bsicamente una extensin de IS-95 y es compatible hacia atrs con l. Utiliza un ancho de banda de 5 MHz, pero no ha sido diseado para interactuar con GSM y no puede entregar llamadas a una celda GSM (ni a una celda D-AMPS ).

50

CAPTULO 3. EL MUNDO MVIL

Algunas de la diferencias tcnicas con respecto a W-CDMA son las siguientes: una tasa de chip diferente, un tiempo de trama diferente, se utiliza un espectro diferente y la sincronizacin de tiempo se realiza de una manera diferente.

3.4.1.

EDGE (Tasa de Datos Mejorada para la Evolucin del GSM)

Mientras se espera la venida del 3G, algunos fabricantes dieron un paso intermedio que se llama 2.5G. Uno de los sistemas es EDGE. Es simplemente GSM con ms bits por baudio. El problema es que ms bits por baudio signican ms errores por baudio, por lo que EDGE tiene nueve esquemas diferentes para modulacin y correccin de errores, que dieren en la cantidad de ancho de banda que se dedica a arreglar los errores introducidos por la velocidad ms alta [17].

3.4.2.

GPRS (Servicio de Radio de Paquetes Generales)

Es una red de paquetes superpuestos encima de D-AMPS o GSM. Permite que las estaciones mviles enven y reciban paquetes IP (protocolo de Internet) en una celda que se ejecuta en un sistema de voz. Cuando GPRS est en operacin, algunas ranuras de tiempo en algunas frecuencias se reservan para el trco de paquetes. La estacin base puede manejar de manera dinmica el nmero y la ubicacin de las ranuras de tiempo, dependiendo de la tasa de voz sobre el trco de datos de la celda. Las ranuras de tiempo disponibles se dividen en varios canales lgicos utilizados para propsitos diferentes. La estacin base determina qu canales lgicos se asignan en qu ranuras de tiempo. Un canal lgico se utiliza para bajar paquetes de la estacin base a algunas estaciones mviles, y cada paquete indica a quin va destinado. Para enviar un paquete IP, una estacin mvil solicita una o ms ranuras

3.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFNICAS 51

de tiempo enviando una peticin a la estacin base. Si la peticin llega sin dao alguno, la estacin base anuncia la frecuencia y las ranuras de tiempo asignadas al mvil para enviar el paquete. Una vez que el paquete llega a la estacin base, se transere a Internet mediante una conexin de cable.

3.5.

Servicios Adicionales de las Empresas Telefnicas

Los equipos celulares fueron pensados para transmitir voz. Lo primero que se piensa cuando se habla de telfonos mviles es en la comunicacin vocal, en comunicacin a travs de la voz de un punto a otro. Sin embargo, poco a poco, se fue conociendo cmo las empresas que provean el servicio de telefona celular han ido incorporando servicios adicionales a lo largo del tiempo de vida de esta tecnologa y, muchos de esos servicios se escapan del estricto uso de la voz para la comunicacin. Desde mensajera de texto, melodas personalizadas, hasta conexin a Internet. En los siguientes apartados se ver con detalle los servicios que los telfonos celulares actuales pueden ofrecer.

3.5.1.

Servicios Analgicos

En esta categora ingresan todos los servicios adicionales que no requieren un equipo con capacidades digitales. Ni siquiera hace falta un telfono con pantalla. Desde los viejos equipos Motorola, hasta los primeros modelos de telfonos Motorota Startac (la lnea 3000), las empresas de telefona celular han provisto de servicios adicionales al uso bsico de la lnea. Estos servicios funcionaban a travs de la red de voz, es decir la red analgica que ya estaba instaurada. Entre ellos, se puede mencionar contestador automtico, alarmas, llamadas en conferencia, y servicios de informacin que se provean (y todava se proveen) comunicndose a un nmero particular que no perteneca a la red ja de telefona.

3.5.2.

Recepcin y Envo de Mensajes de Texto

Este servicio comenz a funcionar en los aos 90 y requera poseer equipos con la capacidad de recepcin de mensajes de texto en la pantalla del tel-

52

CAPTULO 3. EL MUNDO MVIL

fono. Por ello, requieren equipos con pantalla alfanumrica y seal digital. Las empresas permiten el envo de mensajes a un equipo celular a travs de sus sitios web, a travs de una casilla de e-mail o desde otros equipos celulares. El mensaje viaja por la red digital de la empresa y llega al equipo celular donde podr ser visualizado completamente en pantalla. Estos mensajes tienen generalmente una longitud de 150 caracteres y son conocidos tambin como SMS (Short Message System, Sistema de Mensajes Cortos). El mensaje es enviado al destinatario instantneamente, salvo que el equipo receptor no est encendido o est fuera del rea de cobertura. En este caso, el mensaje queda latente, generalmente por unos das, para ser enviado en el momento de restauracin de la seal. Con la gran aceptacin que tuvo el Sistema de Mensajes Cortos comenzaron a aparecer equipos con la posibilidad, no slo de recibir mensajes, sino de emitirlos y as poder enviar mensajes a otros telfonos, en un principio, entre dos telfonos mviles que utilizaban una misma empresa proveedora. Los mensajes son transferidos al nodo central de la empresa y de ah dirigidos al equipo destino. Es decir, la comunicacin no se realiza telfono a telfono directamente. A travs de una pasarela, es comn la posibilidad de enviar mensajes, no a otro telfono, sino a una direccin de e-mail. Estas pasarelas son simplemente nmeros de destino donde el telfono enva el mensaje y este equipo receptor (provisto por el proveedor del servicio) se encarga de redireccionar el mensaje va Internet utilizando el protocolo SMTP. Con el tiempo este servicio se ampli y las empresas comenzaron a interconectar sus redes de mensajera corta y ya prcticamente, es posible enviar y recibir mensajes cortos desde cualquier empresa proveedora a cualquier otra dentro del mismo pas y, a veces, a otros pases.

3.5.3.

Servicios de Informacin

Basados en el Servicio de Mensajera, las empresas proveedoras de la telefona celular comenzaron a ofrecer servicios adicionales de informacin por ese medio. Por ejemplo, es posible suscribirse a recibir informacin sobre: noticias, deportes, cotizaciones nancieras, estados bancarios y otra informacin que ser enviada a todos los equipos celulares suscriptos.

3.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFNICAS 53

Otra modalidad es el envo de informacin mediante SMS bajo demanda. Este servicio permite enviar cierto mensaje a un nmero predeterminado y recibir a cambio alguna informacin de inters o solicitada. Estos servicios son provistos por las mismas empresas o por terceros con convenios especiales. Tambin han surgido salas de chat con la posibilidad de enviar y recibir mensajes a grupos de personas, comunicacin con mensajeros instantneos (como ser el Microsoft Messenger o el Yahoo! Messenger ) y juegos interactivos a travs del Servicio de Mensajera. Algunos de estos servicios se ofrecen en forma gratuita [7].

3.5.4.

Mensajes Multimedia

Los equipos mviles evolucionan a grandes pasos y debido a esto se pueden ver equipos con capacidades multimedia. Por eso, se ha desarrollado una extensin al servicio SMS, llamado MMS (Multimedia Messaging System). Este sistema de intercambio de mensajes permite, adems de texto (ampliado a 900 caracteres), adjuntar cualquier otro tipo de archivo digital, como ser fotos, imgenes animadas, sonidos o videos. El equipo receptor deber soportar tambin esta tecnologa y estar correctamente congurado en el equipo. Esta tecnologa generalmente trabaja enviando un mensaje de texto al telfono receptor indicando una URL (direccin de la red) donde el equipo podr descargar el contenido completo del mensaje. Estos mensajes no son enviados en forma completa al equipo receptor. Es por eso por lo que, si el usuario no quiere recibir este tipo de mensajes puede congurar su equipo para no recoger automticamente sus Mensajes Multimedia.

3.5.5.

Juegos y Aplicaciones

Es una caracterstica adicional provista por el fabricante del equipo. Gracias tambin al gran uso del SMS, los telfonos comenzaron a ampliar el tamao visual de sus pantallas. De esta forma, algunos equipos comenzaron a incluir algunos pequeos juegos en sus modelos de celulares, como se puede apreciar en la g. 3.3 de la pg. 54. Tampoco las aplicaciones se haban quedado atrs y ya comenzaban a aparecer en los equipos aplicaciones como calculadoras, agendas, calendarios,

54

CAPTULO 3. EL MUNDO MVIL

Figura 3.3: Algunos Juegos Conocidos. conversores de medidas y monedas y otros aplicativos que se consideraban tiles para el usuario. De esta forma comenzaba una nueva era en los equipos celulares. Ya no se los vea como un mero aparato comunicacional, sino como una microcomputadora. Comenzaron a aprovecharse capacidades de procesamiento (mnimas, pero existentes) y, cuando esta capacidad de proceso se junta con la capacidad de conectividad de la red celular, se produce la revolucin del software mvil [7].

3.5.6.

Internet Mvil

Internet Mvil es la capacidad que tiene un equipo celular de navegar por la red Internet. Si bien, con ciertas limitaciones, es posible leer e-mails, noticias y ciertos sitios de Internet. La tecnologa que permite esta navegacin por Internet es la llamada WAP (Wireless Application Protocol) que hace de interfaz o pasarela entre la red Internet y el protocolo HTTP con el que se reciben las pginas web y la red celular. Este protocolo tena una limitacin y es que no soportaban pginas HTML como s lo soportan los navegadores para equipos estndar de computacin, co-

3.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFNICAS 55

mo Internet Explorer, Netscape u Opera. Los navegadores WAP de los equipos celulares soportan solamente pginas en formato WML, que es una versin reducida de HTML y adaptada a las necesidades de contenido de un telfono celular. El Fracaso y la Vuelta de Internet Mvil El fracaso se debi a algunas razones, entre ellas: Los proveedores de contenido no supieron adaptarse a las necesidades de un navegante mvil. Slo ofrecan una versin reducida de su mismo contenido web. Las empresas de telefona mvil facturaron este servicio por tiempo de aire consumido, lo que claramente era una bomba de tiempo para el usuario que se encontraba navegando, o intentndolo. La experiencia de navegar por un celular ha sido muy frustrante para muchos usuarios. Una vez que se lograba congurar correctamente el equipo, la navegabilidad de los equipos que, originalmente no estaban preparados para tal n (como ser ausencia de teclas, pantallas muy chicas), hicieron que los usuarios dejaran de lado esta tecnologa. No existieron gran cantidad de equipos con la capacidad de navegador WAP. La vuelta de Internet Mvil se debi a la aparicin de nuevas tecnologas que se ofrecen actualmente (como ser GSM, va GPRS o CDMA2000x ), ahora es posible tarifar al usuario por informacin transferida y no por tiempo de aire, adicionando que los equipos tienen pantallas ms grandes y con altas resoluciones de colores y sistemas de navegacin e introduccin de texto ms cmodos [7]. Adems de esta mejora tecnolgica, el mercado ha ido evolucionando y ya prcticamente todo equipo nuevo tiene navegador WAP y poco a poco, comenzaron a surgir nuevos servicios WAP tiles para los usuarios, entre ellos: Clima, Informacin Geogrca, Guas Telefnicas para Turistas, Mapas de Calles y otra informacin que puede ser de suma utilidad para un usuario que se encuentra fuera del alcance de una PC con conexin a la web.

56

CAPTULO 3. EL MUNDO MVIL

3.6.

WAP

3.6.1.

Introduccin a WAP

Wireless Application Protocol o WAP (protocolo de aplicaciones inalmbricas) es un estndar abierto internacional para aplicaciones que utilizan las comunicaciones inalmbricas, por ejemplo acceso a servicios de Internet desde un telfono mvil. Se trata de la especicacin de un entorno de aplicacin y de un conjunto de protocolos de comunicaciones para normalizar el modo en que los dispositivos inalmbricos, se pueden utilizar para acceder a correo electrnico, grupo de noticias y otro tipo de aplicaciones disponibles desde Internet. El organismo que se encarga de desarrollar el estndar WAP fue originalmente el WAP Forum, fundado por cuatro empresas del sector de las comunicaciones mviles, Sony-Ericsson, Nokia, Motorola y Openwave (originalmente Unwired Planet). Desde 2002 el WAP Forum es parte de la Open Mobile Alliance (OMA), consorcio que se ocupa de la denicin de diversas normas relacionadas con las comunicaciones mviles, entre ellas las normas WAP. La telefona mvil e Internet se combinaron y ahora se puede tener Internet en un terminal mvil (telfono celular) combinar la capacidad de Internet en un entorno donde el usuario puede moverse y disponer conexin las 24 horas del da, en cualquier lugar. De esta idea surge WAP, la arquitectura de protocolos TCP/IP (protocolo de Internet) presenta una serie de dicultades al momento de trabajar en entornos inalmbricos mviles. Estos factores unidos al ancho de bandas limitados a la telefona mvil condicionan a los fabricantes mundiales a constituir el consorcio WAP Forum para desarrollar una nueva pila de protocolos adecuada a los entornos inalmbricos con usuarios en movimientos [6]. Aunque WAP fue diseado para utilizar cualquier tecnologa mvil existente, la ms utilizada por WAP es GSM. GSM es una tecnologa digital de acceso areo que incluye mecanismos de cifrado de comunicacin entre terminal mvil y la estacin base.

3.6. WAP

57

3.6.2.

Motivacin

Los terminales mviles son ms potentes y livianos cada vez, permitiendo que la comunicacin sea cada vez ms ecaz. Su gran nmero y sus capacidades hacen muy interesante para los proveedores de servicios y contenidos disponer de un entorno normalizado que permita ofrecer sus servicios a los usuarios de las redes mviles. WAP dene un entorno de aplicacin y una pila de protocolos para aplicaciones y servicios accesibles a travs de terminales mviles. Consiste en un conjunto de especicaciones, denidas por la Open Mobile Alliance / WAP Forum, que permiten que los desarrolladores diseen aplicaciones de interconexin para terminales mviles, tpicamente telfonos. La tecnologa WAP permite que los usuarios de estos dispositivos puedan acceder a servicios disponibles en Internet. Sin embargo, existen algunas consideraciones a tener en cuenta al disear estos servicios para usuarios mviles, fundamentalmente debidas a las caractersticas de los terminales: pantalla ms pequea que la de un ordenador personal, teclados ms limitados que los de un ordenador, limitaciones en la memoria disponible, tanto memoria RAM como memoria para almacenamiento persistente, y limitaciones en la capacidad del procesador, en comparacin con la memoria y procesador de un ordenador personal tpico. Las redes de telefona mvil ofrecen tambin unas prestaciones por lo general menores que los accesos a Internet, si bien con las redes de tercera generacin como UMTS las prestaciones mejoran de manera importante.

3.6.3.

Modelo de WAP

El modelo de aplicacin WAP como se puede ver en la g. 3.4 de la pg. 58, es bastante similar al WWW, ya que todo el sistema WAP est en el anterior. Este parecido permite facilidades tales como un modelo de programacin familiar, una arquitectura probada y la habilidad de utilizar herramientas existentes (servidores web, herramientas XML, estndares de Internet) tambin debe indicarse que se ha intentado optimizar el modelo para un entorno inalmbrico [6]. Como se puede desprender de la g. 3.5 de la pg. 58, el modelo opera de

58

CAPTULO 3. EL MUNDO MVIL

Figura 3.4: Modelo Wap.

Figura 3.5: Modelo de la Red Wap.

3.6. WAP

59

la siguiente manera: El usuario teclea la URL en su telfono mvil. El agente usuario enva la peticin URL a la pasarela WAP mediante el protocolo WAP. La pasarela WAP genera una peticin convencional HTTP para la URL pedida y la enva al servidor web. El servidor web procesa la peticin. Si es un chero esttico, toma el chero y le aade una cabecera HTTP. Si es CGI ( Common Gateway Interface) u otra aplicacin SCRIPT, lanza la aplicacin. El servidor Web devuelve la marca WML con la cabecera HTTP aadida, o la salida WML del CGI o SCRIPT. La pasarela WAP verica la cabecera HTTP y el contenido WML y la codica a una forma binaria. Crea la respuesta WAP conteniendo el WML y lo enva al usuario. El usuario recibe la respuesta WAP y muestra por pantalla el contenido WML o SCRIPT. El contenido se transporta usando la pila de protocolos. Adems se dispone de un Micro-navegador en el terminal mvil que hace de interfaz con el usuario. WAP dene un conjunto de componentes estndares que permiten la comunicacin entre el cliente mvil y los servidores que deben incluir: Modelo de nomenclatura: se utilizan los URLs estndar. Representacin del contenido: contenido consistente con el WWW. Protocolo estndar: permiten la comunicacin entre el navegador del dispositivo inalmbrico y el servidor. WAP utiliza la tecnologa Proxy para conectar el dominio inalmbrico a la Internet tradicional. Entre el terminal mvil y el servidor web existe una pasarela. En este nodo se traducen los datagrama del protocolo WAP al protocolo HTTP- TCP/IP. Por tanto el cliente, desde su terminal con capacidad WAP ve esta pasarela como el extremo de la comunicacin [6].

60

CAPTULO 3. EL MUNDO MVIL

Entorno de Programacin WAP El cliente WAP se comunica con dos servidores en la red inalmbrica. La pasarela WAP traduce las peticiones WAP en peticiones WWW y tambin en direccin contraria (respuestas WWW en respuestas WAP). Si el servidor web proporciona directamente contenido WAP (WML), la pasarela WAP lo toma directamente del servidor. Sin embargo si el servidor slo proporciona contenido WWW (HTML). Las marcas WML son codicadas WBXML antes de enviarlas al mvil WAP. El servidor de Aplicacin de Telefona Inalmbrica WTA (Wirelees Telephony Application) es un ejemplo de servidor que responde peticiones directamente del cliente WAP sin pasar por ningn tipo de intermediarios. Se utiliza fundamentalmente para aplicaciones propias del entorno inalmbrico. La Capa de Aplicacin WAE La capa de aplicacin (Wireless Application Enviroment) es la capa de propsito general basada en una combinacin de Word Wide Web (WWW) y las tecnologas de telefona mvil. Su principal objetivo es establecer un entorno de interoperabilidad que permitir a los usuarios y los proveedores de contenido construir aplicaciones y servicios que puedan alcanzar una gran variedad de plataformas inalmbricas de manera eciente y til. WAE incluye un mini-navegador que tiene las siguientes funcionalidades: Wireless Mark-up Language (WML) un lenguaje liviano, similar a HTML pero optimizado para terminales mviles. , (WBML) es la versin codicada que se entrega a los dispositivos mviles para reducir el volumen del trco al telfono mvil. WMLScript, un lenguaje de script de baja carga, similar a Javascript. Wireless Telephony Application (WTA-WTAI) servicios de telefona e interfaces de programacin. Formatos de contenidos, un conjunto de formatos de datos bien denidos.

3.6. WAP

61

Figura 3.6: Pilas de Protocolos TCP/IP y WAP.

3.6.4.

Tecnologa

En la versin 1 de WAP, denida en 1999, el lenguaje de presentacin de contenidos es el WML, o Wireless Markup Language. La pila de protocolos de WAP 1 no es compatible directamente con la de Internet como se puede ver en la g. 3.6 de la pag. 61: WSP (Wireless Session Protocol), WTP (Wireless Transaction Protocol), WTLS (Wireless Transport Layer Security), y WDP (Wireless Datagram Protocol). WDP corresponde a la capa de transporte, con funcionalidad equivalente al protocolo UDP de Internet, y se apoya en los servicios de la portadora WAP, que depende de la red mvil que est usando el terminal. WAP 1 adems dene la interfaz de acceso de las aplicaciones a las funciones de telefona del terminal con WTAI (Wireless Telephony Application Interface), y tambin un sencillo lenguaje de scripting, WMLScript, basado en JavaScript. La incompatibilidad que existe en la pila de protocolos WAP 1 con la de Internet exige la presencia de un nodo pasarela para hacer de intermediario en la comunicacin entre un terminal WAP y un servidor de contenidos WAP residente en Internet.

62

CAPTULO 3. EL MUNDO MVIL

WAP ha sido sujeto a diversas crticas en su implementacin, como ser el bajo soporte de grcos en los terminales mviles, las diferencias de implantacin en terminales mviles de distintos fabricantes y un problema muy grave en cuanto a seguridad debido a que la capa WTLS no es robusta y adems por no ser compatibles con los mecanismos de seguridad que brinda Internet. La nueva versin de WAP, WAP 2.0, est presente en los telfonos mviles de nueva generacin (a partir del 2004). Esta versin es una reingeniera de WAP que utiliza XHTML-MP (XHTML Mobile Prole), un subconjunto de XHTML que incluye el XHTML bsico, y WCSS (WAP CSS), un subconjunto de CSS ms ciertas extensiones especcas para mviles, como lenguajes para la presentacin de contenidos mejorando, por ejemplo el soporte de los grcos. De esta forma se consigue que el diseo de contenidos con WAP 2.0 sea muy similar al diseo de contenidos para la WWW para navegadores en dispositivos no mviles. En cuanto a los protocolos usados, en la capa de transporte se usa TCP y en la de aplicacin, HTTP. As pues, WAP 2.0 ha adoptado los protocolos de Internet. WAP 2.0 adems especica opciones tanto en TCP como en HTTP para mejorar las prestaciones de dichos protocolos sobre redes de comunicaciones mviles. Los mecanismos de seguridad usados ya son compatibles con los de Internet por lo que los problemas de seguridad de WAP 1 se resuelven. La pasarela WAP no es estrictamente necesaria en WAP 2.0, pero su presencia puede tener funciones tiles, como cache web y para dar soporte a las opciones de TCP y HTTP antes mencionadas.

3.6.5.

WAP 2.0

WAP 2.0 es la prxima generacin de un conjunto de especicaciones que a comparacin de versiones previas, marca el actual esfuerzo de WAP Forum para adoptar los ms recientes protocolos y estndares de Internet. WAP 2.0 optimiza el uso de grandes anchos de banda y conexiones basadas en paquetes en redes inalmbricas. Mientras utiliza y soporta el incremento en las capacidades de los ltimos dispositivos inalmbricos, tambin provee compatibilidad hacia atrs a contenidos WAP existentes, aplicaciones y servicios que utilizan versiones previas de WAP. Algunas caractersticas de WAP 2.0:

3.6. WAP

63

Soporte de pila de protocolo: Adems de la pila WAP introducida, WAP 2.0 aade soporte y servicios basados en la pila comn de Internet incluyendo soporte para TCP, TLS y HTTP. En comparacin con ambas pilas de protocolo, WAP 2.0 provee un modelo de conectividad en un amplio rango de redes y portadoras inalmbricas. Ambiente de aplicacin WAP: Normalmente visto como Navegador WAP, el ambiente de aplicacin de WAP 2.0 ha evolucionado para aceptar el lenguaje de marca del navegador de Internet como estndar de desarrollo. Esto ha llevado a la denicin de un nuevo lenguaje llamado XHTML-MP . XHTML-MP est basado en la modularidad del marco de trabajo del eXtensible HyperText Markup (XHTML) lenguaje desarrollado por la W3C para reemplazar e incrementar el lenguaje HTML usado actualmente. Capacidades y servicios adicionales: Con WAP 2.0 existe un incremento en el nmero de caractersticas disponibles para desarrolladores, operadores y usuarios. Modelo de Programacin WAP El modelo de programacin WAP est estrechamente alineado con el modelo de programacin Web; ver g. 3.6 de la pg. 61, usa el modelo Pull (donde el cliente requiere contenido desde un servidor). De igual modo, WAP 2.0 extiende la arquitectura web aadiendo soporte a telefona con WTA y habilitando un modelo Push, donde el servidor puede enviar con iniciativa contenido al cliente [?]. En versiones previas de WAP, WAP Proxy (referido como WAP gateway) fue requerido para manipular los protocolos entre el cliente y el servidor origen. WAP proxy comunicado con el cliente usando los protocolos WAP que estn basados en gran parte en protocolos de comunicacin de Internet, y este comunicado con el servidor origen usando los protocolos estndares de Internet. WAP 2.0 no requiere la utilizacin del WAP proxy puesto que la comunicacin entre el cliente y el servidor origen puede ser conducido usando HTTP. De igual manera, colocando un WAP proxy se pueden optimizar los procesos de comunicacin y pueden ofrecer incrementos en los servicios mviles; ver g. 3.8 de la pg. 64. Adems, un servidor proxy es necesario para ofrecer

64

CAPTULO 3. EL MUNDO MVIL

Figura 3.7: Modelo de Programacin Wap. funcionalidad Push.

Figura 3.8: Modelo Proxy para WAP 2.0.

Nuevas Caractersticas Aadidas y Servicios Mejorados Adems del ambiente de aplicacin y el incremento de la capacidad del micro-browser, WAP 2.0 tambin soporta otras caractersticas para mejorar la experiencia del usuario. Estas caractersticas amplan las capacidades de los dispositivos inalmbricos y mejoran la habilidad para entregar servicios y aplicaciones tiles [?]. Algunas de las caractersticas adicionales de WAP 2.0 son las siguientes:

3.6. WAP

65

WAP push: Este servicio permite enviar contenido a dispositivos mediante aplicaciones basadas en servidor va un push proxy. Esta funcionalidad ha sido mejorada por WAP 2.0. La funcionalidad de push es especialmente relevante en aplicaciones de tiempo real que envan informacin a sus usuarios, como ser mensajes, precio de stock, alertas actulizadas de trco. User Agent Prole (UAProf ): Este servicio provee la descripcin de las capacidades de los clientes y las preferencias de los usuarios a un servidor de aplicacin. Mejorado por WAP 2.0, esto est basado en la combinacin Capabilities / Preference Proles (CC/PP) trabajo de la W3C, UAProf soporta el modelo de transaccin cliente-servidor enviando la informacin del usuario a servidores con la peticin. Esta informacin permite a los servidores adaptar su contenido y en consecuencia realizar la preparacin de la respuesta. Data Synchronization: En un enfoque que ayuda a asegurar una solucin comn de marco de trabajo, el WAP Forum busc una solucin para la sincronizacin de datos. Como resultado de ello, WAP 2.0 reconoce la labor de la SyncML mediante la adopcin del lenguaje SyncML como su opcin para la solucin de sincronizacin de datos. Los mensajes SyncML se apoyan tanto con los protocolos WSP y HTTP/1.1 Multimedia Messaging Service (MMS): Este servicio prevee el marco de trabajo para implementar una solucin de envio de mensajes ricas en caractersticas. MMS provee caractersticas y funcionalidades que permiten repartir tipos variados de contenido. Dependiendo del modelo de servicio, MMS permite un paradigma de entrega rpido (al igual que SMS) o un mtodo de almacn y reenvo (parecido al correo electrnico) o debera permitir ambos modos para operar. Esta exibilidad permite a operadores ajustar el resultado a la experiencia del usuario.

66

CAPTULO 3. EL MUNDO MVIL

Captulo 4

Aplicaciones Mviles
4.1. Introduccin

Los dispositivos de computacin inalmbrica han crecido rpidamente, requeriendo aplicaciones de software cada vez ms potentes que puedan manejar esta nueva realidad. Los usuarios desean que las aplicaciones que corren en sus dispositivos mviles tengan la misma funcionalidad estando conectados o desconectados de la red. Esperan aplicaciones que puedan soportar conexiones intermitentes, anchos de banda cambiantes y que manejen ecientemente el problema del roaming. El rango de dispositivos mviles va desde dispositivos dedicados a tareas especcas, como los telfonos celulares, hasta aquellos dispositivos de propsito general, como notebooks. Cada uno de ellos presenta diferentes conjuntos de desafos para el diseo de aplicaciones mviles. Algunos de estos desafos compartidos por la mayora de los dispositivos mviles incluyen: La ubicacin fsica del dispositivo y la conguracin pueden cambiar en cualquier momento a medida que el dispositivo est conectado o desconectado de la red o se mueve entre dos puntos de conexin. La arquitectura de aplicacin mvil debe soportar una operacin consistente operando tanto online como oine y proveer una conectividad continua mientas el dispositivo se mueve entre puntos de conexin. 67

68

CAPTULO 4. APLICACIONES MVILES

Los dispositivos que se alimentan mediante el uso de bateras pueden operar por un tiempo limitado sin recargar o reemplazar las mismas. La arquitectura de una aplicacin mvil debe se diseada para administrar esa energa limitada de las bateras, mediante el uso de estrategias que prologuen la vida til al reducir el consumo sin sacricar el rendimiento del sistema. Una arquitectura de aplicaciones mviles debe proveer soporte para un amplio rango de dispositivos. Debido a que los dispositivos pequeos de propsito especco, tales como telfonos celulares, poseen limitaciones de recursos como el tamao reducido de sus pantallas, limitado almacenamiento y poder de cmputo [21].

4.2.

Requerimientos Para Una Arquitectura de Aplicaciones Mviles

Una aplicacin diseada para ser usada en un dispositivo mvil debe cumplir con ciertos requerimientos, algunos son propios del ambiente mvil y otros pueden ser requerimientos de cualquier tipo de aplicacin. A continuacin se presentan los ms relevantes: Operacin consistente tanto online como oine: En varias arquitecturas, los datos son almacenados en un sistema compartido accesible a travs de la red, en forma de documentos, registros de datos o archivos binarios, donde se tiene un acceso coordinado a una copia de la informacin. Una aplicacin mvil debe ser diseada de forma de que los usuarios puedan acceder a los datos sin importar si lo hacen en forma online o en forma oine. Cuando se trabaja oine, el usuario percibe que la informacin compartida est disponible para lectura y escritura. Cuando la conectividad regresa, los cambios en la informacin local son integrados a la copia de red y viceversa. Conectividad continua: Una aplicacin diseada para movilidad debe trabajar con un agente o servicio Proxy para permitir un manejo transparente de los cambios en la conectividad. La conectividad no tiene que ser un requerimiento para la funcionalidad y cortes intermitentes e inesperados en la conexin con la red deben poder ser manejados satisfactoriamente. As mismo este agente o servicio Proxy debe poder seleccionar

4.2. ARQUITECTURA DE APLICACIONES MVILES

69

la red ptima de las disponibles en ese momento, y manejar las tareas propias de la comunicacin como autenticacin segura o autorizacin y direccionamiento lgico. Clientes que soporten multiplataformas: Una aplicacin mvil debe al menos ajustar su interaccin y comportamiento al dispositivo en el que corre, como por ejemplo tipo de entrada y salida, recursos disponibles y nivel de performance. Administracin de recursos: Un recurso como la energa, el ancho de banda o el espacio de almacenamiento puede ser consumido y existe en una cantidad nita. La administracin de recursos debe permitir el monitoreo de atributos como cantidad o tasa de uso, y soportar noticaciones basadas en disparadores predenidos por el usuario. Administracin del contexto: Contexto es cualquier informacin que puede se usada para caracterizar la situacin de una entidad. Donde una entidad es una persona, lugar u objeto que es relevante para la interaccin entre un usuario y una aplicacin, incluyendo al usuario y la aplicacin. La administracin del contexto debe permitir el monitoreo de atributos como ubicacin actual o tipo de dispositivo, y proveer noticacin de cambios en el mismo. Codicacin: La codicacin involucra la modicacin de los datos y protocolo en funcin de los requerimientos del contexto y recursos disponibles. Ejemplos de codicacin son la encriptacin, compresin y transcodicacin. Una implementacin de la capacidad de codicacin permitir la enumeracin de los encoders y decoders disponibles. Luego con sta informacin disponible junto con la capacidad de administracin del contexto, proveer la habilidad de negociar el uso de uno u otro mtodo de codicacin. Almacenamiento duradero: La capacidad de manejar un almacenamiento duradero permite la persistencia de datos de conguracin o informacin esttica. Seguridad: Para evitar las consecuencias de ataques maliciosos, aplicaciones con diseos pobres, y errores inadvertidos de usuarios, se deben tomar ciertas medidas de seguridad como ser: Sistemas y usuarios deben ser autenticados, autenticacin de sistemas, usuarios y acciones deben ser autorizados, y acciones e interacciones deben ser auditadas.

70

CAPTULO 4. APLICACIONES MVILES

Se puede observar que los requerimientos planteados son en gran medida requerimientos no funcionales, esto se debe a la naturaleza sumamente restrictiva implicada en un escenario mvil, y relacionada especialmente con aspecto de hardware.

4.3.

Arquitectura de Portal Para Aplicaciones Mviles

La funcin primaria de un portal es la de agregar e integrar diversas y distribuidas fuentes de informacin, y presentar el resultado al usuario en una vista simple concisa y pertinente a travs de un navegador Web o Web Browser. Un portal es tpicamente dirigido a un grupo especco o tipo de usuario. Por ejemplo en la Intranet de una compaa, el sector de atencin al cliente puede acceder a informacin relacionada con clientes (promociones vigentes, descuentos, etc.), pero no puede acceder a informacin nanciera, sta estara slo autorizada para los integrantes del sector de nanzas [21]. Los contenidos que puede tener un portal son: Datos relativamente estticos, como banners, grcos y estructura general. Contenido dinmico, informacin que cambia con cierta frecuencia, el caso de las promociones vigentes para el sector de atencin al cliente estara dentro de este grupo. Informacin nueva o trascendente, como noticaciones o informacin incremental. Por ejemplo una noticacin para el grupo de ventas de un determinado producto que indique que el stock se ha terminado. La arquitectura de un portal abarca tres tipos de funciones: Fuentes de Informacin: Las fuentes de informacin proveen de datos al portal. Las fuentes de informacin incluyen bases de datos, aplicaciones u otros portales externos al sistema. Funciones del Portal: Las funciones de un portal son bsicamente las de agregar y componer la informacin para luego ser entrada al usuario.

4.3. PORTAL PARA APLICACIONES MVILES

71

Funciones Independientes: Son tecnologas persistentes o componentes, como el Web Browser. Los componentes incluidos en un portal son los siguientes: Web browser: Provee una interfase del portal al usuario, si se accede a travs de Internet, un protocolo Proxy soporta la comunicacin con el usuario y con el portal HTTP y HTML comnmente mejorado del lado del cliente con el uso de lenguajes de scripting y/o cdigo ubicado en el browser como ActiveX o controles Java. Servidor de Presentacin: Crea e integra vistas de contenido a travs de la interaccin con otros componentes. Servidor de Aplicacin: Ejecuta cualquier cdigo que sea requerido dinmicamente para extraer y reformatear informacin desde sistema no basados en Web. Administracin de Contenido, bsqueda e indexacin, y colaboracin. Servicios de Personalizacin: Disponible para que cada usuario pueda congurar la vista y el contenido que quiere tener cada vez que accede al portal. Seguridad: Un requerimiento para toda arquitectura de aplicaciones mviles, es el de asegurar la integridad de informacin sensible en sitios remotos. Un portal Web es completamente dependiente de la conexin de red, ya que es una arquitectura centrada en el servidor y la conexin de red se hace un recurso imprescindible. Una solucin simple para aplicaciones mviles es la de permitir el acceso oine a sitios Web, bases de datos y archivos que han sido previamente descargados en el mvil. El usuario interacta con los mismos y una vez que la conexin se reestablece, las copias locales y remotas se sincronican. Esta solucin es vlida para aquellos portales simples, pero cuando las fuentes de datos vienen asociadas con otros sistemas o directamente no caben en el dispositivo mvil, no podr ser aplicada. Entonces, sin conexin de red, la creacin de contenido dinmico desde un portal y sus sistemas back-end en tiempo de ejecucin es esencialmente

72

CAPTULO 4. APLICACIONES MVILES

imposible. Sin embargo existen algunas aproximaciones que pueden ser usadas para proveer una vista oine del contenido: Prealmacenado del contenido generado en el portal. Replicacin en el sistema mvil de los datos y el cdigo usado para generar el portal y su sistema back-end. La apropiada estrategia a utilizar depender de factores como cantidad de datos involucrados, la complejidad de la interaccin del usuario con los datos, y la frecuencia necesaria de actualizacin de los mismos. A continuacin se presentar de que forma una arquitectura de portal mvil puede cubrir los requerimientos planteados para caracterizar una aplicacin mvil: Clientes que soporten multiplataformas: Los portales usualmente soportan el acceso desde diferentes plataformas, manejan diferentes caracterizaciones de dispositivos, y cualquier transcodicacin de contenido requerido. Como el contenido comnmente es dinmico y el tipo de dispositivo del cliente impredecible, estas actividades ocurren en tiempo de ejecucin. Una aplicacin cliente que soporte movilidad no necesita soportar transcodicacin dinmica porque el tipo de dispositivo del cliente es esttico. La aplicacin no necesita manejar cambios dinmicos en la personalizacin del dispositivo oine, ya que se supone que el mismo ser usado por una nica persona. Capacidad de trabajar oine: Prealmacenado de Contenido: involucra el prealmacenado del contenido provisto por un portal en respuesta a un requerimiento hecho por un cliente a travs de una URL, como una pgina Web. El cdigo que genera el contenido no es prealmacenado. Por ejemplo un link (enlace) puede ser referencia a un script JSP o ASP, el Server de aplicacin corre este script y devuelve al cliente streams HTML. Estos HTML son los que estn prealmacenados, no los scripts. Navegar el portal, siguiendo cada link y almacenar la salida en el sistema local para luego disponer del mismo oine, es un mecanismo completamente ineciente. Adems todas la pginas pueden no ser

4.4. ARQUITECTURA DE BASES DE DATOS

73

requeridas, por lo tanto el prealmacenado de contenido debe realizarse bajo el control de la conguracin local que especique las pginas de inters o provea un criterio de seleccin. Replicacin de Cdigo: permite que el contenido del portal sea ms dinmico. El portal puede ejecutar cdigo, por ejemplo JAVA, en el proceso de servir el contenido al usuario o en la recoleccin y manejo de datos de otros sistemas. El cdigo es replicado desde el servidor al cliente. Alguna replicacin involucra componentes de la interfase del usuario, la mayora esta involucrado con la coleccin, manipulacin y almacenamiento de datos. Replicacin de Datos: los datos pueden ser replicados del portal al cliente, del cliente al portal o en ambas direcciones. Si los datos solo puede tener permiso de escritura en el lado del cliente, la implementacin se vuelve ms simple, sin embargo la implementacin que permite esquemas de mltiples copias que pueden ser actualizadas independientemente, se vuelve ms compleja. Conectividad Continua: Dos reas estn incluidas dentro de conectividad continua, estas son administracin de conectividad de red y la seguridad desde el punto de vista del usuario. Por ejemplo el usuario no tendr fsicamente que re-autenticarse cada vez que el sistema se reconecta. La conectividad continua puede ser soportada por emulacin, la cual provee la apariencia de que el recurso de red se encuentra disponible. Una posible arquitectura de portal para aplicaciones mviles es la mostrada en la g. 4.1 de la pg. 74, la cual reeja varios tipos de modicaciones: agregado de nuevos componentes (a los habituales de un portal no mvil).

4.4.

Arquitectura de Bases de Datos Para Aplicaciones Mviles

Los usuarios tradicionales de una base de datos acceden a los datos residentes en el servidor de bases de datos desde sus equipos clientes conectados fsicamente a la red. Los datos se presentan en la mquina cliente como

74

CAPTULO 4. APLICACIONES MVILES

Figura 4.1: Arquitectura de un Portal Mvil.

una simple vista de los datos residentes en el servidor. Esta particular arquitectura es segura pero al mismo tiempo limitada en el hecho de que los usuario no pueden ver o trabajar con los datos sin una conexin a la red. Todo procesamiento tiene lugar en el servidor, construido especcamente para tal propsito. Se puede armar que una base de datos es un archivo que contiene varios registros de datos. En un ambiente cliente / servidor tradicional, ms de un usuario puede utilizar la misma base de datos simultneamente. RDBMS (Sistemas Manegadores de Bases de Datos Relacionales) hace esto posible a travs del uso de mecanismo interno de locking que previenen que ms de un usuario modique un registro al mismo tiempo [21]. Una arquitectura de base de datos preparada para un ambiente mvil, permite a los usuarios acceder a la informacin en cualquier momento y desde cualquier lugar. En un ambiente mvil, copias de los datos pueden existir en distintos sistemas clientes. Dado que estos sistemas clientes no estn continuamente conectados a la base de datos central, el RDBMS de dicha base no es capaz de prevenir cambios simultneos a los datos por ms de un usuario. Por

4.4. ARQUITECTURA DE BASES DE DATOS

75

otra parte, los datos locales en cada sistema cliente deben ser peridicamente sincronizados con los datos de la base master que reside en el servidor. Algunos de los desafos al disear una arquitectura de bases de datos son las siguientes: Los datos en los sistemas cliente se desactualizan durante los periodos en que el cliente no est conectado. Los mensajes referentes a actualizaciones pendientes no estarn disponibles mientras el sistema este desconectado, esto introducir mas dudas sobre la valides de los datos. La resolucin de conictos se volvern ms desaantes y ya no estarn bajo el control del RDBMS. El poder de procesamiento local en los clientes puede ser limitado en comparacin al poder de procesamiento disponible en el servidor. Los datos propietarios, deben mantenerse seguros en las ubicaciones remotas. Un usuario mvil debe ser capaz de seleccionar los datos a replicar en el sistema cliente para su uso cuando el sistema este desconectado de la red. La replicacin de la base de datos completa no debe ser permitida, se debe limitar al usuario aun arbitrario conjunto de datos. Las desconexiones cliente / servidor deben ser transparentes al usuario. La aplicacin cliente debe continuar teniendo un buen comportamiento y los datos continuar disponibles para el usuario. Un usuario necesita saber si los datos que va a utilizar en un ambiente oine son viejos, irrelevantes o transitorios. El usuario debe ser capaz de basar sus decisiones en estos datos, pero los mismos deben ser marcados de forma que la decisin resultante pueda ser actualizada cuando los datos vuelvan a estar disponibles online nuevamente. Una arquitectura de base de datos para aplicaciones mviles debe garantizar que las transacciones sern trasmitidas conablemente. Durante una transaccin normal, una conexin de red es establecida entre el cliente y el servidor y la transferencia de datos es iniciada. Cuando la transferencia de datos se completa, una noticacin sobre si la transferencia fue realizada con xito o no es enviada al que la inici. La falla

76

CAPTULO 4. APLICACIONES MVILES

o el xito de la transaccin, no debe limitar el trabajo que el usuario puede hacer. Por ejemplo, si el dispositivo est conectado a la red y actualiza un campo de datos, la transaccin ser trasmitida al servidor inmediatamente. Si la conexin se pierde durante la transmisin, la transaccin ser encolada para ser transmitida cuando la conexin sea reestablecida. Mientras tanto el usuario debe poder ser capaz de hacer referencia a la actualizacin aunque la transmisin no se haya completado.

4.5.

Aplicaciones Multiplataforma

Multiplataforma es un trmino usado para referirse a los programas, sistemas operativos, lenguajes de programacin, u otra clase de software, que puedan funcionar en diversas plataformas. Por ejemplo, una aplicacin multiplataforma podra ejecutarse en Windows en un procesador x86, en GNU/Linux en un procesador x86, y en Mac OS X en un x86, sin nungn tipo de problemas. Una plataforma es una combinacin de hardware y software usada para ejecutar aplicaciones, en su forma ms simple consiste nicamente de un sistema operativo, una arquitectura, o una combinacin de ambos. La plataforma ms conocida es probablemente Microsoft Windows en una arquitectura x86, otras plataformas conocidas son GNU/Linux y Mac OS X (que ya de por s son multiplataforma). El software en general est escrito de modo que dependa de las caractersticas de una plataforma particular; bien sea el hardware, sistema operativo, o mquina virtual en que se ejecuta. La plataforma Java es una mquina virtual multiplataforma, tal vez la ms conocida de este tipo, as como una plataforma popular para hacer software.

4.5.1.

Java y Multiplataforma

Uno de los principales objetivos de los desarrolladores de software en los ltimos aos ha sido conseguir programas portables, capaces de ser ejecutados en diversas plataformas (Macintosh,PC, Unix, Windows), logrando la compatibilidad total. La aparicin del lenguaje Java da la primera solucin satisfactoria al problema de la compatibilidad. La idea consiste en crear mquinas virtuales idnti-

4.5. APLICACIONES MULTIPLATAFORMA

77

cas en cada una de las diferentes plataformas y encargarles a ellas la ejecucin de programas, obteniendo as la compatibilidad total. Con el desarrollo de estas mquinas virtuales anteriormente mencionadas se puede lograr que el mismo cdigo binario ejecutable se pueda usar en todos los sistemas compatibles con el software Java. Adems la penetracin de Java en Internet, como lenguaje de acompaamiento al HTML, ha sido todo un xito.

Captulo 5

Java
5.1. Introduccin al Lenguaje

Java es un lenguaje orientado a objetos. Esto signica que posee ciertas caractersticas estndares en los lenguajes OO: Objetos. Clases. Mtodos. Subclases. Herencia simple. Enlace dinmico. Encapsulamiento. Java se volvi un lenguaje muy popular. Antes de que Java apareciera, por ejemplo, C era un lenguaje extremadamente popular entre los programadores y pareca que era el lenguaje de programacin perfecto, combinando los mejores elementos de los lenguajes de bajo y alto nivel en un lenguaje de programacin que se ajustaba a la arquitectura del ordenador y que gustaba a los programadores. 79

80

CAPTULO 5. JAVA

Sin embargo, el lenguaje C tena limitaciones, al igual que los lenguajes de programacin anteriores. Cuando los programas crecan, los programas C se hacan inmanejables porque no haba una forma fcil de acortarlo. Esto quiere decir que el cdigo de la primera lnea de un programa largo podra interferir con el cdigo de la ltima lnea y el programador tendra que recordar todo el cdigo mientras programaba. La programacin orientada a objetos se hizo popular por ser capaz de dividir programas largos en unidades semi-autnomas. El lema de la programacin orientada a objetos es divide y vencers. Dicho en otras palabras, un programa se puede dividir en partes fcilmente identicables. Por ejemplo, se supone que para mantener fresca la comida se utiliza un sistema complejo. Debera comprobar la temperatura de la comida usando un termmetro y cuando la temperatura fuera lo sucientemente alta, se activara un interruptor que arrancara el compresor e hiciera funcionar las vlvulas para que el fro circulara; luego arrancara un ventilador que moviera el aire. Esa es una forma de hacerlo. Sin embargo, otra consiste en coordinar todas esas operaciones de forma que sean automticas, cubriendo todo con una unidad sencilla, un refrigerador. Ahora las interioridades no se ven y lo nico que hay que hacer es introducir o sacar comida del frigorco. De esta forma es como funcionan los objetos, ocultan los detalles de la programacin al resto del programa, reduciendo todas las interdependencias que aparecen en un programa C e inicializando una interfaz bien denida y controlable que mantiene la conexin entre el objeto y el resto del cdigo. Resumiendo se puede decir que la programacin orientada a objetos consiste en la divisin de un problema en diferentes partes (objetos) donde: Cada objeto posee una funcionalidad especca. Los objetos interactan entre s enviando y recibiendo mensajes; ver gura 5.1 de la pgina 81. La tarea del programador es coordinar las acciones de los objetos y la comunicacin entre los mismos.

5.1. INTRODUCCIN AL LENGUAJE

81

Figura 5.1: Mecanismo de Mensajes Para programar bajo el paradigma orientado a objetos es necesario primero disear un conjunto de clases. La claridad, eciencia y mantenibilidad del programa resultante depender principalmente de la calidad del diseo de clases. Un buen diseo de clases signicar una gran economa en tiempo de desarrollo y mantencin. Lamentablemente se necesita mucha habilidad y experiencia para lograr diseos de clases de calidad. Un mal diseo de clases puede llevar a programas OO de peor calidad y de ms alto costo que el programa equivalente no OO [16]. Una gran ventaja de un lenguaje OO, son las bibliotecas de clases que se pueden construir para la aplicacin [12]. Una biblioteca de clases cumple el mismo objetivo de una biblioteca de procedimientos en una lenguaje como C. Sin embargo: Una biblioteca de clases es mucho ms fcil de usar que una biblioteca de procedimientos, incluso para programadores sin experiencia en orientacin a objetos. Esto se debe a que las clases ofrecen mecanismos de abstraccin ms ecaces que los procedimientos.

5.1.1.

Bibliotecas de Clases Estndares de Java

Toda implementacin de Java debe tener las siguientes bibliotecas de clases: Manejo de archivos. Comunicacin de datos.

82

CAPTULO 5. JAVA

Acceso a la red Internet.. Acceso a bases de datos. Interfaces grcas. La interfaz de programacin de estas clases es estndar, esto quiere decir que en todas ellas las operaciones se invocan con el mismo nombre y los mismos argumentos.

5.1.2.

Java es Multiplataforma

Los programas en Java pueden ejecutarse en cualquiera de las siguientes plataformas, sin necesidad de hacer cambios: Windows/95 y /NT. Power/Mac. Unix (Solaris, Silicon Graphics, ...). La compatibilidad es total: A nivel de fuentes: el lenguaje es exactamente el mismo en todas las plataformas. A nivel de bibliotecas: en todas las plataformas estn presentes las mismas bibliotecas estndares. A nivel del cdigo compilado: el cdigo intermedio que genera el compilador es el mismo para todas las plataformas. Lo que cambia es el intrprete del cdigo intermedio, la MVJ (Mquina Virtual Java). Mquina Virtual Java Es un programa (software) que maneja la interaccin entre las aplicaciones Java y el Sistema operativo y hardware subyacentes. Este programa interpreta los bytecodes generados por el compilador de Java durante la ejecucin de un programa Java.

5.1. INTRODUCCIN AL LENGUAJE

83

Figura 5.2: Proceso Compilacin y Ejecucin El proceso de compilacin y ejecucin se pueden observar en la gura 5.2 de la pgina 83.

5.1.3.

Caractersticas del Lenguaje

Robustez Los siguientes errores no se pueden cometer en Java: Java siempre chequea los ndices al acceder a un arreglo. Java realiza chequeo de tipos durante la compilacin (al igual que C). En una asignacin entre punteros el compilador verica que los tipos sean compatibles. Java realiza chequeo de tipos durante la ejecucin (C y C++ no lo hacen). Cuando un programa usa un cast para acceder a un objeto como si fuese de un tipo especco, se verica durante la ejecucin que el objeto en cuestin sea compatible con el cast que se le aplica. Si el objeto no es compatible, entonces se lanza una excepcin informando al programador la lnea en donde est el error. Java posee un recolector de basuras que administra automticamente la memoria. La MVJ lo ejecuta para limpiar o reasignar memoria, se lo denomina Garbage Collector.

84

CAPTULO 5. JAVA

Flexibilidad Java combina exibilidad, robustez y legibilidad gracias a una mezcla de chequeo de tipos durante la compilacin y durante la ejecucin. En Java se pueden tener punteros a objetos de un tipo especco y tambin se pueden tener punteros a objetos de cualquier tipo. Estos punteros se pueden convertir a punteros de un tipo especco aplicando un cast. El programador usa entonces punteros de tipo especco en la mayora de los casos con el n de ganar legibilidad y en unos pocos casos usa punteros a tipos desconocidos cuando necesita tener exibilidad. Administracin Automtica de la Memoria En Java los programadores no necesitan preocuparse de liberar un trozo de memoria cuando ya no lo necesitan. Es el garbage collector el que determina cuando se puede liberar la memoria ocupada por un objeto. Un recolector de basuras es un gran aporte a la productividad. Se ha estudiado en casos concretos que los programadores han dedicado un 40 % del tiempo de desarrollo a determinar en qu momento se puede liberar un trozo de memoria. Adems este porcentaje de tiempo aumenta a medida que aumenta la complejidad del software en desarrollo. Es relativamente sencillo liberar correctamente la memoria en un programa de 1000 lneas. Sin embargo, es difcil hacerlo en un programa de 10000 lneas. Y se puede postular que es imposible liberar correctamente la memoria en un programa de 100000 lneas.

5.2.

Estructura de un Programa Java

En el siguiente ejemplo se presenta la estructura general de un programa realizado en cualquier lenguaje orientado a objetos u OOP (Object Oriented Programming), y en particular en el lenguaje Java:
import java.awt.*; import java.lang.String; import java.lang.Integer;

5.3. CONCEPTOS BSICOS

85

import java.awt.event.WindowEvent; import java.util.*; import java.awt.TextField; public class Simu extends Frame implements ActionListener, ItemListener{ MenuBar barra; m1 =new Menu(Archivo); barra.add(m1); m2 =new Menu(Ver); barra.add(m2); .... public static void main(String args [ ]){ Simu menus = new Simu(); menus.setTitle(Simulacin de Redes); menus.setVisible(true); } }

Aparece una clase que contiene el programa principal Simu (aquel que contiene la funcin main()) y algunas clases de usuario (las especcas de la aplicacin que se est desarrollando) que son utilizadas por el programa principal. La aplicacin se ejecuta por medio del nombre de la clase que contiene la funcin main(). Las clases de Java se agrupan en packages, que son libreras de clases. Si las clases no se denen como pertenecientes a un package, se utiliza un package por defecto (default) que es el directorio activo.

5.3.
5.3.1.

Conceptos Bsicos
Clases

Una clase es una plantilla desde la que se pueden crear objetos. La denicin de una clase incluye especicaciones formales para la clase y cualquier dato y mtodos incluidos en ella. La programacin orientada a objetos se basa

86

CAPTULO 5. JAVA

en la programacin de clases [2]. Un programa se construye a partir de un conjunto de clases. Una vez denida e implementada una clase, es posible declarar elementos de esta clase. Los elementos declarados de una clase se denominan objetos de la clase. De una nica clase se pueden declarar o crear numerosos objetos. La clase es lo genrico: es el patrn o modelo para crear objetos. Cada objeto tiene sus propias copias de las variables miembro, con sus propios valores, en general distintos de los dems objetos de la clase. Ejemplo:

public abstract class FuncionActivacion implements Cloneable, Serializable{ /*constructor sin argumentos que permite la herencia */ public FuncionActivacion () { } }

5.3.2.

Herencia

La herencia es uno de los aspectos de la programacin orientada a objetos que se ha denido formalmente. Utilizando la herencia, se puede crear una nueva clase a partir de otra, y la nueva heredar todos los mtodos y miembros de datos de la primera. La clase nueva se llama subclase y la clase original, clase base o superclase. La idea es aadir lo que se quiera a la nueva clase para darle ms funcionalidad que a la clase base. La herencia es un tema importante en Java, ya que se puede usar la gran librera de clases disponible, derivando de ellas nuestras clases propias. En Java, a diferencia de otros lenguajes orientados a objetos, una clase slo puede derivar de una nica clase, con lo cual no es posible realizar herencia mltiple en base a clases. Sin embargo es posible simular la herencia mltiple en base a las interfaces.

5.3. CONCEPTOS BSICOS

87

5.3.3.

Interfaces

Una interfaz es una clase abstracta que dene mtodos abstractos y constantes, pero no implementa los mtodos. La clase que implemeta una interfaz hereda los mtodos y debe implementarlos, es decir se forma un contrato entre la Interfaz y la clase que implementa la Interfaz. Una clase puede implementar ms de una interface y una interface puede ser implementada por clases que no se encuentran relacionadas.

5.3.4.

Package

Un package es una agrupacin de clases. Existen una serie de packages incluidos en el lenguaje. Adems el programador puede crear sus propios packages. Todas las clases que formen parte de un package deben estar en el mismo directorio. Los packages se utilizan con las siguientes nalidades: 1. Para agrupar clases relacionadas. 2. Para evitar conictos de nombres. En caso de conicto de nombres entre clases importadas, el compilador obliga a cualicar en el cdigo los nombres de dichas clases con el nombre del package. 3. Para ayudar en el control de la accesibilidad de clases y miembros. Por las razones citadas, durante la etapa de Diseo del Software desarrollado, se ha decido crear dos paquetes, calculos e interface, utilizando la sentencia package.

package myprojects.simu; import myprojects.calculos.*; import myprojects.interfase.*;

88

CAPTULO 5. JAVA

5.4.

Variables de Java

Una variable en Java es un identicador que representa una palabra de memoria que contiene informacin. El tipo de informacin almacenado en una variable slo puede ser del tipo con que se declar esa variable. Los diferentes tipos tienen que ver con el formato de los datos que se almacenan en ella, as como con la memoria que es necesaria para gestionar ese dato. Hay dos tipos principales de variables: Variables de tipos primitivos: Estn denidas mediante un valor nico y almacenan directamente ese valor siempre que pertenezca al rango de ese tipo. Por ejemplo una variable int almacena un valor entero como 1, 2, 0, -1, etc. Variables referencia: Las variables referencia son referencias o nombres de una informacin ms compleja: arrays u objetos de una determinada clase. Una referencia a un objeto es la direccin de un rea en memoria destinada a representar ese objeto. El rea de memoria se solicita con el operador new. Una variable de referencia tambin puede ser descripta como una referencia a una clase. Por ejemplo si se dene: Estudiante e1. e1 es una referencia a una instancia de Estudiante. Se puede decir que dentro de un programa las variables pueden ser: Variables miembro de una clase: Se denen en una clase, fuera de cualquier mtodo; pueden ser tipos primitivos o referencias. Son tambin llamadas atributos. Variables locales: Se denen dentro de un mtodo o ms en general dentro de cualquier bloque entre llaves {}. Se crean en el interior del bloque y se destruyen al nalizar dicho bloque. Pueden ser tambin tipos primitivos o referencias. En la Tabla 5.1 de la pgina 89 se muestran las grandes categoras de tipos para las variables en Java: En la Tabla 5.2 de la pgina 89 se indica para cada tipo primitivo el nmero de bits que se emplea en su representacin y el rango de valores que se puede almacenar en las variables de estos tipos.

5.4. VARIABLES DE JAVA

89

Tipos Primitivos int, short, byte, long char, boolean oat, double

Referencias a Objetos Strings Arreglos otros objetos

Cuadro 5.1: Categoras de Variables.

Tipo int short byte long boolean char oat double

Bits 32 16 8 64 1 16 32 64

Rango 231 ..231 1 215 .,215 1 27 .,27 1 263 .,263 1 n/a n/a IEEE IEEE

Ejemplos 0,1,5,-120,... 0,1,5,-120,... 0,1,5,-120,... 0,1,5,-120,... false, true a,A,0,*,... 1.2 1.2

Cuadro 5.2: Tipos Primitivos de Datos

90

CAPTULO 5. JAVA

5.4.1.

Datos de Objetos o Instancia

Son datos propios de cada instancia (objeto) de una clase determinada. Cada objeto tiene una copia de sus datos. Estos pueden ser variables, mtodos. Se inicializan con el valor por defecto dependiendo del tipo de dato de la variable. Cada tipo de dato tiene asociado un valor por defecto de inicializacin:

Integrales (byte, short, int, long): Se inicializan en 0. Flotantes (oat, double): Se inicializan en 0,0. Boolean: se inicializan en false. Char: se inicializan en /u0000 en formato UNICODE.

5.4.2.

Datos de Clase

Son datos generales o globales a la ejecucin de un aplicacin. Representan datos que son compartidos por todas las instancias de una clase y son cargados en memoria antes de que una instancia de la clase sea creada. Es decir antes de que se instancien nuevos objetos de la clase. Se declaran con la palabra reservada static. Por ejemplo una variable de clase sera:

public static String mensaje.

Y un ejemplo de la declaracin de un mtodo de clase:

public static void leerURL().

5.5. OPERADORES DEL LENGUAJE JAVA

91

5.5.
5.5.1.

Operadores del Lenguaje Java


Operadores Aritmticos

Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritmticas habituales: suma (+), resta (-), multiplicacin (*), divisin (/) y resto de la divisin ( %).

5.5.2.

Operadores de Asignacin

Los operadores de asignacin permiten asignar un valor determinado a una variable. El operador de asignacin por excelencia es el operador igual (=). La forma general de las sentencias de asignacin con este operador es:
variable = expresin;

Java dispone de otros operadores de asignacin. Se trata de versiones abreviadas del operador (=) que realizan operaciones acumulativas sobre una variable. La siguiente Tabla 5.3 de la pg. 91, muestra estos operadores y su equivalencia con el uso del operador igual (=). Operador += -= =* =/ %= Utilizacin op1 + = op2 op1 - = op2 op1 * = op2 op1 / = op2 op1 % = op2 ExpresinEquivalente op1 = op1 + op2 op1 = op1 - op2 op1 = op1 * op2 op1 = op1 / op2 op1 = op1 % op2

Cuadro 5.3: Operadores de asignacin.

5.5.3.

Operadores Unarios

Los operadores unarios sirven para mantener o cambiar el signo de una variable, constante o expresin numrica. Ellos son el ms (+) y menos (-). Su

92

CAPTULO 5. JAVA

uso en Java es el estndar de estos operadores.

5.5.4.

Operador Instanceof

El operador Instanceof permite saber si un objeto es una instancia o no de una clase determinada y se utiliza de la siguiente manera:
objectName instanceof className.

Devuelve true o false segn el objeto pertenezca o no a la clase.

5.5.5.

Operador Condicional

Este operador permite realizar bifurcaciones sencillas, su forma general es la siguiente:


boolean expresion? res1: res2

donde se evala la expresion booleana y si es true devuelve res1, si es false devuelve res2. Es el nico operador ternario de Java.

5.5.6.

Operadores Incrementales

Java dispone del operador incremento (++) y decremento (). El operador (++) incrementa en una unidad la variable a la que se aplica, mientras que () la reduce en una unidad. Se pueden utilizar de dos formas: Precediendo a la variable de la forma ++i. En este caso primero se incrementa la variable y luego se utiliza (ya incrementada) en la expresin en la que aparece. Despus de la variable de la forma i++. En este caso primero se utiliza la variable en la expresin (con el valor anterior) y luego se incrementa. En muchos casos estos operadores se utilizan para incrementar una variable fuera de una expresin. En estos casos ambos operadores son equivalentes. Si

5.5. OPERADORES DEL LENGUAJE JAVA

93

se utilizan en una expresin ms complicada, el resultado de utilizar estos operadores en una u otra de sus formas ser diferente.

5.5.7.

Operadores Relacionales

Los operadores relacionales sirven para realizar comparaciones de igualdad, desigualdad y relacin de menor o mayor. El resultado de estos operadores es siempre un valor boolean (true o false) segn se cumpla o no la relacin considerada. La siguiente Tabla 5.4 de la pg. 93 muestra los operadores relacionales de Java. Operador > >= < <= == != Utilizacin op1 > op2 op1 >= op2 op1 < op2 op1 <= op2 op1 == op2 op1 != op2 El resultado es true si op1 es mayor que op2 si op1 es mayor o igual que op2 si op1 es menor que op 2 si op1 es menor o igual que op2 si op1 y op2 son iguales sio p1 y op2 son diferentes

Cuadro 5.4: Operadores relacionales.

5.5.8.

Operadores de Concatenacin de Caracteres

El operador ms (+) tambin se utiliza para concatenar cadenas de caracteres. Por ejemplo, para concatenar cadenas puede utilizarse la sentencia:
String msj = Datos ingresados correctamente; System.out.println(Mensaje: + msj);

en donde la leyenda que aparecer en la consola sera: Mensaje: Datos ingresados correctamente.

94

CAPTULO 5. JAVA

5.6.

Estructuras de Programacin

Las estructuras de programacin o estructuras de control permiten tomar decisiones y realizar un proceso repetidas veces. Son las denominadas bifurcaciones y bucles. En la mayora de los lenguajes de programacin, este tipo de estructuras son comunes en cuanto a concepto, aunque su sintaxis vara de un lenguaje a otro. La sintaxis de Java coincide prcticamente con la utilizada en C/C++, lo que hace que para un programador de C/C++ no suponga ninguna dicultad adicional.

5.6.1.

Sentencias o Expresiones

Una expresin es un conjunto variables unidas por operadores. Son rdenes que se le dan al computador para que realice una tarea determinada. Una sentencia es una expresin que acaba en punto y coma (;). Se permite incluir varias sentencias en una lnea, aunque lo habitual es utilizar una lnea para cada sentencia. A continuacin se muestra un ejemplo de una lnea compuesta de tres sentencias:
i = 0; j = 5; x = i + j;

donde lo habitual sera:


i = 0; j = 5; x = i + j;

5.6.2.

Comentarios

Existen dos formas diferentes de introducir comentarios entre el cdigo de Java (en realidad son tres, como pronto se ver). Son similares a la forma de realizar comentarios en el lenguaje C/C++. Los comentarios son tremendamente tiles para poder entender el cdigo utilizado, facilitando de ese modo futuras revisiones y correcciones. Adems permite que cualquier persona distinta al programador original pueda comprender el cdigo escrito de una forma ms

5.6. ESTRUCTURAS DE PROGRAMACIN

95

rpida. Se recomienda acostumbrarse a comentar el cdigo desarrollado. De esta forma se simplican tambin las tareas de estudio y revisin posteriores. Java interpreta que todo lo que aparece a la derecha de dos barras // en una lnea cualquiera del cdigo es un comentario del programador y no lo tiene en cuenta. El comentario puede empezar al comienzo de la lnea o a continuacin de una instruccin que debe ser ejecutada. La segunda forma de incluir comentarios consiste en escribir el texto entre los smbolos /* */ . Este segundo mtodo es vlido para comentar ms de una lnea de cdigo. Por ejemplo:
// Esta lnea es un comentario de una sola lnea int a=1; // Comentario a la derecha de una sentencia /* Este tipo de comentarios es para comentar ms de una sla lnea, slo requiere modicar el comienzo y el nal. */

En Java existe adems una forma especial de introducir los comentarios (utilizando /***/ ms algunos caracteres especiales) que permite generar automticamente la documentacin sobre las clases y packages desarrollados por el programador. Una vez introducidos los comentarios, el programa javadoc.exe (incluido en el JDK) genera de forma automtica la informacin de forma similar a la presentada en la propia documentacin del JDK. La sintaxis de estos comentarios y la forma de utilizar el programa javadoc.exe se puede encontrar en la informacin que viene con el JDK.

5.6.3.

Bifurcaciones

Las bifurcaciones permiten ejecutar una de entre varias acciones en funcin del valor de una expresin lgica o relacional. Se tratan de estructuras muy importantes ya que son las encargadas de controlar el ujo de ejecucin de un programa. Se exponen dos variantes del de tipo if. Bifurcacin if Esta estructura permite ejecutar un conjunto de sentencias en funcin del valor que tenga la expresin de comparacin. Ejemplo: se ejecuta si la expresin de comparacin (error < errorMinimo) tiene valor true:

96

CAPTULO 5. JAVA

numero = 58; if (math.abs(numero) < 10){ System.out.println(Nmero de 1 solo dgito); } /* n del if */

Las llaves {} sirven para agrupar en un bloque las sentencias que se han de ejecutar, y no son necesarias si slo hay una sentencia dentro del if. Bifurcacin if else Anloga a la anterior, de la cual es una ampliacin. Las sentencias incluidas en el else se ejecutan en el caso de no cumplirse la expresin de comparacin (false), Ejemplo:

numero = 58; if (Math.abs(numero) < 10){ System.out.println(Nmero de 1 solo dgito); }else{ System.out.println(Nmero de 2 dgitos); }// n del else

5.6.4.

Bucles

Un bucle se utiliza para realizar un proceso repetidas veces. Se denomina tambin lazo o loop. El cdigo incluido entre las llaves {} (opcionales si el proceso repetitivo consta de una sola lnea), se ejecutar mientras se cumplan unas determinadas condiciones. Hay que prestar especial atencin a los bucles innitos, hecho que ocurre cuando la condicin de nalizar el bucle (booleanExpression) no se llega a cumplir nunca. Se trata de un fallo muy tpico, habitual sobre todo entre programadores poco experimentados.

5.6. ESTRUCTURAS DE PROGRAMACIN

97

Bucle while En el siguiente ejemplo se muestra que se ejecutar la sentencia n++ mientras la expresin (capas.charAt(n)!=, && capas.charAt(n)!=-1) sea verdadera.

for (int j=0; j < numeroCapas; j++){ int n = principio; try { while (capas.charAt(n) != , && capas.charAt(n) != -1){ n++; } } }

Bucle for A continuacin se podr apreciar la utilizacin del bucle for:

/* calcular el nuevo vector de diseo */ for (int i = 0; i < vectorDis.length; i++){ vectorDis[i] = vectorDis[i] + learningRate * S[i]; }

La sentencia int i = 0 (inicializacin) se ejecuta al comienzo del for, e i++ (incremento) despus de vectorDis[i] = vectorDis[i] + learningRate * S[i] (sentencia). La expresin booleana (vectorDis.length) se evala al comienzo de cada iteracin; el bucle termina cuando la expresin de comparacin toma el valor false.

98

CAPTULO 5. JAVA

Bucle do while Es similar al bucle while pero con la particularidad de que el control est al nal del bucle (lo que hace que el bucle se ejecute al menos una vez, independientemente de que la condicin se cumpla o no). Una vez ejecutadas las sentencias, se evala la condicin: si resulta true se vuelven a ejecutar las sentencias incluidas en el bucle, mientras que si la condicin se evala a false naliza el bucle.

do{ /* calcular el gradiente del vector jar el vector de diseo */ problema.joVector(vectorDis); /* incrementar el contador de iteraciones*/ step++; }while (error > errorDeseado && step < iteracionesMaximas); /* ... hasta que el error sea menor o igual que el deseado o */ /* se alcance el nmero de iteraciones pasado como argumento */ problema.joVector(vectorDis);

Bloque try{...} catch{...} nally{...} Java incorpora en el propio lenguaje la gestin de errores. El mejor momento para detectar los errores es durante la compilacin. Sin embargo prcticamente slo los errores de sintaxis son detectados en esta operacin. El resto de los problemas surgen durante la ejecucin de los programas. En el lenguaje Java, una Exception es un cierto tipo de error o una condicin anormal que se ha producido durante la ejecucin de un programa. Algunas excepciones son fatales y provocan que se deba nalizar la ejecucin del programa. En este caso conviene terminar ordenadamente y dar un mensaje explicando el tipo de error que se ha producido. Otras excepciones, como por ejemplo no encontrar un chero en el que hay que leer o escribir algo, pueden

5.7. SERVLETS

99

ser recuperables. En este caso el programa debe dar al usuario la oportunidad de corregir el error (dando por ejemplo un nuevo path del chero no encontrado). Los errores se representan mediante clases derivadas de la clase Throwable, pero los que tiene que chequear un programador derivan de Exception (java.lang.Exception que a su vez deriva de Throwable). Existen algunos tipos de excepciones que Java obliga a tener en cuenta. Esto se hace mediante el uso de bloques try, catch y nally. El cdigo dentro del bloque try est vigilado: Si se produce una situacin anormal y se lanza como consecuencia una excepcin, el control pasa al bloque catch que se hace cargo de la situacin y decide lo que hay que hacer. Se pueden incluir tantos bloques catch como se desee, cada uno de los cuales tratar un tipo de excepcin. Finalmente, si est presente, se ejecuta el bloque nally, que es opcional, pero que en caso de existir se ejecuta siempre, sea cual sea el tipo de error. En el caso en que el cdigo de un mtodo pueda generar una Exception y no se desee incluir en dicho mtodo la gestin del error (es decir los bucles try/catch correspondientes), es necesario que el mtodo pase la Exception al mtodo desde el que ha sido llamado. Esto se consigue mediante la adicin de la palabra throws seguida del nombre de la Exception concreta, despus de la lista de argumentos del mtodo. A su vez el mtodo superior deber incluir los bloques try/catch o volver a pasar la Exception. De esta forma se puede ir pasando la Exception de un mtodo a otro hasta llegar al ltimo mtodo del programa, el mtodo main().

5.7.

Servlets

Los servlets son programas de Java que construyen respuestas dinmicas para el cliente, tal como pginas Web. Los servlets reciben y responden a las demandas de los clientes Web, normalmente por HTTP. Adems los servlets son escalables, dando soporte para una multi-aplicacin de conguracin del servidor. [10] Permiten utilizar datos cach, acceso a informacin de base de datos, y compartir datos con otros servlets, archivos JSP y (en algunos ambientes) con los bean empresariales.

100

CAPTULO 5. JAVA

Poseen algunas ventajas respecto a los tradicionales programas CGI: Independencia de la plataforma. Esto proporciona un menor esfuerzo de codicacin con respecto a soluciones dependientes del servidor web y de la plataforma. Ejecucin en paralelo de mltiples peticiones por una sola instancia del servlet.Tradicionalmente en los programas CGI se ejecuta un proceso distinto para cada peticin, lo que conlleva una gradual degradacin del rendimiento y una necesidad de recursos muy elevada. En un servlet todas las peticiones se atienden en el mismo proceso por distintos hilos y una vez que se ha cargado el servlet este permanece en memoria hasta que se reinicie el servidor.

5.7.1.

Estructura de un Servlet

El API Servlet consiste bsicamente en dos paquetes: javax.servlet javax.servlet.http Todas las clases e interfaces que hay que utilizar en la programacin de servlets estn en estos dos paquetes. Vision General del API de Servlet La relacin entre las clases e interfaces de Java, muy determinada por el concepto de herencia, tal como puede verse en la gura 5.3 de la pgina 101, se representan con letra normal las clases y las interfaces con cursiva. La clase GenericServlet es una clase abstracta puesto que su mtodo service() es abstracto. Esta implementa dos interfaces, de las cuales la ms importante es la interface Servlet. La interface Servlet declara mtodos ms importantes de cara a la vida de un servlet: init() que se ejecuta slo al arrancar el servlet; destroy() que se

5.7. SERVLETS

101

Figura 5.3: Jerarqua y Mtodos de las Principales Clases para Crear Servlets.

102

CAPTULO 5. JAVA

ejecuta cuando va a ser destruido y service() que se ejecutar cada vez que el servlet debe atender una solicitud de servicio. Cualquier clase que derive de GenericServlet deber denir el mtodo service(). Este mtodo tiene en su denicin dos argumentos correspondientes a las interfaces ServletRequest y ServletResponse. La primera referencia a un objeto que describe por completo la solicitud de servicio que se le enva al servlet. Si la solicitud de servicio viene de un formulairo HTML, a travs de ese objeto se puede acceder a los nombres de los campos y a los valores introducidos por el usuario. El segundo argumento es un objeto con la referencia a la interface ServletResponse que constituye el camino mediante el cual el mtodo service() se conecta de nuevo con el cliente y le comunica el resultado de su solicitud. La clase HttpServlet ya no es abstracta y dispone de una implementacin o denicin del mtodo service(). Dicha implementacin detecta el tipo de servicio o mtodo HTTP que le ha sido solicitado desde el browser y llama al mtodo adecuado de esa misma clase (doPost(), doGet(), etc.), tambin aparecen otras interfaces como ser: La interfaz ServletCong dene mtodos que permiten pasar al servlet informacin sobre sus parametros de inicializacin. La interface ServletContext permite a los servlets acceder a informacin sobre el entorno en que se estan ejecutando. Principios de Codicacin de Servlet Para crear un servlet de HTTP, es necesario extender las clases: javax.servlet.HttpServlet y sustituir cualquier mtodo que se desee implementar en el servlet. Por ejemplo, un servlet reemplaza el mtodo doGet para manejar las demandas Get de los clientes. El HttpServletRequest representa los requerimientos de un cliente. Este objeto da acceso al servlet, a la informacin incluida como datos en formato HTML, encabezados HTTP, etc. El HttpServletResponse representa la respuesta del servlet. El servlet usa este objeto para devolverle datos al cliente como errores de HTTP (200, 404, y otros), encabezados de respuesta (Content-Type, Set-

5.7. SERVLETS

103

Cookie, y otros), y datos de salida para escribir cadenas de salida de respuesta o salida impresa. El principio de un servlet podra parecerse al siguiente ejemplo:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletPrueba extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

Ciclo de Vida del Servlet Un Servlet de Java tiene un ciclo de vida que determina como el servlet es cargado e inicializado, como recibe y responde a las peticiones y como sale fuera de servicio. Las clases javax.servlet.http.HttpServlet denen mtodos tales como: Iniciar un servlet. Solicitar servicios. Quitar un servlet del servidor. stos son conocidos como mtodos del ciclo de vida y son llamados en la siguiente secuencia: Se construye el servlet. Se inicializa con el mtodo init(). Se manejan llamadas de los clientes al mtodo de servicio. Se saca el servlet de servicio. Se destruye con el mtodo destruir.

104

CAPTULO 5. JAVA

Se naliza el servlet y la basura es recolectada. El ciclo de vida de un Servlet se puede apreciar en la gura 5.4 de la pgina 104.

Figura 5.4: Ciclo de Vida de un Servlet.

5.7.2.

Instanciacin e Inicializacin

El motor del servlet (la funcin del Servidor de Aplicaciones que procesa servlets, archivos JSP, y otros tipos de server-side incluyendo codicacin) crea

5.7. SERVLETS

105

una instancia del servlet. El motor del servlet crea el objeto de conguracin del servlet y lo usa para pasar los parmetros de inicializacin del servlet al mtodo init(). La inicializacin de los parmetros persiste hasta que el servlet se destruye y es aplicada a todas las invocaciones de ese servlet hasta destruirse. Si la inicializacin tiene xito, el servlet est disponible para el servicio. Si la inicializacin falla, el motor del servlet descarga el servlet. El administrador puede inhabilitar una aplicacin y el servlet para el servicio. En tales casos, la aplicacin y el servlet permanecen inhabilitados hasta que el administrador los habilite.

5.7.3.

Servicio de Demanda

Una demanda del cliente llega al servidor de aplicaciones. El motor del servlet crea un objeto demanda y un objeto respuesta. El motor del servlet invoca al mtodo de servicio del servlet, procesa el requerimiento y usa mtodos del objeto respuesta para crear la respuesta para el cliente. El mtodo de servicio recibe informacin sobre el requerimiento del objeto demanda, procesa el requerimiento, y usa los mtodos del objeto respuesta para crear la contestacin para el cliente. El mtodo de servicio puede invocar otros mtodos para procesar el requerimiento, tales como doGet (), doPost (), o mtodos del usuario.

5.7.4.

Terminacin

El motor del servlet invoca al mtodo destroy () del servlet cuando apropia y descarga el servlet. La Mquina Virtual de Java realiza la recoleccin de basura despus de la destruccin del servlet. Cuando el contenedor Web ya no necesita que el servlet o una nueva instancia del servlet se recarguen, invoca al mtodo destroy() del servlet. El contenedor Web tambin puede llamar al mtodo destroy() si el motor necesita conservar recursos o una llamada pendiente a un mtodo service() del servlet excediendo el timeout. La Mquina Virtual de Java realiza recoleccin de basura despus del destroy.

106

CAPTULO 5. JAVA

5.7.5.

Java Server Faces

Java Server Pages (JSP) combinan HTML con fragmentos de Java para producir pginas web dinmicas. Cada pgina es automticamente compilada a servlet por el motor de JSP , en primer lugar es recogida y a continuacin ejecutada. JSP tiene gran variedad de formas para comunicarse con las clases de Java, servlets, applets y el servidor web; por esto se puede aplicar una funcionalidad a nuestra web a base de componentes. Una pgina JSP es un archivo de texto simple que consiste en contenido HTML o XML con elementos JSP. Cuando un cliente pide una pgina JSP del sitio web y no se ha ejecutado antes, la pgina es inicialmente pasada al motor de JSP, el cual compila la pgina convirtindola en Servlet, la ejecuta y devuelve el contenido de los resultados al cliente. El cdigo fuente de una pgina JSP incluye: Directivas: Dan informacin global de la pgina, por ejemplo, importacin de estamentos, pgina que majena los errores o cuando la pgina forma parte de una sesin. Declaraciones: Sirven para declarar mtodos y variables. Scripts de JSP: Es el cdigo Java embebido en la pgina. Expresiones de JSP: Formatea las expresiones como cadenas para incluirlas en la pgina de salida. Directivas Una directiva de JSP es un estamento que proporciona la informacin del motor de JSP para la pgina que la pide. Su sintaxis general es < %@ directiva {atributo =valor} %> dnde la directiva debe tener un nmero de atributos. Algunos ejemplos son: Page: Informacin para la pgina. Include: Incluye archivos completos palabra por palabra. Taglib: La direccin de la librera de tags que se usar en la pgina.

5.7. SERVLETS

107

La directiva Page posee varios atributos: language=java: Comunica al servidor el lenguaje que va a ser utilizado en el archivo. Java es el nico posible en esta especicacin. extends=package.class: La variale extends, dene la clase padre del servlet generado. Normalmente no es necesario utilizar otras que no sean las clases base del proveedor. import=package.*, package.class: Sirve para especicar los paquetes y clases que se quieran utilizar. session=true|false: Por defecto session vale true, manteniendo los datos de las sesin para la pgina. isThreadSafe=true|false: Por defecto vale true, le hace seales al motor de JSP para que mltiples pedidos del cliente puedan ser tomados como uno. info=text: Informacin en la pgina a la que puede accederse a travs del mtodo Servlet.getServletInfo(). errorPage=pagina_error: Pgina que manejar las excepciones de errores. Declaraciones Una declaracin de JSP, puede denirse como una denicin de variables y mtodos a nivel de clase que son usadas en la pgina. Un bloque de declaraciones tpico sera < %! declaracin %> Un ejemplo de declaracin de script sera el siguiente:
<HTML> <HEAD> <TITLE>Pgina simple JSP</TITLE> </HEAD> <BODY> < %! String strCadena = x;

108

CAPTULO 5. JAVA

int intContador = 0; %> </BODY> </HTML>

Scripts de JSP Los Scripts son bloques de cdigo Java residentes entre los tags < % y %>. Estos bloques de cdigo estarn dentro del servlet generado includos en el mtodo _jspService(). Los Scripts pueden acceder a cualquier variable o Bean que haya sido declarado. Tambin hay algunos objetos implcitos disponibles para los Scripts desde entorno del Servlet. Algunos de ellos pueden verse a continuacin: request: Es la peticin del cliente. Es normalmente una subclase de la clase HttpServletRequest. response: Es la pgina JSP de respuesta y es una subclase de HttpServletResponse. Los atributos de la pgina y los objetos implcitos necesitan ser accesibles a travs de API, para permitir al motor de JSP compilar la pgina. Pero cada servidor tiene implementaciones especcas de cada uno de esos atributos y objetos. pageContext: Esta clase PageContext es inicializada con los objetos response y request y algunos atributos de la directiva de la pgina (erropage, session, buer and autoush) y facilita los otros objetos implcitos para la pgina de peticin. session: El objeto de sesin HTTP asociado a la peticin. application: Lo que devuelve el servlet cuando se llama a getServletCong().getContext(). page: Es la forma que tiene la pgina para referirse a si misma. Se usa como alternativa al objeto this. El siguiente fragmento de cdigo muestra como obtener el valor de un parmetro mediante el objeto request, y como pasarlo a una cadena para mostrarlo en pantalla.

5.7. SERVLETS

109

<% String strNombre = request.getParameter(nombre); out.println(strNombre); %>

Expresiones JSP Las expresiones son una magnca herramienta para insertar cdigo embebido dentro de la pgina HTML. Cualquier cosa que est entre los tags < %= y %> ser evaluado, convertido a cadena y posteriormente mostrado en pantalla. La conversin desde el tipo inicial a String es manejada autmaticamente. Es importante remarcar que la expresin no termina en punto y coma (;) . Esto es as porque el motor de JSP, pondr la expresin automticamente entre out.println(). Las expresiones JSP permiten parametrizar las pginas HTML (es parecido a cuando se parametriza una consulta SQL pero dieren la forma de los valores). Una y otra vez , en el cdigo de la pgina HTML, ser vern bucles o condiciones usando cdigo Java, simplemente empezando y acabando las condiciones o bucles entre los tags < % y %>. Un ejemplo sera:
< % for (int i=0;i<5;i++) { %>

<BR>El valor del contador es < %=i %>

< % } %>

Modelos de Acceso JSP Se puede acceder a los archivos JSP de dos maneras: El browser enva un requerimiento para los archivos JSP.

110

CAPTULO 5. JAVA

Figura 5.5: Requerimiento de un archivo JSP.

Figura 5.6: Requerimiento de un Servlet Los archivos JSP acceden a los beans u otros componentes que generan contenido dinmico para ser enviado al browser como se muestra en la gura 5.5 de la pgina 110. Cuando el servidor Web recibe un requerimiento para un archivo JSP, el servidor enva ese requerimiento al servidor de aplicaciones. El servidor de aplicaciones analiza el archivo JSP y genera cdigo fuente de Java que se compila y se ejecuta como un servlet. El requerimiento se enva a un servlet que genera contenido dinmico y llama a un archivo JSP para enviar el contenido a un browser, como se muestra en la gura 5.6 de la pgina 110.

5.7. SERVLETS

111

Este modelo de acceso facilita la generacin de contenido separado del despliegue de contenido. El servidor de aplicaciones proporciona un juego de mtodos en el objeto HttpServiceRequest object y el objeto HttpServiceResponse. Estos mtodos permiten una invocacin de servlet para colocar un objeto (normalmente un bean) en un objeto demanda y pasa ese requerimiento a otra pgina (normalmente un archivo JSP) para el despliegue. La pgina invocada recupera el beans del objeto demanda y genera el HTML que recibe el cliente.

5.7.6.

Desarrollando Aplicaciones

Para WebSphere Application Server, las aplicaciones son combinaciones de bloques que trabajan conjuntamente para el logro de una funcin de la lgica comercial. Las aplicaciones Web son grupos de uno o ms servlets, ms el contenido esttico. Aplicaciones Web = servlets + archivos JSP + archivos XML + archivos HTML + grcos. El modelo de programacin de WebSphere Application Server est basado en la plataforma Java de Sun (J2SE). El ambiente J2SE soporta la base para construir redes centrales de aplicaciones empresariales para correr sobre una variedad de sistemas. El software J2SE consiste en los Java SDK Standard Edition y el Java Runtime Environment (JRE ) Standard Edition.

Captulo 6

Java 2 Micro Edition


6.1. Introduccin

Para empezar se puede decir que Java 2 Micro Edition o J2ME es la versin del lenguaje Java que est orientada al desarrollo de aplicaciones para dispositivos pequeos con capacidades restringidas tanto en pantalla grca, como de procesamiento y memoria (telfonos mviles, PDAs, Handhelds, Pagers, etc.). Esta versin de Java fue presentada en 1999 por Sun Microsystems con el propsito de habilitar aplicaciones Java para pequeos dispositivos. En esta presentacin lo que realmente se mostr fue una nueva mquina virtual Java o JVM (Java Virtual Machine) que poda ejecutarse en dispositivos Palm. La tarda aparicin de esta tecnologa puede ser debido a que las necesidades de los usuarios de telefona mvil han cambiado mucho en estos ltimos aos y cada vez demandan ms servicios y prestaciones por parte tanto de los terminales como de las compaas. Adems el uso de esta tecnologa 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 tecnologa del futuro para la industria de los dispositivos mviles. 113

114

CAPTULO 6. JAVA 2 MICRO EDITION

6.1.1.

Comparacin de Versiones

Sun Microsystems, con el objetivo de cubrir las necesidades de todos los usuarios cre distintas versiones de Java de acuerdo a las necesidades de cada uno, por lo cual existe el paquete Java 2 que 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. J2ME(Java Micro Edition) orientada a dispositivos con capacidades restringidas. Algunas de las caractersticas de cada una de las versiones son: 1. Java 2 Platform, Standard Edition (J2SE): Esta edicin de Java es la que en cierta forma recoge la iniciativa original del lenguaje Java. Tiene las siguientes Caractersticas: Inspirado inicialmente en el lenguaje C++, pero con componentes de alto nivel, como soporte nativo de strings y recolector de basura (garbage colector ). Cdigo 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. Abstraccin del sistema operativo subyacente mediante un juego completo de APIs de programacin. Contiene el conjunto bsico de herramientas usadas para desarrollar Java Applets, as cmo las APIs orientadas a la programacin de aplicaciones de usuario nal: Interfaz grca de usuario, multimedia, redes de comunicacin. 2. Java 2 Platform, Enterprise Edition (J2EE): Esta versin est orientada al entorno empresarial. El software empresarial tiene unas caractersticas propias marcadas:

6.1. INTRODUCCIN

115

Est pensado no para ser ejecutado en un equipo, sino para ejecutarse sobre una red de ordenadores de manera distribuida y remota mediante EJBs (Enterprise Java Beans). Esta edicin est orientada especialmente al desarrollo de servicios web, servicios de nombres, persistencia de objetos, XML, autenticacin, APIs para la gestin de transacciones, etc. El cometido de esta especicacin es ampliar la J2SE para dar soporte a los requisitos de las aplicaciones de empresa. 3. Java 2 Platform, Micro Edition (J2ME): Esta versin de Java est enfocada a la aplicacin de la tecnologa Java en dispositivos electrnicos con capacidades computacionales y grcas muy reducidas, tales como telfonos mviles, PDAs o electrodomsticos inteligentes: Esta edicin tiene unos componentes bsicos que la diferencian de las otras versiones, como el uso de una mquina virtual denominada KVM (Kilo Virtual Machine, debido a que requiere slo unos pocos Kilobytes de memoria para funcionar) en vez del uso de la JVM clsica.

Figura 6.1: Arquitectura de la Plataforma Java 2 de Sun La g. 10.1 de la pg. 234 muestra la arquitectura de Java2.

116

CAPTULO 6. JAVA 2 MICRO EDITION

En la actualidad se puede decir que Java no es slo un simple lenguaje de programacin sino un conjunto de tecnologas que engloba a todos los aspectos de la computacin con dos elementos en comn:

El cdigo fuente en lenguaje Java es compilado a cdigo intermedio interpretado por una Java Virtual Machine (JVM ), por lo que el cdigo ya compilado es independiente de la plataforma. Todas las tecnologas comparten un conjunto ms o menos amplio de APIs bsicas del lenguaje, agrupadas principalmente en los paquetes java.lang y java.io.

Debido a que la edicin estndar de APIs de Java ocupa 20 MB aproximadamente y los dispositivos pequeos disponen de una cantidad de memoria mucho ms reducida, J2ME contiene una mnima parte de las APIs de Java. Concretamente, 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 ja forma parte de lo que se denomina conguracin [14]. Otra diferencia con la plataforma J2SE viene dada por el uso de una mquina virtual distinta de la clsica JVM denominada KVM. Esta KVM tiene unas restricciones que hacen que no posea todas las capacidades incluidas en la JVM clsica. J2ME representa una versin simplicada de J2SE. Sun separ estas dos versiones ya que J2ME est pensada para dispositivos con limitaciones de proceso y capacidad grca. Tambin separ J2SE de J2EE porque este ltimo exiga unas caractersticas muy pesadas o especializadas de E/S, trabajo en red, etc. Por tanto, separ ambos productos por razones de eciencia. Hoy, J2EE es un superconjunto de J2SE pues contiene toda la funcionalidad de ste y ms caractersticas, as como J2ME es un subconjunto de J2SE (excepto por el paquete javax.microedition) ya que contiene varias limitaciones con respecto a J2SE. Slo de manera muy simplista se puede considerar a J2ME y J2EE como versiones reducidas y ampliadas de J2SE respectivamente (ver g. 6.2 de la pg. 117): en realidad cada una de las ediciones est enfocada a mbitos de aplicacin muy distintos [14].

6.1. INTRODUCCIN

117

Figura 6.2: Ubicacin de las Tecnologas Java

6.1.2.

Algunas Consideraciones al Desarrollar en J2ME

Algunas consideraciones son las siguientes: 1. Prcticamente los dispositivos mviles y ms an los nuevos telfonos celulares ya poseen capacidad de ejecucin de aplicaciones desarrolladas en J2ME. Existen algunas ventajas y restricciones o desventajas respecto a otras tecnologas. Algunas ventajas en comparacin de J2ME con respecto al lenguaje C son: Multiplataforma: Signica 1 programa - se puede ejecutar en n mviles. Seguridad: El usuario est protegido. Descarga OTA (Over The Air). Desarrollo rpido. Inconveniente: Alejamiento del hardware. No puede accederse a ciertos recursos del telfono si ste no incorpora el API correspondiente. 2. Las aplicaciones mviles que poseen conectividad a Internet pueden utilizar la tecnologa GPRS, en la cual se tarifa al usuario por Kbytes recibidos y enviados, es por esto que es importante minimizar la cantidad de informacin intercambiada. Las relaciones que existen de acuerdo

118

CAPTULO 6. JAVA 2 MICRO EDITION

al tipo de informacin intercambiada y el volumen de la misma son las siguientes: Pgina html - 10-100Kb. Pgina wml 1-10Kb. Informacin pura - 0.1 - 1kb. 3. Cundo interesa desarrollar en J2ME ?: Cuando no hay trco de informacin, por ejemplo: juegos, conversores de unidades. Cuando el trco de informacin puede minimizarse con J2ME . Cuando pueden almacenarse datos localmente en el mvil y slo transferir algunos otros como los resultados [8].

6.2.

Componentes de J2ME

Los componentes que forman parte de la tecnologa J2ME son: Mquina virtual: Existe una serie de mquinas virtuales java con diferentes requisitos, cada una para diferentes tipos de pequeos dispositivos. Conguraciones: Son un conjunto de clases bsicas orientadas a conformar el corazn de las implementaciones para dispositivos de caractersticas especcas: Connected Limited Device Conguration (CLDC) enfocada a dispositivos con restricciones de procesamiento y memoria. Connected Device Conguration (CDC) enfocada a dispositivos con ms recursos [8]. Perles: Son unas bibliotecas Java de clases especcas orientadas a implementar funcionalidades de ms alto nivel para familias especcas de dispositivos.

6.2. COMPONENTES DE J2ME

119

6.2.1.

Mquinas Virtuales J2ME

Una mquina virtual de Java (JVM ) es un programa encargado de interpretar cdigo intermedio (bytecode) de los programas Java precompilados a cdigo mquina ejecutable por la plataforma, efectuar las llamadas pertinentes al sistema operativo subyacente y observar las reglas de seguridad y correccin de cdigo denidas 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 dene varias JVMs de referencia adecuadas al mbito de los dispositivos electrnicos que, en algunos casos, suprimen algunas caractersticas con el n de obtener una implementacin menos exigente. La tecnologa J2ME ha denido dos conguraciones, CDC y CLDC, cada una de ellas con caractersticas propias, en consecuencia para cada tipo de conguracin se deni una mquina virtual distinta. La VM (Virtual Machine) correspondiente a CLDC se denomina KVM y la de la conguracin CDC se denomina CVM. A continuacin se detallan las principales caractersticas de cada una de ellas: KVM Se corresponde con la mquina virtual ms pequea. Su nombre KVM proviene de Kilobyte (que hace referencia a la baja ocupacin de memoria). Se trata de una implementacin de mquina virtual reducida y especialmente orientada a dispositivos con bajas capacidades computacionales y de memoria, como ser los telfonos celulares. La KVM est escrita en el lenguaje de programacin C y posee algunas caractersticas particulares como: Pequea, con una carga de memoria entre los 40Kb y los 80 Kb, dependiendo de la plataforma y las opciones de compilacin. Alta portabilidad. Modulable.

120

CAPTULO 6. JAVA 2 MICRO EDITION

Lo ms completa y rpida posible y sin sacricar caractersticas para las que fue diseada. Sin embargo, existen algunas limitaciones debido a su bajo consumo de memoria respecto la maquina virtual clsica: No hay soporte para tipos en coma otante. Esta limitacin est presente porque los dispositivos carecen del hardware necesario para estas operaciones. No existe soporte para JNI (Java Native Interface) debido a los recursos limitados de memoria. No existen cargadores de clases (class loaders) denidos por el usuario. No se permiten los grupos de hilos o hilos daemon. Si se necesita la utilizacin de grupos de hilos se tendrn que utilizar los objetos coleccin para almacenar cada hilo. No existe la nalizacin de instancias de clases. No existe el mtodo Object.nalize(). 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 mayora de las excepciones. Otro tema en cuestin que se puede encontrar en sta maquina virtual ms pequea es la vericacin de clases. El vericador de clases estndar de Java es demasiado grande para la KVM, De hecho es ms grande que la propia KVM y el consumo de memoria es excesivo, ms de 100Kb para las aplicaciones tpicas. Este vericador de clases es el encargado de rechazar las clases no vlidas en tiempo de ejecucin. Este mecanismo verica los bytecodes de las clases Java realizando las siguientes comprobaciones: Ver que el cdigo no sobrepase los lmites de la pila de la VM. Comprobar que no se utilizan las variables locales antes de ser inicializadas.

6.2. COMPONENTES DE J2ME

121

Comprobar que se respetan los campos, mtodos y los modicadores de control de acceso a clases. Por esta razn los dispositivos que usen la conguracin CLDC y KVM introducen un algoritmo de vericacin de clases en dos pasos. Este proceso puede apreciarse grcamente en la g. 6.3 de la pg. 121.

Figura 6.3: Proceso de Vericacin CVM La CVM (Compact Virtual Machine) ha sido tomada como mquina virtual Java de referencia para la conguracin CDC y soporta las mismas caractersticas que la mquina virtual clsica. Est orientada a dispositivos electrnicos con procesadores de 32 bits de gama alta y en torno a 2 Mb o ms de memoria RAM. Las caractersticas que presenta sta mquina virtual son: 1. Sistema de memoria avanzado.

122

CAPTULO 6. JAVA 2 MICRO EDITION

2. Tiempo de espera bajo para el recolector de basura. 3. Separacin completa de la VM del sistema de memoria. 4. Recolector de basura modularizado. 5. Portabilidad. 6. Rpida sincronizacin. 7. Ejecucin de las clases Java fuera de la memoria de slo lectura (ROM). 8. Soporte nativo de hilos. 9. Baja ocupacin en memoria de las clases. 10. Proporciona soporte e interfaces para servicios en sistemas operativos de tiempo real. 11. Conversin de hilos Java a hilos nativos. 12. Soporte para todas las caractersticas de Java2 v1.3 y libreras de seguridad, referencias dbiles, Interfaz Nativa de Java (JNI ), invocacin remota de mtodos (RMI ), Interfaz de depuracin de la mquina virtual (JVMDI).

6.2.2.

Conguraciones

Una conguracin es el conjunto mnimo de APIs Java que permiten desarrollar aplicaciones para un grupo de dispositivos. Estas APIs describen las caractersticas bsicas, comunes a todos los dispositivos: Caractersticas soportadas del lenguaje de programacin Java. Caractersticas soportadas por la mquina virtual Java. Bibliotecas bsicas de Java y APIs soportadas. Como se ha mencionado con anterioridad, existen dos conguraciones, la que est orientada a dispositivos con limitaciones computacionales y de memoria que se denomina CLDC y la conguracin que se encuentra orientada

6.2. COMPONENTES DE J2ME

123

a dispositivos con menos restricciones en cuanto a capacidad de cmputo y memoria, la cual se denomina CDC . A continuacin se presentan las caractersticas ms relevantes de cada una: Conguracin de dispositivos con conexin, CDC (Conected Device Conguration): La CDC est orientada a dispositivos con cierta capacidad computacional y de memoria. Por ejemplo, decodicadores de televisin digital, televisores con Internet, algunos electrodomsticos y sistemas de navegacin en automviles. CDC usa una mquina virtual Java similar en sus caractersticas a una de J2SE, pero con limitaciones en el apartado grco y de memoria del dispositivo. La CDC est enfocada a dispositivos con las siguientes capacidades: Procesador de 32 bits. 2 Mb o ms de memoria total, incluyendo memoria RAM y ROM. Conectividad a algn tipo de red. Poseer la funcionalidad completa de la Mquina Virtual Java 2. La CDC est basada en J2SE v1.3 e incluye varios paquetes Java de la edicin estndar. Las peculiaridades de la CDC estn contenidas principalmente en el paquete javax.microedition.io, que incluye soporte para comunicaciones http y basadas en datagramas [14]. La tabla 6.1 de la pg. 124 muestra las libreras incluidas en la CDC. Conguracion de dispositivos limitados con conexin, CLDC (Conected Limited Device Conguration): La CLDC est orientada a dispositivos dotados de conexin y con limitaciones en cuanto a capacidad grca, cmputo y memoria. Como por ejemplo telfonos mviles, buscapersonas (Pagers), PDAs, organizadores personales, etc.

124

CAPTULO 6. JAVA 2 MICRO EDITION

Nombre del paquete CDC java.io java.lang java.lang.ref java.lang.reect java.math java.net java.security java.security.cert java.text java.util java.util.jar java.util.zip javax.microedition.io

Descripcin Clases y paquetes estndar de E/S Clases e interfaces de la mquina virtual Clases de referencia Clases e interfaces de reectin Paquete de matemticas Clases e interfaces de red Clases e interfaces de seguridad Clases de certicados de seguridad Paquete de texto Clases de utilidades estndar Clases y utilidades para archivos JAR Clases y utilidades para archivos ZIP y comprimidos Clases e interfaces para conexin genrica CDC

Cuadro 6.1: Libreras de conguracin CDC Las restricciones que contiene la conguracin CLDC vienen dadas por la utilizacin de la mquina virtual o KVM. Los dispositivos que usan CLDC deben cumplir los siguientes requisitos: Disponer entre 160 Kb y 512 Kb de memoria total disponible. Como mnimo se debe disponer de 128 Kb de memoria no voltil para la mquina virtual Java y las bibliotecas CLDC, y 32 Kb de memoria voltil para la mquina virtual en tiempo de ejecucin. Procesador de 16 o 32 bits con al menos 25 Mhz de velocidad. Tener conexin a algn tipo de red, normalmente sin cable, con conexin intermitente y ancho de banda limitado. Ofrecer bajo consumo, debido a que stos dispositivos trabajan con suministro de energa limitado, normalmente bateras recargables. La CLDC aporta las siguientes funcionalidades a los dispositivos: Un subconjunto del lenguaje Java y todas las restricciones de su mquina virtual (KVM ).

6.2. COMPONENTES DE J2ME

125

Un subconjunto de las bibliotecas del ncleo de Java. Soporte para acceso a redes. Soporte para E/S bsica. Seguridad.

La tabla 6.2 de la pg. 125 muestra las libreras incluidas en la CLDC. Nombre del paquete CLDC java.io java.lang java.util javax.microedition.io Descripcin Clases y paquetes estndar de E/S Clases e interfaces de la mquina virtual Clases e interfaces, utilidades estndar Clases e interfaces de conexin genrica

Cuadro 6.2: Libreras de conguracin CLDC

6.2.3.

Perles

Un perl es el que dene las APIs que controlan el ciclo de vida de la aplicacin, interfaz de usuario, etc. Concretamente, un perl es un conjunto de APIs orientado a un mbito de aplicacin determinado. Los perles identican un grupo de dispositivos por la funcionalidad que proporcionan (ya sean electrodomsticos, telfonos mviles, etc.) y el tipo de aplicaciones que se ejecutarn en ellos. Las libreras de la interfaz grca son un componente muy importante en la denicin de un perl. Se pueden encontrar grandes diferencias entre las interfaces, desde el men textual de los telfonos mviles hasta los tctiles de los PDAs. El perl establece unas APIs que denen las caractersticas de un dispositivo, mientras que la conguracin hace lo propio con una familia de ellos. Esto hace que a la hora de construir una aplicacin se cuente tanto con las APIs del perl como de la conguracin.

126

CAPTULO 6. JAVA 2 MICRO EDITION

Anteriormente se mencion que para una conguracin determinada se usaba una Mquina Virtual Java especca. Tenamos que con la conguracin CDC se utilizaba la CVM y que con la conguracin CLDC se utilizaba la KVM. Con los perles ocurre lo mismo. Existen unos perles que se construirn sobre la conguracin CDC y otros que se construirn sobre la CLDC.

Figura 6.4: Entorno de Ejecucin de J2ME Para la conguracin CDC se encuentran los siguientes perles: Fundation Prole. Personal Prole. RMI Prole. Y para la conguracin CLDC se encuentran los siguientes: PDA Prole. Mobile Information Device Prole (MIDP). En la g. 6.4 de la pg. 126 se puede ver cmo quedara el esquema del entorno de ejecucin al completo.

6.2. COMPONENTES DE J2ME

127

A continuacin se describir con ms detenimiento cada uno de estos perles: Foundation Prole: Este perl dene una serie de APIs sobre la CDC orientadas a dispositivos que carecen de interfaz grca como, por ejemplo, decodicadores de televisin digital [14]. Este perl incluye gran parte de los paquetes de la J2SE, pero excluye totalmente los paquetes que conforman la interfaz grca de usuario (GUI ) de J2SE, concretamente los paquetes java.awt Abstract Windows Toolkit (AWT ) y java.swing. Los paquetes que forman parte del Foundation Prole se muestran en la tabla 6.3 de la pg. 127. Paq. del Fundation Prole java.lang java.util java.net java.io java.text java.segurity Descripcin Soporte del lenguaje Java Aade soporte completo para zip y otras funcionalidades Incluye sockets TCP/IP y conexiones HTTP Clases Reader y Writer de J2SE Incluye soporte para internacionalizacin Incluye cdigos y certicados

Cuadro 6.3: Libreras del Fondation Prole Personal Prole: Es un subconjunto de la plataforma J2SE versin 1.3, proporciona un completo soporte grco AWT . El objetivo es el de dotar a la conguracin CDC de una interfaz grca completa, con capacidades web y soporte de applets Java. Este perl requiere una implementacin del perl Foundation Prole. La tabla 6.4 de la pg. 128 muestra los paquete que conforman el perl. RMI Prole: Este perl requiere una implementacin del Foundation Prole. El perl RMI soporta un subconjunto de las APIs J2SE v1.3 RMI. Algunas caractersticas de estas APIs se han eliminado del perl RMI debido a las limitaciones de cmputo y memoria de los dispositivos.

128

CAPTULO 6. JAVA 2 MICRO EDITION

Paq. del Personal Prole java.applet java.awt java.awt.datatransfer java.awt.event java.awt.font java.awt.im java.awt.im.spi

Descripcin Clases necesarias para crear applets Clases para crear GUIs con AWT Clases e interfaces para transmitir datos entre aplicaciones Clases e interfaces para manejar eventos AWT Clases e interfaces para la manipulacin de fuentes Clases e interfaces para denir mtodos editores de entrada Interfaces que a aden el desarrollo de mtodos editores de entrada para cualquier entorno de ejecucin Java Clases para crear y modicar imgenes Clases que soportan JavaBeans Interfaces que usa el Personal Prole para la comunicacin

java.awt.image java.beans javax.microedition.xlet

Cuadro 6.4: Libreras del Personal Prole

6.2. COMPONENTES DE J2ME

129

Las siguientes propiedades se han eliminado del J2SE RMI v1.3 : Java.rmi.server.disableHTTP. Java.rmi.activation.port. Java.rmi.loader.packagePrex. Java.rmi.registry.packagePrex. Java.rmi.server.packagePrex PDA Prole: Est construido sobre CLDC. Pretende abarcar PDAs de gama baja, tipo Palm, con una pantalla y algn tipo de puntero (ratn o lpiz) y una resolucin de al menos 20000 pixeles. En este momento este perl se encuentra en fase de denicin. Mobile Information Device Prole (MIDP): Este perl est construido sobre la conguracin CLDC. MIDP fue el primer perl denido para esta plataforma. Este perl est orientado para dispositivos con las siguientes caractersticas: Reducida capacidad computacional y de memoria. Conectividad limitada (en torno a 9600 bps). Capacidad grca muy reducida (mnimo un display de 96x54 pixels). Entrada de datos alfanumrica reducida. 128 Kb de memoria no voltil para componentes MIDP. 8 Kb de memoria no voltil para datos persistentes de aplicaciones. 32 Kb de memoria voltil en tiempo de ejecucin para la pila Java. Los tipos de dispositivos que se adaptan a estas caractersticas son: telfonos mviles, buscapersonas (pagers) o PDAs de gama baja con conectividad. El perl MIDP especica las APIs relacionadas con:

130

CAPTULO 6. JAVA 2 MICRO EDITION

La aplicacin (semntica y control de la aplicacin MIDP). Interfaz de usuario. Almacenamiento persistente. Trabajo en red. Temporizadores. Las aplicaciones realizadas utilizando MIDP reciben el nombre de MIDlets (por simpata con APPlets). Se puede decir que un MIDlet es una aplicacin Java realizada con el perl MIDP sobre la conguracin CLDC. En la tabla 6.5 de la pg. 130 se pueden apreciar cules son los paquetes que estn incluidos en el perl MIDP. Paq. del MIDP javax.microedition.lcdui javax.microedition.rms javax.microedition.midlet javax.microedition.io java.io java.lang java.util Descripcin Clases e interfaces para GUIs Soporte para el almacenamiento persistente del dispositivo Clases de denicin de la aplicacin Clases e interfaces de conexin genrica Clases e interfaces de E/S bsica Clases e interfaces de la mquina virtual Clases e interfaces de utilidades estndar

Cuadro 6.5: Libreras del MIDP Prole

6.3.

Requerimientos Funcionales para Detectar una Aplicacin J2ME

Los dispositivos deben proporcionar mecanismos mediante los cuales se puedan encontrar los MIDlets que se desean descargar. En algunos casos, se pueden encontrar los MIDlets a travs de un navegador WAP o a travs de una aplicacin residente escrita especcamente para identicar MIDlets.

6.4. LOS MIDLETS

131

Otros mecanismos como Bluetooth, cable serie, etc, pueden ser soportados por el dispositivo y a partir de estas conexiones se pueden instalar aplicaciones (MIDlets). El programa encargado de manejar la descarga y ciclo de vida de los MIDlets en el dispositivo se llama Gestor de Aplicaciones o AMS (Application Management Software). Un dispositivo que posea la especicacin MIDP debe ser capaz de: Localizar archivos JAD vinculados a un MIDlet en la red. Descargar el MIDlet y el archivo JAD al dispositivo desde un servidor usando el protocolo HTTP 1.1 u otro que posea su funcionalidad. Enviar el nombre de usuario y contrasea cuando se produzca una respuesta HTTP por parte del servidor 401 (Unauthorized) o 407 (Proxy Authentication Required). Instalar el MIDlet en el dispositivo. Ejecutar MIDlets. Permitir al usuario borrar MIDlets instalados.

6.4.

Los MIDlets

Los MIDlets son aplicaciones creadas usando la especicacin MIDP. Estn diseados para ser ejecutados en dispositivos con poca capacidad grca, de cmputo y de memoria. Las clases de un MIDLet, son almacenadas en bytecodes Java, dentro de un chero .class. Estas clases deben ser vericadas antes de su puesta en marcha, para garantizar que no realizan ninguna operacin no permitida. Este prevericacin, se debe hacer debido a las limitaciones de la mquina virtual usada en estos dispositivos. Para mantener a la mquina virtual lo ms sencilla y pequea posible, se elimina esta vericacin, y se realiza antes de la entrada en produccin.

132

CAPTULO 6. JAVA 2 MICRO EDITION

La prevericacin se realiza despus de la compilacin, y el resultado es una nueva clase, lista para ser puesta en produccin. Los MIDLets son empaquetados en cheros .jar . Existen 2 cheros que contienen informacin extra dentro del .jar para la puesta en marcha de la aplicacin, el chero maniesto, con extensin .mf y un chero descriptor, con extensin .jad. Un chero .jar tpico, por tanto, se compondr de: Clases del MIDLet. Clases de soporte. Recursos (imgenes, sonidos, etc.). Maniesto (chero .mf). Descriptor (chero .jad).

6.4.1.

El Gestor de Aplicaciones

El gestor de aplicaciones o AMS (Application Management System) es el software encargado de gestionar los MIDlets. Este software reside en el dispositivo y es el que permite ejecutar, pausar o destruir 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 ejecucin.

6.4.2.

Ciclo de Vida de un MIDlet

Como puede ilustrarse en la g. 6.5 de la pg. 133 el ciclo de vida de un MIDlet pasa por cinco fases: Descubrimiento o localizacin; instalacin; ejecucin; actualizacin y borrado. El AMS es el encargado de gestionar cada una de estas fases de la siguiente manera:

6.4. LOS MIDLETS

133

Figura 6.5: Ciclo Vida de un MIDlet. 1. Localizacin: Esta fase es la etapa previa a la instalacin del MIDlet y es donde se selecciona a travs del gestor de aplicaciones la aplicacin a descargar. Por tanto, el gestor de aplicaciones tiene que proporcionar los mecanismos necesarios para realizar la eleccin 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 se debe poder realizar mediante un cable conectado a un ordenador o mediante una conexin inalmbrica. 1. Instalacin: En esta fase el gestor de aplicaciones controla todo el proceso de instalacin del MIDlet informando al usuario tanto de la evolucin de la

134

CAPTULO 6. JAVA 2 MICRO EDITION

instalacin como de si existiese algn problema durante sta. 1. Ejecucin: Mediante el gestor de aplicaciones se va a poder iniciar la ejecucin de los MIDlets. En esta fase, el AMS tiene la funcin de gestionar los estados del MIDlet en funcin de los eventos que se produzcan durante esta ejecucin. 2. Actualizacin: El AMS tiene que tener la capacidad de detectar si el MIDlet a instalar es una actualizacin de alguno ya existente, en cuyo caso deber informar de la situacin y permitir la actualizacin del MIDlet. 3. Borrado: Una vez instalado el MIDlet en el dispositivo, este permanece almacenado en la memoria persistente todo el tiempo hasta que el usuario decida borrarlo. El AMS es el encargado de eliminar el MIDlet pidiendo una conrmacin del proceso antes de continuar.

6.4.3.

Estados de un MIDlet

Adems de gestionar el ciclo de vida de los MIDlets, el AMS es el encargado de controlar los estados del MIDlet durante su ejecucin. Durante sta el MIDlet es cargado en la memoria del dispositivo y es aqu donde puede transitar entre 3 estados diferentes: activo, en pausa y destruido como puede apreciarse en la g. 6.6 de la pg. 135. Como se puede ver en la g. 6.6 de la pg. 6.6, un MIDlet puede cambiar de estado mediante una llamada a los mtodos MIDlet.startApp(), MIDlet.pauseApp() o MIDlet.destroyApp(). El gestor de aplicaciones cambia el estado de los MIDlets haciendo una llamada a cualquiera de los mtodos anteriores. Un MIDlet tambin puede cambiar de estado por s mismo.

6.4.4.

El Paquete javax.microedition.midlet

El paquete javax.microedition.midlet dene las aplicaciones MIDP y su comportamiento con respecto al entorno de ejecucin.

6.4. LOS MIDLETS

135

Figura 6.6: Estados de un MIDlet. En la tabla 6.6 de la pg. 135 se puede apreciar cules son las clases que estn incluidas en este paquete. Clases MIDlet MIDletstateChangeException Descripcin Aplicacin MIDP Indica que el cambio de estado ha fallado

Cuadro 6.6: Clases del Paquete javax.microedition.midlet

6.4.5.

La Clase MIDlet

Como se ha mencionado con anterioridad, un MIDlet es una aplicacin realizada usando el perl MIDP. La aplicacin desarrollada debe extender o heredar de esta clase para que el gestor de aplicaciones o AMS pueda gestionar sus estados y tener acceso a sus propiedades. Los mtodos de los que dispone esta clase son los siguientes: protected MIDlet() Constructor de clase sin argumentos. Si la llamada a este constructor falla,

136

CAPTULO 6. JAVA 2 MICRO EDITION

se lanzara la excepcin SecurityException. public nal int checkPermission(String permiso) Con este mtodo se consigue un nmero que determina el permiso especicado. Este permiso est descrito en el atributo MIDlet-Permission del archivo JAD. Los valores que puede arrojar este mtodo son: 0 si el permiso es denegado. 1 si el permiso es permitido. -1 si el estado es desconocido. protected abstract void destroyApp(boolean incondicional) throws MIDletstateChangeException Indica la terminacin del MIDlet y su paso al estado de Destruido. En el estado de Destruido el MIDlet debe liberar todos los recursos y salvar cualquier dato en el almacenamiento persistente que deba ser guardado. Este mtodo puede ser llamado desde los estados Pausa o Activo. public nal String getAppProperty(String key) Este mtodo proporciona al MIDlet un mecanismo que le permite recuperar el valor de las propiedades desde el AMS. Las propiedades se consiguen por medio de los archivos manifest y JAD. El nombre de la propiedad a recuperar debe ir indicado en el parmetro key. public nal void notifyDestroyed() Con este mtodo se notica al AMS que el MIDlet no quiere estar Activo y que ha entrado en el estado de Pausa. Este mtodo slo debe ser invocado cuando el MIDlet est en el estado Activo. Si la aplicacin es pausada por s misma, es necesario llamar al mtodo MIDlet.resumeRequest() para volver al estado Activo.

6.4. LOS MIDLETS

137

protected abstract void pauseApp() Indica al MIDlet que entre en el estado de Pausa. Este mtodo slo debe ser llamado cundo el MIDlet est en estado Activo. public nal boolean platformRequest(String url) Establece una conexin entre el MIDlet y la direccin URL. Dependiendo del contenido de la URL, el dispositivo ejecutar una determinada aplicacin que sea capaz de leer el contenido y dejar al usuario que interacte con l. protected abstract void startApp() throws MIDletstateChangeException Este mtodo indica al MIDlet que ha entrado en el estado Activo. Este mtodo slo puede ser invocado cundo el MIDlet est en el estado de Pausa. En el caso de que el MIDlet no pueda pasar al estado Activo en este momento pero s pueda hacerlo en un momento posterior, se lanzara la excepcin MIDletstateChangeException. Los mtodos anteriormente mencionados se utilizan para la comunicacin entre el MIDlet y el AMS. Por un lado se tiene que los mtodos startApp(), pauseApp() y destroyApp() los utiliza el AMS para comunicarse con el MIDlet, mientras que los mtodos resumeRequest(), notifyPaused() y notifyDestroyed() los utiliza el MIDlet para comunicarse con el AMS.

6.4.6.

Estructura de los MIDlets

Es posible decir que los MIDlets, al igual que los applets carecen de la funcin main(). Aunque existiese dicha funcin, el gestor de aplicaciones la ignorara por completo. Un MIDlet tampoco puede realizar una llamada a System.exit(). Una llamada a este mtodo lanzara la excepcin SecurityException. Los MIDlets tienen la siguiente estructura:
import javax.microedition.midlet.*; public class MiMidlet extends MIDlet{

138

CAPTULO 6. JAVA 2 MICRO EDITION

public MiMidlet() { /* ste es el constructor de clase. Aqu se deben * inicializar las variables. */ } public startApp(){ /* Aqu se pueden incluir el cdigo que el * MIDlet ejecute cundo se active. */ } public pauseApp(){ /* Aqu se puede incluir el cdigo que el * MIDlet ejecute cundo entre en el estado de pausa * es opcional */ } public destroyApp(){ /* Aqu se puede incluir el cdigo que el * MIDlet ejecute cundo sea destruido. Normalmente * aqu se liberaran los recursos ocupados por el * MIDlet como memoria, etc. * es opcional */ } }// n de la clase MiMidlet

Un pequeo ejemplo de una aplicacin simple se puede apreciar a continuacin.


import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HolaMundo extends MIDlet{

6.5. INTERFACES GRFICAS DE USUARIO

139

private Display pantalla; private Form formulario = null; public HolaMundo(){ pantalla = Display.getDisplay(this); formulario = new Form(Hola Mundo); } public void startApp(){ pantalla.setCurrent(formulario); } public void pauseApp(){ } public void destroyApp(boolean unconditional){ pantalla = null; formulario = null; notifyDestroyed(); } }

Estos mtodos son los que obligatoriamente tienen que poseer todos los MIDlets ya que, como se ha visto, la clase que se ha creado tiene que heredar de la clase MIDlet y sta posee tres mtodos abstractos: startApp(), pauseApp() y destroyApp() que han de ser implementados por cualquier MIDlet.

6.5.

Interfaces Grcas de Usuario

Teniendo en cuenta la diversidad de aplicaciones que se pueden realizar para los dispositivos MID y los elementos que proporcionan tanto la conguracin CLDC como el perl MIDP se pueden clasicar a los elementos en dos grandes grupos: Por un lado existen los elementos que corresponden a la interfaz de usuario de alto nivel. Esta interfaz usa componentes tales como botones,

140

CAPTULO 6. JAVA 2 MICRO EDITION

Figura 6.7: Jerarqua de Clases. cajas de texto, formularios, etc. La nalidad de usar estas APIs de alto nivel es su portabilidad. Al utilizar esta interfaz de usuario se pierde el control del aspecto de las aplicaciones desarrolladas, ya que la esttica depende exclusivamente del dispositivo donde se ejecute. La ventaja de la utilizacin de esta interfaz de usuario de alto nivel es la gran portabilidad que se consigue. Generalmente esta interfaz es utilizada para la creacin de aplicaciones de negocios. Por otro lado existen los elementos que forman parte de la interfaz de usuario de bajo nivel. Al utilizar las APIs de bajo nivel se puede tener un control total de todo lo que est dibujado en la pantalla, adems se pueden manejar eventos de bajo nivel, tales como pulsaciones de las teclas. Esta interfaz es ms adecuada para el desarrollo de juegos. El paquete javax.microedition.lcdui denido en el perl MIDP incluye las clases necesarias para crear interfaces de usuario, tanto de alto nivel como de bajo nivel. En la g. 6.7 de la pg. 140se puede apreciar la organizacin de estas clases.

6.5. INTERFACES GRFICAS DE USUARIO

141

6.5.1.

La Clase Display

La clase Display representa el manejador de la pantalla y los dispositivos de entrada. Todo MIDlet debe poseer por lo menos un objeto Display. En este objeto Display se puede incluir tantos objetos Displayable como se desee. La clase Display puede obtener informacin sobre las caractersticas de la pantalla del dispositivo donde se ejecute el MIDlet. En la tabla 6.7 de la pg. 142 se puede ver los mtodos incluidos en esta clase.

6.5.2.

La Clase Displayable

La clase Displayable representa a las pantallas de la aplicacin. Como se mencion anteriormente, cada objeto Display puede contener tantos objetos displayables como se desee. Mediante los mtodos getCurrent y setCurrent se controlan las pantallas para que sean visibles y accesibles en cada momento. La clase abstracta Displayable incluye los mtodos encargados de manejar los eventos de pantalla y aadir o eliminar comandos. Estos mtodos aparecen en la tabla 6.8 de la pg. 143.

6.5.3.

Las Clases Command y CommandListener

Un objeto de la clase Command mantiene informacin sobre un evento. Por establecer una analoga se puede pensar a un objeto Command como un botn de Windows. Se implementan en los MIDlets para poder detectar y ejecutar una accin simple. Existen tres parmetros que hay que denir al constuir un Command: Etiqueta: La etiqueta es la cadena de texto que aparecer en la pantalla del dispositivo que identicar a el Command.

142

CAPTULO 6. JAVA 2 MICRO EDITION

Mtodos void callSerially (Runnable r) boolean ashBacklight (int duracion) int getBestImageHeight (int imagen) int getBestImageWidth (int imagen) int getBorderStyle (bolean luminosidad) int getColor (int color) Displayable getCurrent() static Display getDisplay (MIDlet m) boolean isColor() int numAlphaLevels() int numColors() void setCurrent (Alert a, Displayable d) void setCurrent (Displayable d) void setCurrent (Item item) boolean vibrate (int duracion)

Descripcin Retrasa la ejecucin del mtodo run() del objeto r Provoca un efecto de ash en la pantalla Devuelve el mejor alto de imagen Devuelve el mejor ancho de imagen Devuelve el estilo de borde actual Devuelve un color basado en el parmetro pasado Devuelve la pantalla actual Devuelve una referencia a la pantalla del MIDlet m Devuelve true o false si la pantalla es de color o b/n Devuelve el nmero de niveles alpha soportados Devuelve el nmero de colores Establece la pantalla d despues de la alerta a Establece la pantalla actual Establece en la pantalla al item Realiza la operacin de vibracin del dispositivo

Cuadro 6.7: Mtodos de la Clase Display

6.5. INTERFACES GRFICAS DE USUARIO

143

Mtodos void addCommand (Command cmd) int getHeight() Ticker getTicker() String getTitle() int getWidth() bolean isShown() void removeCommand (Command cmd) void setCommandListener (CommandListener l) protected void sizeChanged (int w, int h) void setTicker(Ticker ticker) void setTitle(String title)

Descripcin aade el Command cmd Devuelve el alto de la pantalla Devuelve el Ticker asignado a la pantalla Devuelve el ttulo de la pantalla Devuelve el ancho de la pantalla Devuelve true si la pantalla est activa Elimina el Commando cmd de la pantalla Establece un Listener para la captura de eventos El AMS llama a este mtodo cundo el rea disponible para el objeto Displayable es modicada Establece un Ticker a la pantalla Establece un ttulo a la pantalla

Cuadro 6.8: Mtodos de la Clase Displayable

144

CAPTULO 6. JAVA 2 MICRO EDITION

Tipo: La declaracin del tipo sirve para que el dispositivo identique el Command y le d una apariencia especca acorde con el resto de aplicaciones existentes en el dispositivo. Prioridades: Esto puede servirle al AMS para establecer un orden de aparicin de los Command en pantalla. A mayor nmero, menor prioridad. Los tipos que se pueden asignar aparecen en la tabla 6.9de la pg 144. Tipo BACK CANCEL EXIT HELP ITEM OK SCREEN STOP Descripcin Peticin para volver a la pantalla anterior Peticin para cancelar la accin en curso Peticin para salir de la aplicacin Peticin para mostrar informacin de ayuda Peticin para introducir el comando en un Item en la pantalla Aceptacin de una accin por parte del usuario Para comandos de propsito ms general Peticin para parar una operacin un Listener para la captura de eventos

Cuadro 6.9: Tipos de Commands Ejemplo de un Command con la etiqueta Atras:


new Command(Atras,Command.BACK,1)

La tabla 6.10 de la pg. 144 muestra los mtodos de la clase Command. Mtodo public int getCommandType() public String getLabel() public String getLongLabel() public int getPriority() Devuelve el tipo del Command Peticin para volver a la pantalla anterior Devuelva la etiqueta del Command Devuelve la etiqueta larga del Command Devuelve la prioridad del Command

Cuadro 6.10: Mtodos de la Clase Command

6.5. INTERFACES GRFICAS DE USUARIO

145

No solo basta con crear objetos Command, para poder controlar algn evento de la aplicacin. Otra tarea pendiente es implementar la interfaz CommandListener, la cual dene un mtodo abstracto llamado CommandAction(Command d, Displayable d), donde debe ser implentado dicho mtodo, ya que una interfaz slo dene mtodos abstractos, es tarea de la clase que implementa dicha interfaz tener que implementar los mtodos denidos. A travs de la implementacin del mtodo CommandAction se podrn manejar los eventos que lanza el Command c que se encuentran en el objeto Displayable d.

6.5.4.

Interfaz de Usuario de Alto Nivel

Para comenzar se ver la clase Screen que es la superclase de todas las clases que conforman la interfaz de usuario de alto nivel:
public abstract class Screen extends Displayable

En la especicacin MIDP 1.0 esta clase contena cuatro mtodos que le permitan denir y obtener el ttulo y el ticker: setTitle(String s), getTitle(), setTicker(Ticket ticker) y getTicker(). El ticker es una cadena de texto que se desplaza por la pantalla de derecha a izquierda. En la especicacin MIDP 2.0, que es la ms reciente, estos cuatro mtodos han sido incluidos en la clase Displayable. La Clase Alert El objeto Alert representa una pantalla de aviso. Normalmente se usa cuando se quiere avisar al usuario de una situacin especial como, por ejemplo, un error. Para crear Alert se dispone de 2 constructores de acuerdo a su apariencia: Alert(String titulo). Alert(String titulo, String textoalerta, Image imagen, AlertType tipo). Existen dos tipos de alertas:

146

CAPTULO 6. JAVA 2 MICRO EDITION

1. Modal: Este tipo de alerta permanece un tiempo indeterminado en la pantalla hasta que el usuario la cancela. Se obtiene llamando al mtodo Alert. setTimeOut (Alert. FOREVER). 2. No modal : Este tipo de alerta permanecer por un tiempo denido por el usuario y luego desaparecer. Para ello se indica el tiempo en el mtodo setTimeOut(tiempo), el tiempo expresado en milisegundos. Tambin se puede elegir el tipo de alerta que se va a mostrar. Cada tipo de alerta tiene asociado un sonido. Los tipos que se pueden denir aparecen en la tabla 6.11 de la pg. 146. Mtodo ALARM CONFIRMATION ERROR INFO WARNING Devuelve el tipo del Command Aviso de una Peticin previa Indica la aceptaci de una acci Indica que ha ocurrido un error Indica algn tipo de informacin Indica que puede ocurrir algn problema

Cuadro 6.11: Tipos de Alerta

La Clase List La clase List hereda de la clase Screen, pero presenta una funcionalidad ms amplia que la clase Alert. La clase List proporciona una pantalla que contiene una lista de elementos sobre los que el usuario puede seleccionar. Esta clase implementa la interfaz Choice, que dene constantes que describen tres tipos bsicos de listas de opciones: EXCLUSIVE: Una lista que permite seleccionar un solo elemento a la vez. IMPLICIT: Un lista en la que la seleccin de un elemento provoca un evento (se adapta para la creacin de mens). MLTIPLE: Una lista que permite seleccionar uno o ms elementos a la vez.

6.5. INTERFACES GRFICAS DE USUARIO

147

Existen dos constructores que permiten construir listas: el primero de ellos crea una lista vaca y el segundo proporciona una lista con un conjunto inicial de opciones y de imgenes asociadas: List(String titulo, int listType). List(String titulo, int listType, String[] elementos, Image[] imagenes). En la siguiente tabla 6.12 de la pg. 148 se puede observar los distintos mtodos de la clase List. La Clase TextBox La clase TextBox implementa un componente de edicin de texto, que ocupa toda la pantalla. El constructor de la clase es: TextBox(String title, String text, int maxSize, int constraints) El parmetro title es un texto que aparecer en la parte superior de la pantalla, mientras que el parmetro text es usado para inicializar el texto que contendr el TextBox. El parmetro maxSize especica el nmero mximo de caracteres de texto que pueden ser introducidos en el TextBox. Por ltimo el parmetro constraints describe las limitaciones a aplicar sobre el texto. Estas limitaciones son especicadas segn las constantes denidas en la clase TextField: ANY: No hay limitaciones en el texto. EMAILADDR: Slo se puede introducir una direccin de correo electrnico. NUMERIC: Slo se puede introducir un valor numrico. PASSWORD: El texto es protegido para que no sea visible.

148

CAPTULO 6. JAVA 2 MICRO EDITION

Mtodos int append(String texto, Image imagen) void delete(int posicin) void deleteAll() void insert(int pos, String texto, Image im) int getFitPolicy() Font getFont(int pos) Image getImage(int pos) int getSelectedFlags (bolean[] array) int getSelectedIndex() String getString(int pos) boolean isSelected(int pos) void removeCommand (Command cmd) void set(int pos, String texto, Image im) void setFitPolicy(int modo) void setFont(int pos, Font fuente) void setSelectCommand (Command cmd) int setSelectedFlags (bolean[] array) int setSelectedIndex(int pos, boolean selec) int size()

Descripcin Aade un elemento al nal de la lista Elimina el elemento de la posicin especicada Elimina todas las entradas de la lista Inserta un elemento en la posicin especicada Devuelve el modo en el que se muestran las entradas de la lista por pantalla Devuelve la fuente del elemento pos Obtiene la imagen de una posicin determinada Almacena el estado de seleccin en un array Obtiene el ndice del elemento seleccionado Obtiene el texto del elemento indicado por pos Determina si est seleccionado el elemento Elimina el comando cmd Reemplaza el elemento de la posicin pos Establece el modo de posicionar las entradas de la lista por pantalla Establece la fuente de la entrada indicada en pos Selecciona el Command a usar Reemplaza el estado de seleccin por el de array Reemplaza el estado de la seleccin Obtiene el nmero de elementos

Cuadro 6.12: Mtodos de la Clase List

6.5. INTERFACES GRFICAS DE USUARIO

149

PHONENUMBER: Slo se puede introducir un nmero de telfono. URL: Slo se puede introducir una URL. Un ejemplo de uso sera: TextBox box = new TextBox(NOTAS, Nota: , 256, TextField.ANY). La Clase Form Un formulario (clase Form) es un componente que acta como contenedor de un nmero indeterminado de objetos. Todos los objetos que puede contener un formulario derivan de la clase Item. El nmero de objetos que se pueden insertar en un formulario es variable pero, teniendo en cuenta el tamao de las pantallas de los dispositivos MID, se recomienda que el nmero sea pequeo para evitar as el scroll que se producira si se insertan demasiados objetos en un formulario. Un mismo Item no puede estar en ms de un formulario a la vez. Si, por ejemplo, se desea usar una misma imagen en ms de un formulario, se debe borrar esa imagen de un formulario antes de insertarla en el que se va a mostrar por pantalla. Si no se cumple esta regla, se lanzara la excepcin IllegalStateException. La tabla 6.13 de la pg.150 muestra los mtodos de la clase Form. Manejo de Eventos El manejo de eventos en un formulario es muy similar al manejo de eventos de los Command vistos anteriormente. Nada ms que para un formulario se tiene que implementar la interfaz ItemStateListener que contiene un mtodo abstracto llamado itemStateChanged(Item item). Cuando se realiza algn tipo de accin en el algn tem del formulario se ejecuta el cdigo asociado del mtodo itemStateChanged(Item item). Un ejemplo de su utilizacin se puede observar a continuacin:
import javax.microedition.midlet.*;

150

CAPTULO 6. JAVA 2 MICRO EDITION

Mtodos int append(Image imagen) int append(Item item) int append(String texto) void delete(int num) void deleteAll() Item get(int num) int getHeight() int getWidth() void insert(int num, Item item) void set(int num, Item item) boolean isSelected(int pos) void setItemStateListener (ItemStateLis tener listener int size()

Descripcin Aade una imagen al formulario Aade un item al formulario Aade un String al formulario Elimina el Item que ocupa lo posicin num Elimina todos los Items del formulario Devuelve el Item que se encuentra en la posicin num Devuelve la altura del rea disponible para los Items Devuelve la anchura del rea disponible para los Items Inserta un Item justo antes del que ocupa la posicin num Reemplaza el Item que ocupa la posici n num Determina si est seleccionado el elemento Establece un listener p/ capturar eventos Devuelve el nmero de Items del formulario

Cuadro 6.13: Mtodos de la Clase Form

6.5. INTERFACES GRFICAS DE USUARIO

151

import javax.microedition.lcdui.*; public class ManejoItems extends MIDlet implements ItemStateListener, CommandListener{ Display pantalla; Form formulario; TextField txt; Command salir; public ManejoItems(){ pantalla = Display.getDisplay(this); formulario = new Form(); txt = new TextField(Introduce datos,,70,TextField.ANY); salir = new Command(Salir,Command.EXIT,1); formulario.append(txt); formulario.addCommand(salir); formulario.setItemStateListener(this); formulario.setCommandListener(this); public void startApp() { pantalla.setCurrent(formulario); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d){ if (i == txt){ System.out.println(Evento detectado en el TextBox); } } }

152

CAPTULO 6. JAVA 2 MICRO EDITION

La Clase StringItem La clase StringItem es la clase ms simple que deriva de Item. Es una cadena no modicable de texto, es decir, una cadena de texto con la que el usuario no puede interactuar de ninguna manera. Para construir un StringItem se hace uso de cualquiera de sus dos constructores: StringItem(String etiqueta, String texto). StringItem(String etiqueta, String texto, int apariencia). Los parmetros: etiqueta: Es la etiqueta del tem. texto: Es el texto que contiene el tem. apariencia: Es la apariencia del texto: Item.PLAIN, Item.HYPERLINK, Item.BUTTON. Los mtodos que posee la clase StringItem aparecen en la tabla 6.14 de la pg. 152 Mtodos int getAppearanceMode() Font getFont() String getText() void setFont(Font fuente) void setText(String texto) Descripcin devuelve la apariencia del texto devuelve la Fuente del texto devuelve el texto del StringItem Establece la Fuente del texto Establece el texto del StringItem

Cuadro 6.14: Mtodos de la Clase StringItem

La Clase ImageItem La clase ImageItem brinda la posibilidad de incluir imgenes en un formulario.

6.5. INTERFACES GRFICAS DE USUARIO

153

Al igual que la clase StringItem, el usuario no podr interactuar con la imagen. Para crear un objeto ImageItem se pueden usar uno de sus dos constructores: ImageItem(String etiqueta, Image imagen, int layout, String textoalt). ImageItem(String etiqueta, Image imagen, int layout, String textoalt, int apariencia). El parmetro textoalt especica una cadena de texto alternativa a la imagen en caso de que sta exceda la capacidad de la pantalla. Por su parte, el parmetro layout indica la posicin de la imagen en la pantalla. Los valores que puede tomar son: LAYOUT_LEFT: Imagen posicionada a la izquierda. LAYOUT_RIGHT: Imagen posicionada a la derecha. LAYOUT_CENTER: Imagen centrada. LAYOUT_DEFAULT : Posicin por defecto. LAYOUT_NEWLINE_AFTER: Imagen posicionada tras un salto de lnea. LAYOUT_NEWLINE_BEFORE: Imagen posicionada antes de un salto de lnea. Los mtodos de la clase ImageItem se pueden ver en la tabla 6.15 de la pg. 154. La Clase TextField Un texeld es un campo de texto que puede ser insertado en un formulario y en el cul se puede editar texto. Tiene similitud con la clase TextBox. Sus diferencias son:

154

CAPTULO 6. JAVA 2 MICRO EDITION

Mtodos String getAltText() Int getAppearanceMode() Image getImage() Int getLayout() void setAltText(String textoalt) void setImage(Image imagen) void setLayout(int layout)

Descripcin devuelve la cadena de texto alternativa devuelve la apariencia devuelve la imagen devuelve el posicionado de la imagen Establece un texto alternativo Establece una nueva imagen Establece un nuevo posicionado en pantalla

Cuadro 6.15: Mtodos de la Clase ImageItem Un texeld tiene que ser insertado en un formulario, a diferencia de un textbox puede existir por s mismo. TextField deriva de la clase Item, mientras que TextBox deriva directamente de Screen, y sus eventos se controlan a travs de Commands. Por esta razn, los eventos que produce un TextField se controlan a travs del mtodo itemStateChanged(Item item), mientras que en un TextBox se controlan en el mtodo commandAction(Command c, Displayable d). Sin embargo ambas clases (TextBox y TextField) comparten las mismas restricciones de edicin que se vieron anteriormente. Para crear un TextField slo hay que invocar al constructor con los siguientes parmetros: TextField(String etiqueta, String texto, int capacidad, int restricciones). Otros mtodos de esta clase pueden verse en la tabla 6.16 de la pg. 155

6.6.

RMS (Record Management System)

El sistema de gestin de registros (Record Management System, RMS ) se compone de una serie de clases e interfaces que proporcionan soporte a un sistema simple de base de datos que es usado para almacenar informacin. El objetivo del RMS es almacenar datos de tal forma que estn disponibles una vez que el MIDlet pare su ejecucin.

6.6. RMS (RECORD MANAGEMENT SYSTEM)

155

Mtodos void delete(int desplazamiento, int longitud) int getCaretPosition() Image getImage() int getChars(char[] datos) int getConstraints() int getMaxSize() String getString() void insert(char[] datos, int des, int long, int pos) void insert(char[] datos, int pos) void setChars(char[] datos, int des, int long) void setConstraints (int restricciones) void setInitialInputMode (String caracteres) int setMaxSize (int capacidad) void setString(String texto) void setString(String texto) int size()

Descripcin Borra caracteres del TextField Devuelve la posici n del cursor en pantalla devuelve la imagen Copia el contenido del TextField en datos Devuelve las restricciones de entrada Devuelve el tamao mximo del TextField. Devuelve el contenido del TextField Inserta un subrango de caracteres de datos en el TextField Inserta la cadena de caracteres datos en una posicin determinada Reemplaza el contenido del TextField por un subconjunto de caracteres de datos Establece las restricciones de entrada Establece un tipo de entrada inicial Establece el tamao mximo del TextField Establece el contenido del TextField Establece el contenido del TextField Devuelve el nmero de caracteres

Cuadro 6.16: Mtodos de la Clase TextField

156

CAPTULO 6. JAVA 2 MICRO EDITION

La unidad bsica de almacenamiento es el registro (record) que ser almacenado en un base de datos especial, denominada almacn de registros (record store ). Cuando un MIDlet usa un almacn de registros, primero debe crearlo y luego aadir los registros. Cuando un registro es aadido a un almacn de registros, se le asigna un identicador nico (id).

6.6.1.

Modelo de Datos

Como ya se ha dicho, el RMS est implementado en una base de datos basada en registros; ver g. 6.8 de la pg. 156.

Figura 6.8: Un MIDlet y el RMS Los MIDlets son los encargados de crear los Record Stores para poder comunicarse con ellos. Estos Record Stores quedan almacenados en el dispositivo y pueden ser accedidos por cualquier MIDlet que pertenezca a la misma suite, es decir pertenezcan al mismo grupo, como se puede ver en la g. 6.9 de la pg 157.

6.6. RMS (RECORD MANAGEMENT SYSTEM)

157

Figura 6.9: Acceso a Un RMS a Travs de Un MIDlet Suite

6.6.2.

Record Stores

Las propiedades de estos almacenes de registros son: 1. Cada Record Store est compuesto por cero o ms registros. 2. El nombre puede tener un mximo de 32 caracteres. 3. Si una suite es borrada, todos los Record Store tambin se borran. 4. Un Midlet no perteneciente a la suite puede acceder al Record Store, siempre que ste lo permita. 5. No pueden coexistir dos Record Stores con el mismo nombre dentro de una MIDlet suite. Entonces se puede decir que un Record Store es un almacn de registros, donde stos registros son la unidad bsica de informacin. Cada uno de estos registros est formado por dos unidades:

158

CAPTULO 6. JAVA 2 MICRO EDITION

Figura 6.10: Estructura de Un Record Store Un nmero identicador de registro (Record ID) que es un valor entero que realiza la funcin de clave primaria en la base de datos. Un array de bytes destinados a almacenar la informacin deseada. En la g. 6.10 de la pg. 158 se ilustra la estructura de un Record Store.

6.6.3.

Creacin de un Record Store

El API de MIDP incluye un paquete para el RMS , llamado javax.microedition.rms. Este paquete incluye clases e interfaces que proporcionan un marco de trabajo para los registros, los almacenes y otras caractersticas. Bsicamente se dispone de: Capacidad para aadir y borrar registros de un almacn. Capacidad para compartir almacenes por parte de todos los MIDlets de una MIDlet suite. La clase RecordStore no dispone de ningn constructor, pero posee el mtodo esttico:
static RecordStore openRecordStore(String name, Boolean createIfNeccesary).

Este mtodo permite la apertura de un Record Store existente o bien la creacin de un almacn si el parmetro createIfNeccesary tiene el valor true. Tambin existen otras dos alternativas de este mtodo:

6.6. RMS (RECORD MANAGEMENT SYSTEM)

159

static RecordStore openRecordStore(String name, boolean createIfNeccesary, int autorizacin, boolean writable). static RecordStore openRecordStore(String name, String vendorName, String suiteName).

El primero de ello usa los siguientes parmetros: autorizacin: AUTHMODE_PRIVATE : Slo permite el acceso al Record Store a la MIDlet suite que lo cre AUTHMODE_ANY : Permite el acceso a cualquier MIDlet del dispositivo. writable: Este modo especica si el Record Store puede ser modicado por cualquier MIDlet que pueda acceder a el. El segundo mtodo se utiliza para abrir un Record Store que est asociado a alguna MIDlet suite especicada por los parmetros vendorName y suiteName. El acceso vendr limitado por el tipo de autorizacin del Record Store cuando fue creado. Al nalizar con el uso de un determinado Record Store hay que cerrar la comunicacin con l. Para ello se utiliza el siguiente mtodo:
public void closeRecordStore() throws RecordStoreNotFoundException, RecordStoreException.

En la tabla 6.17 de la pg. 160 se pueden apreciar los mtodos que proporcionan operaciones con los Record Stores.

6.6.4.

Manipulacin de Registros

Una vez creado o abierta la comunicacin con el Record Store, se puede leer, escribir, modicar o borrar registros como se desee. Para ello, se usan los mtodos de la clase RecordStore que se ven en la tabla 6.18 de la pg.161.

160

CAPTULO 6. JAVA 2 MICRO EDITION

Mtodos String getName() int getVersion() long getLastModied() int getNumRecords() int getSize() int getSizeAvailable() String[] listRecordStores() void deleteRecordStore(String name)

RecordEnumeration enumerateRecords (RecordFilter lter, RecordComparator comparator, boolean actualizado) void addRecordListener (RecordListener listener) void removeRecordListener (RecordListener listener)

Descripcin Devuelve el nombre del Record Store Devuelve la versi n del Record Store Devuelve la marca temporal Devuelve el nmero de registros Devuelve el nmero de bytes ocupado por el Record Store Devuelve el tama o disponible para aadir registros Devuelve una lista con los nombres de los Record Stores Elimina del dispositivo al Record Store especicado por el parmetro name devuelve un objeto RecordEnumeration Aade un listener para detectar cambios en el Record Store Elimina un listener

Cuadro 6.17: Mtodos Generales de la Clase RecordStore

6.6. RMS (RECORD MANAGEMENT SYSTEM)

161

Mtodos int addRecord(byte[] datos, int oset, int numBytes) void deleteRecord(int id) Int getNextRecordId() byte[] getRecord(int id) int getRecord(int id, byte[] buer,int oset) int getRecordSize(int id) void setRecord(int id,byte[] datonuevo, int oset, int tamao)

Descripcin Aade un registro al Record Store Borra el registro id del Record Store Devuelve el siguiente id del registro que se vaya a insertar Devuelve el registro con identicador id Devuelve el registro con identicador id en buer a partir de oset Devuelve el tama o del registro id Sustituye el registro id con el valor de datonuevo

Cuadro 6.18: Mtodos Para Manejo de Registros A continuacin se mostrar un ejemplo que utiliza un Record Store de jugadores, donde se pueden ingresar nuevos jugadores y su puntaje obtenido.
import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.microedition.lcdui.*; import javax.microedition.rms.*; import java.io.*; public class Rms extends MIDlet implements CommandListener{ protected Display d; protected Form form; protected TextField textField; protected TextField textField1; protected Command ingresar, volver; protected Alert alert; protected TextField textField2;

162

CAPTULO 6. JAVA 2 MICRO EDITION

private RecordStore rs; protected List list; protected Form form2; protected String[] respuesta; // metodo para iniciar la aplicacion, aqui se inicializa el objeto display y se // muestra primeramente el menu como pantalla principal protected void startApp() throws MIDletStateChangeException { d = Display.getDisplay(this); d.setCurrent(getList()); } protected void pauseApp() { } protected void destroyApp(boolean ag) throws MIDletStateChangeException { } // este mtodo arma el formulario y retorna para poder ser mostrado protected Form getForm() { if (form == null) { form = new Form(Nuevo Puntaje); form.append(getTextField()); form.append(getTextField1()); form.append(getTextField2()); form.addCommand(getCommand()); form.addCommand(getBack()); form.setCommandListener(this); } return form; } public TextField getTextField() { if (textField == null) { textField = new TextField(Nombre jugador, , 255, TextField.ANY);

6.6. RMS (RECORD MANAGEMENT SYSTEM)

163

} return textField; } public TextField getTextField1() { if (textField1 == null) { textField1 = new TextField(documento,, 255, TextField.ANY); } return textField1; } public Command getCommand(){ if (ingresar == null){ ingresar = new Command(Cargar,Command.OK,1); } return ingresar; } public Command getBack(){ if (volver == null){ volver = new Command(Volver,Command.BACK,1); } return volver; } public void commandAction(Command c, Displayable dis){ if (c==list.SELECT_COMMAND){ if (list.getSelectedIndex()==0){ d.setCurrent(getForm()); }else{ //se llama al formulario de lectura .. form2 System.out.println(ok); abrirRecordStore(); leerRegistro(); cerrarRecordStore(); }

164

CAPTULO 6. JAVA 2 MICRO EDITION

} if (c==ingresar){ cargarDatos(); d.setCurrent(getAlert()); textField.setString(); textField1.setString(); textField2.setString(); } if (c==volver){ d.setCurrent(getList()); } } public Alert getAlert() { if (alert == null) { alert = new Alert(informacion, Los datos se estan cargando espere..., null, AlertType.INFO); alert.setTimeout(3000); } return alert; public TextField getTextField2() { if (textField2 == null) { textField2 = new TextField(Puntaje, , 2, TextField.NUMERIC); } return textField2; } private void cargarDatos(){ abrirRecordStore(); // luego se graban los datos y despues cierra la conexion

6.6. RMS (RECORD MANAGEMENT SYSTEM)

165

escribirRegistro(textField.getString(), textField1.getString(),textField2.getString()); cerrarRecordStore(); } private void abrirRecordStore(){ try{ rs = RecordStore.openRecordStore(Clientes,true); }catch(RecordStoreException e){ System.out.println(Error al abrir el record store); } } private void cerrarRecordStore(){ try{ rs.closeRecordStore(); }catch(RecordStoreException e){ System.out.println(error al cerrar el recordstore); } } private void escribirRegistro(String cliente, String doc, String pun){ byte[] registro; ByteArrayOutputStream baos; DataOutputStream dos; try{ baos = new ByteArrayOutputStream(); dos = new DataOutputStream(baos); dos.writeUTF(cliente); dos.writeUTF(doc); dos.writeUTF(pun);

166

CAPTULO 6. JAVA 2 MICRO EDITION

dos.ush(); registro = baos.toByteArray(); rs.addRecord(registro,0,registro.length); baos.close(); dos.close(); }catch(Exception e){ System.out.println(error al insertar el registro); } } private void leerRegistro(){ ByteArrayInputStream bais; DataInputStream dis; byte[] registro = new byte[200]; try{ bais = new ByteArrayInputStream(registro); dis = new DataInputStream(bais); respuesta = new String[rs.getNumRecords()+ 1]; for (int i=1;i<=rs.getNumRecords();i++) {

rs.getRecord(i,registro,0); System.out.println(Registro: + i); respuesta[i]= Nombre: + dis.readUTF() + documento: + dis.readUTF()+ puntaje + dis.readUTF(); bais.reset(); } bais.close(); dis.close(); }catch(Exception e){ System.out.println(error al leer registros);

6.6. RMS (RECORD MANAGEMENT SYSTEM)

167

} registro = null; mostrarDatos(); } public List getList() { if (list == null) { list = new List(Menu, Choice.IMPLICIT); list.append(Cargar Datos,null); list.append(Leer Datos,null); list.setCommandListener(this); } return list; public Form getForm2() { if (form2 == null) { form2 = new Form(Lectura de Datos); for (int i=1;i<respuesta.length;i++) { form2.append(respuesta[i]); form2.addCommand(getBack()); form2.setCommandListener(this); }

} return form2; } public void mostrarDatos(){

168

CAPTULO 6. JAVA 2 MICRO EDITION

d.setCurrent(getForm2()); } }

En la g. 6.11 de la pg. 168 se puede apreciar las pantallas del ejemplo en un emulador de Nokia.

Figura 6.11: Ejemplo en un emulador Nokia.

6.6.5.

Operaciones con Record Stores

En el ejemplo anteriormente visto se ha usado un simple bucle para recorrer los distintos registros del Record Store. El bucle es el siguiente:
for (int i=1;i<=rs.getNumRecords();i++){ longitud = rs.getRecordSize(i);

6.6. RMS (RECORD MANAGEMENT SYSTEM)

169

registro = rs.getRecord(i); System.out.println(Registro +i+: + new String(registro,0,longitud));

Sin embargo, la clase RecordStore proporciona la interfaz RecordEnumeration que facilita sta tarea. Utilizando esta interfaz se puede sustituir el bucle anterior por el siguiente cdigo:
RecordEnumeration re = rs.enumerateRecords(null,null,false);

while (re.hasNextElement()){ registro = re.nextRecord(); //se realizan las operaciones que se desean ... }

Como se puede ver, la navegacin por los registros usando RecordEnumeration es mucho ms intuitiva y permite realizar acciones como mover hacia delante o hacia atrs de una manera muy sencilla.

6.6.6.

Bsqueda de Registros

Para realizar una bsqueda eciente de registros, se debe implementar la interfaz RecordFilter, esta interfaz se encarga de devolver slo los registros que coincidan con el patrn de bsqueda especicado. Para usar esta interfaz se debe implementar necesariamente el mtodo:
public boolean matches(byte [] candidato), el cual se encarga de comparar el registro candidato pasado como parmetro con el valor que se quiere buscar y devolver true en caso de que coincidan.

170

CAPTULO 6. JAVA 2 MICRO EDITION

6.7.

Comunicaciones en J2ME

A pesar de la cantidad de restricciones que soportan los dispositivos MID y tambin restricciones propias del lenguaje Java, la gran ventaja que posee este tipo de dispositivos es la posibilidad de estar siempre conectados. La posibilidad de llevar un dispositivo con poco tamao y que permita comunicarse en cualquier momento y lugar abre un abanico de posibilidades en el desarrollo de aplicaciones. Las aplicaciones MIDP para trabajar en red utilizan las clases contenidas en los paquetes javax.microedition.io y java.io de la siguiente manera: El primer paquete contiene numerosas clases que permitirn crear y manejar diferentes conexiones de red. Estas conexiones podrn usar diferentes formas de comunicacin: HTTP, datagramas, sockets, etc. El paquete java.io se encargar de proporcionar las clases necesarias para leer y escribir en estas conexiones. En la g. 6.12 de la pg. 171 puede verse la jerarqua de clases que reciben el nombre de Generic Framework Conection (GFC). En la raz del rbol se encuentra la interfaz Connection que representa la conexin ms genrica y abstracta que se puede crear. El resto de interfaces que derivan de Connection representan los distintos tipos de conexiones que se pueden crear.

6.7.1.

Clases y Conexiones del Generic Connection Framework

Lo que proporciona el Generic Connection Framework es una sola clase Connector que esconde los detalles de la conexin. Esta clase puede por s misma crear cualquier tipo de conexin: Archivos, Http, socket,etc. Clase Connector Como se he dicho anteriormente, el GCF proporciona la clase Connector que esconde los detalles de la conexin. De esta forma se pueden realizar

6.7. COMUNICACIONES EN J2ME

171

Figura 6.12: Jerarqua de Interfaces cualquier tipo de conexin usando slo esta clase y sin preocuparnos de cmo se implementa el protocolo requerido. La conexin se realiza de la siguiente manera:
Connector.open(protocolo:direccin;parmetros);

Algunos ejemplo de invocacin son: Connector.open(http://direccionquesea.es); Connector.open(le://autoexec.bat); Connector.open(socket://direccion:0000); La clase Connector se encarga de buscar la clase especca que implemente el protocolo requerido. Si esta clase se encuentra, el mtodo open() devuelve un objeto que implementa la interfaz Connection. En la tabla 6.19 de la pg. 172 se puede apreciar los mtodos de la clase Connector.

172

CAPTULO 6. JAVA 2 MICRO EDITION

Mtodos public static Connection open(String dir) public static Connection open(String dir,int modo) public static Connection open( String dir, int mode, boolean tespera) public static DataInputStream openDataInputStream(String dir) public static DataOutputStream openDataOutputStream(String dir) public static InputStream openInputStream(String dir) public static OutputStream openOutputStream(String dir)

Descripcin Crea y abre una conexin Crea y abre una conexin con permisos Crea y abre una conexin especicando el permiso y tiempo de espera Crea y abre una conexin de entrada devolviendo para ello un DataInputStream Crea y abre una conexin de salida a travs de un DataOutputStream Crea y abre una conexin de entrada usando un InputStream Crea y abre una conexin de salida devolviendo para ello un OutputStream

Cuadro 6.19: Mtodos de la Clase Connector

6.7. COMUNICACIONES EN J2ME

173

Los tipos de permisos se pueden ver en la tabla 6.20 de la pg 173. Modo READ READ_WRITE WRITE Descripcin Permiso de solo lectura Permiso de lectura y escritura Permiso de solo escritura

Cuadro 6.20: Tipos de Permisos

La Interfaz Connection La interfaz Connection se encuentra en lo ms alto de la jerarqua de interfaces del Generic Connection Framework, por lo que cualquier otra interfaz deriva de sta. Una conexin de tipo Connection se crea despus de que un objeto Connector invoque al mtodo open(). Como se dijo anteriormente, esta interfaz representa la conexin ms genrica posible por lo que dene un slo mtodo:
public void close(), que realiza el cierre de la conexin.

Interfaz InputConnection La interfaz InputConnection representa una conexin basada en streams de entrada. Esta interfaz slo posee dos mtodos que devuelven objetos de tipo InputStreams (ver Tabla). En el siguiente ejemplo se ilustra cmo podra utilizarse este tipo de conexin: String url = www.midireccion.com; InputConnection conexin = (InputConnection)Connector.open(url); DataInputStream dis = conexion.openDataInputStream();

174

CAPTULO 6. JAVA 2 MICRO EDITION

Interfaz OutputConnection La interfaz OutputConnection representa una conexin basada en streams de salida. Esta interfaz slo posee dos mtodos que devuelven objetos de tipo OutputStreams (ver Tabla). La conexin a travs de esta interfaz se realiza de la misma forma a la interfaz InputConnection.

Interfaz StreamConnection Esta interfaz representa una conexin basada en streams tanto de entrada como de salida. No aade ningn mtodo nuevo, si no que hereda los mtodos de los interfaces que estn por encima de l. Su nica misin en la jerarqua del GCF es representar un tipo de conexin cuyos datos pueden ser tratados como streams de bytes y en la que es posible leer y escribir. A continuacin un ejemplo de cmo podra utilizarse esta conexin:
StreamConnection sc = (StreamConnection)Connector.open(url); InputStream is = sc.openInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int c; while((c = is.read()) != -1){ baos.write(c); }

6.7.2.

Comunicaciones HTTP

El protocolo HTTP es un protocolo de tipo peticin / respuesta. El funcionamiento de este protocolo es el siguiente: El cliente realiza una peticin al servidor y espera a que ste le enve una respuesta. Normalmente, esta comunicacin es la que suele realizarse entre un navegador web (cliente) y un

6.7. COMUNICACIONES EN J2ME

175

Establecimiento de conexin

Conectado

Sin Conexin

Figura 6.13: Estados de una Conexin HTTP servidor web (servidor). En este caso la comunicacin se realiza a travs de un MIDlet(cliente) y un Servlet(servidor) que recibir peticiones y devolver los resultados. Una conexin HTTP pasa por tres estados que se pueden ver en la g. 6.13de la pg 175.

Establecimiento de la Conexn En este estado es donde se van a establecer los parmetros de la comunicacin. El cliente prepara la peticin que va a realizar al servidor, adems de negociar con l una serie de parmetros como el formato, idioma, etc. Existen dos mtodos que pueden ser invocados. En la tabla 6.21 de la pg.

176

CAPTULO 6. JAVA 2 MICRO EDITION

176 se pueden apreciar estos mtodos. Mtodo public void setRequestMethod(String tipo) public void setRequestProperty(String clave String valor) Descripcin Establece el tipo de peticin Establece una propiedad de la peticin

Cuadro 6.21: Mtodos en la Etapa de Establecimiento El primer mtodo establece el tipo de peticin que se va a realizar. Esta peticin puede ser de los tipos indicados en la tabla 6.22 de la pg. 6.22. Tipo GET POST HEAD Descripcin Peticin de informacin en la que los datos se envan como parte del URL Peticin de informacin en la que los datos se envan aparte en un stream Peticin de metainformacin

Cuadro 6.22: Tipos de peticiones El segundo mtodo permite negociar entre el cliente y el servidor detalles de la peticin como, por ejemplo, idioma, formato, etc. Estos campos forman parte de la cabecera de la peticin. En la tabla 6.23 de la pg. 177 se pueden ver algunos de los ms importantes. Peticiones GET A continuacin se muestra un ejemplo en el que se prepara una conexin mediante la interfaz HttpConnection usando una peticin de tipo GET.
//se crea la conexin String url = http://www.midireccion.com/local?opcion=1&us=usuario&pass=1234; HttpConnection hc = (HttpConnection)Connector.open(url); //se informa el tipo de conexin a realizar

6.7. COMUNICACIONES EN J2ME

177

Campo public void setRequestMethod (String tipo) User-Agent User-Agent Content-Language Content-Length) Accept Connection

Descripcin Establece el tipo de peticin Tipo de contenido que devuelve el servidor Pais e idioma que usa el cliente Longitud de la petici n Formatos que acepta el cliente Indica al servidor si se quiere cerrar la conexin despus de la peticin se quiere dejar abierta Sirve para controlar el almacenamiento de informacin Tiempo m ximo para respuesta del servidor Pregunta si el contenido solicitado se ha modicado desde una fecha dada

Cache-Control Expires If-Modied-Since

Cuadro 6.23: Campos de la Cabecera

178

CAPTULO 6. JAVA 2 MICRO EDITION

hc.setRequestMethod(HttpConnection.GET); // se establece algunos campos en la cabezera hc.setRequestProperty(User-Agent,Prole/MIDP-2.0 Conguration/CLDC-1.0); hc.setRequestProperty(Content-Language,es-ES);

Como puede apreciarse, la informacin sobre la peticin va incluida en la cabecera de la direccin URL. El cuerpo de la peticin lo forma la cadena: opcion=1&us=usuario&pass=1234. Esta informacin va detrs del smbolo ? situado al nal de la direccin URL. Cada parmetro de la peticin va separado del siguiente por el smbolo &. Peticiones POST En este tipo de conexin, el cuerpo de la peticin se enva en un stream despus de iniciar la conexin. El siguiente ejemplo muestra cmo se realiza el envo del cuerpo de la peticin:
//se crea la conexin String url = http://www.midireccion.com; HttpConnection hc = (HttpConnection)Connector.open(url); // se informa el tipo de peticin a realizar hc.setRequestMethod(HttpConnection.POST); //se establece algunos campos de la cabezera hc.setRequestProperty(User-Agent,Prole/MIDP-2.0 Conguration/CLDC-1.0); hc.setRequestProperty(Content-Language,es-ES); // se envia el cuerpo de la peticin OutputStream os = hc.openOutputStream();

6.7. COMUNICACIONES EN J2ME

179

os.write(opcion=1.getBytes()); os.write(&us=usuario.getBytes()); os.write(&pass=1234.getBytes()); os.ush();

Estado de la Conexin En este estado se realiza el intercambio de informacin entre el cliente y el servidor. En los ejemplos anteriores se ha visto la manera de enviar la peticin al servidor. Ahora se ver cmo se realiza la respuesta del servidor hacia el cliente. Respuesta del Servidor Al igual que la peticin del cliente posee distintas partes, la respuesta del servidor se compone de: Lnea de estado. Cabecera. Cuerpo de la respuesta. Para conocer la respuesta del servidor, la interfaz HttpConnection proporciona diversos mtodos que permiten conocer las distintas partes de sta. La interfaz HttpConnection dispone de treinta y cinco cdigos de estado diferentes. Bsicamente se pueden dividir en cinco clases de la siguiente manera: 1xx: Cdigo de informacin. 2xx: Cdigo de xito. 3xx: Cdigo de redireccin. 4xx: Cdigo de error del cliente.

180

CAPTULO 6. JAVA 2 MICRO EDITION

5xx: Cdigo de error del servidor. Por ejemplo, el cdigo 400 corresponde a la constante HTTP_BAD_REQUEST. En realidad la respuesta del servidor posee el siguiente formato: HTTP/1.1 400 Bad Request. HTTP/1.1 200 OK. En la respuesta se incluye el protocolo usado, seguido del cdigo de estado y de un mensaje de respuesta. Este mensaje es devuelto al invocar el mtodo getResponseMessage(). Estado de Cierre La conexin entra en este estado una vez que se termina la comunicacin entre el cliente y el servidor invocando al mtodo close(). A continuacion se ver un ejemplo donde se produce una peticin mediante una peticin POST, se describirn tanto el codigo del MIDlet como del Servlet que recibe la peticion y devuelve una respuesta. Codigo del MIDlet
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.microedition.io.Connector; import javax.microedition.io.HttpConnection; import javx.microedition.lcdui.*; import javax.microedition.midlet.MIDlet; public class HiloConexionMidlet extends MIDlet implements CommandListener, Runnable{ private Display mDisplay; private Form mMainScreen;

6.7. COMUNICACIONES EN J2ME

181

public HiloConexionMidlet() { mMainScreen = new Form(HTTPMIDlet); mMainScreen.append( Press OK to create an HTTP connection.); Command exitCommand = new Command(Exit, Command.EXIT, 0); Command okCommand = new Command(OK, Command.OK, 0); mMainScreen.addCommand(exitCommand); mMainScreen.addCommand(okCommand); mMainScreen.setCommandListener(this); } public void startApp() { if (mDisplay == null) mDisplay = Display.getDisplay(this); mDisplay.setCurrent(mMainScreen); }

} public void pauseApp() { } public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable s) { if (c.getCommandType() == Command.EXIT) notifyDestroyed(); else if (c.getCommandType() == Command.BACK) mDisplay.setCurrent(mMainScreen); else if (c.getCommandType() == Command.OK) { // Put up a wait screen. Form waitForm = new Form(Connecting...);

182

CAPTULO 6. JAVA 2 MICRO EDITION

mDisplay.setCurrent(waitForm); Thread t = new Thread(this); t.start(); } }

// metodo Runnable public void run() { String url = http://localhost:9080/hiloServer/ServerHilo; Form resultsForm = new Form(Results); Command backCommand = new Command(Back, Command.BACK, 0); resultsForm.addCommand(backCommand); resultsForm.setCommandListener(this); HttpConnection hc = null; InputStream in = null; OutputStream os = null; try { // aqui se realiza la conexin al servidor. hc = (HttpConnection)Connector.open(url); // se envia el cuerpo de la peticion hc.setRequestMethod(HttpConnection.POST); hc.setRequestProperty(Content-Language,es-ES); hc.setRequestProperty(User-Agent,ProleMIDP-2.0 Conguration/CLDC1.0); hc.setRequestProperty(Content-Type,application/octect-stream); os = hc.openOutputStream(); os.write(usuario=qm.getBytes()); os.write(&clave=hi.getBytes()); os.ush(); // se toma la respuesta. in = hc.openInputStream();

6.7. COMUNICACIONES EN J2ME

183

int length = 256; byte[] raw = new byte[length]; int readLength = in.read(raw); String message = new String(raw, 0, readLength); resultsForm.append(message); } catch (Exception e) { resultsForm.append( new StringItem(Exception: , e.toString())); } nally { if (in != null) { try { in.close(); } catch (IOException ioe) {} } if (hc != null) { try { hc.close(); } catch (IOException ioe) {} } } mDisplay.setCurrent(resultsForm); }

Codigo del Servlet


import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; public class ServerHilo extends HttpServlet {

184

CAPTULO 6. JAVA 2 MICRO EDITION

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { InputStream in = req.getInputStream(); int length = 256; byte[] raw = new byte[length]; int readLength = in.read(raw); String query= new String(raw, 0, readLength); int index = query.indexOf(&); String usuarioaux = query.substring(0,index); index = usuarioaux.indexOf(=); String userid = usuarioaux.substring(index+1,usuarioaux.length()); String claveaux = query.substring(index + 1, query.length()); index = claveaux.indexOf(=); String password = claveaux.substring(index+1,claveaux.length()); resp.setContentType(text/plain); PrintWriter out = resp.getWriter(); if(userid.equals(qm) && password.equals(hi)) { out.println(Login successful.); } else { out.println(Login failed.); } } }

Captulo 7

Introduccin al DB2
7.1. Bases de Datos

La necesidad de mejorar la manera de acceder y manejar los datos ha evolucionado con el transcurso del tiempo hasta llegar a la generacin de los sistemas de administracin de bases de datos relacionales (RDBMS ). En los ltimos tiempos ha surgido una nueva base de datos llamada Universal, la cul es capaz de almacenar y hacer bsquedas no solamente de datos alfanumricos sino tambin de imgenes, audio, video y otros objetos. Esta ventaja de las bases de datos universales abre un gran nmero de oportunidades que permiten mejorar tanto los servicios como las aplicaciones. Se puede denir una Base de Datos como una serie de datos organizados y relacionados entre s, y un conjunto de programas que permitan a los usuarios acceder y modicar esos datos [15]. Mientras que un archivo normalmente contiene datos acerca de un tipo de entidad (ej.: personal, rdenes, clientes, ventas), una base de datos contiene datos acerca de muchos tipos de entidades e informacin acerca de cmo las entidades estn lgicamente relacionadas entre s. Las bases son cualquier conjunto de datos organizados para su almacenamiento en la memoria de un ordenador, diseado para facilitar su mantenimiento y acceso de una manera estndar. Los datos suelen aparecer en forma 185

186

CAPTULO 7. INTRODUCCIN AL DB2

de texto, nmeros o grcos. Otra denicin ms completa de bases de datos arma que es un conjunto exhaustivo, no redundante, de datos estructurados, organizados independientemente de su utilizacin y su implementacin en mquina, accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de informacin diferente y no predecible en el tiempo, donde la informacin se encuentra almacenada en una memoria auxiliar que permite el acceso directo a un conjunto de programas que manipulan esos datos [19].

7.1.1.

Objetivos de las Bases de Datos

Automatizacin de: El mantenimiento. Cualquier generacin de informacin. Cualquier consulta sobre dicha informacin.

7.1.2.

Ventajas de las Bases de Datos

Algunas ventajas de las bases de datos se describen a continuacin: Ahorro de Espacio: No hacen falta archivos de papeles que pudieran ocupar mucho espacio. Velocidad: Con la utilizacin de las bases de datos se pueden modicar, consultar datos con una velocidad mucho mayor que realizndolo manualmente. Ahorro de trabajo: ya que las mquinas son encargadas de manejar estas bases y no se necesitan manejar archivos a mano, existe un ahorro de trabajo humano. Actualizacin: Se dispone en cualquier momento de informacin precisa y al da. Comodidad: Al tener la informacin en un mismo sitio, se ahorrar tiempo y trabajo.

7.2. SISTEMA DE ADMINISTRACIN DE BASES DE DATOS

187

Disminucin de la Redundancia: La duplicacin de los datos implica mayor trabajo en el mantenimiento. Gracias a que las bases de datos disminuyen la redundancia tambin se disminuye el trabajo. Comparticin de Datos: Se trata de datos actuales, ya que al estar centralizados, se puede tener acceso a los datos actualizados en prcticamente tiempo real. Restricciones de Seguridad: Para mantener la seguridad acerca del mantenimiento de los datos, los administradores de la Base de Datos, crean un nivel de acceso, que permitir o prohibir a los usuarios hacer una u otra accin sobre dicha base de datos. Posibilidad de Mantener la Integridad: En una base de datos se debe mantener una coherencia. Esto se controlar mediante: Mscaras. Reglas de validacin.

7.2.

Sistema de Administracin de Bases de Datos

Una base de datos es una coleccin de tablas y objetos relacionados entre s y organizados como un grupo. La estructura de una base de datos se muestra en la gura 7.1 de la pgina 188. Un DBMS es un conjunto de programas que maneja todos los accesos a las bases de datos; ver gura 7.2 de la pgina 188. Funciones de un DBMS: Denicin de datos. Manipulacin de datos. Seguridad e integridad de los datos. Recuperacin y concurrencia de los datos. Diccionario de datos. Desempeo.

188

CAPTULO 7. INTRODUCCIN AL DB2

Figura 7.1: Estructura de Una Base de Datos

Figura 7.2: Sistema de Administracin de Bases de Datos

7.3. ORGANIZACIN DE BASES DE DATOS

189

7.3.

Organizacin de Bases de Datos

Los modelos ms comunes de organizacin de Bases de Datos son: Jerrquico. En Red. Relacional. Orientado a Objetos.

7.3.1.

Bases de Datos Jerrquicas

Estructura los campos en nodos en una estructura jerrquica. Los nodos son puntos conectados entre s formando una especie de rbol invertido. Cada entrada tiene un nodo padre, que puede tener varios nodos hijos; esto suele denominarse relacin uno a muchos. Los nodos inferiores se subordinan a los que se hallan a su nivel inmediato superior. Un nodo que no tiene padre es llamado raz, en tanto que los que no tienen hijos son conocidos como hojas. Cuando se desea hallar un campo en particular, se empieza por el tope, con un nodo padre, descendiendo por el rbol en direccin a un nodo hijo. Por Ejemplo: Un Sistema de Reservaciones de una Lnea Area (ver gura 7.3 de la pgina 190). El Nodo Padre es la Ciudad de Salida en este caso es (Caracas), Nodos Hijos representando las Ciudades Destino que tiene a su vez Nodos Hijos, que son el Nmero de Vuelo. El Nmero de Vuelo tendr tambin Nodos Hijos, que son los Pasajeros. Limitaciones de las Base de Datos Jerrquicas Al borrar un nodo padre, desaparecen tambin sus nodos subordinados. Slo podr aadirse un nodo hijo, si existe el nodo padre. Pero lo ms signicativo es la rigidez de su estructura: slo un padre por hijo y ausencia de relaciones entre los nodos hijos.

190

CAPTULO 7. INTRODUCCIN AL DB2

Figura 7.3: Modelo de Bases de Datos Jerrquica.

7.3.2.

Bases de Datos en Red

Se trata tambin de una organizacin jerrquica de nodos, pero un nodo hijo puede tener ms de un solo nodo padre (relacin muchos a muchos). Existen los punteros, que son conexiones adicionales entre nodos padres y nodos hijos, que permiten acceder a un nodo por vas distintas accediendo al mismo en direccin descendente por las diversas ramas. Representa una mejora al modelo jerrquico. Por ejemplo:Los vendedores destacados para distribuir determinados productos en algunas ciudades pueden ilustrar este modelo (ver gura 7.4 de la pgina 191). Cada Producto puede ser distribuido por ms de un Vendedor, as mismo cada Vendedor puede encargarse de diferentes Ciudades.

7.3.3.

Bases de Datos Relacional

Esta organizacin ofrece la mayor exibilidad ya que los datos se almacenan en Tablas diferentes, conformadas as mismo por Filas y Columnas. Una tabla se denomina relacin. En una Tabla las Filas contienen los Registros. Las

7.3. ORGANIZACIN DE BASES DE DATOS

191

Figura 7.4: Modelo de Bases de Datos en Red. Columnas representan los Campos. Las Tablas relacionadas poseen un campo comn, el Campo Clave, mediante el cual la informacin almacenada en una tabla puede enlazarse con la informacin almacenada en otra. El acceso a los datos se realiza mediante consultas escritas en SQL (Structured Query Language). La Organizacin de Bases de Datos Relacional es la ms difundida en la actualidad debido a su sencillez para realizar operaciones de adicin, eliminacin y modicacin en contraste con la mayor rigidez de las Organizaciones Jerrquicas y de Red. Por ejemplo: En un pequeo negocio, se puede contar con una Tabla de Clientes y Tabla de Pedidos (ver gura 7.5 de la pgina 192). Las rdenes que pertenecen a un determinado cliente son identicadas colocando el campo de identicacin del cliente en la orden (campo clave de la tabla de clientes), lo cual permite enlazar las dos tablas. Limitaciones de las Bases de Datos Relacionales Estructuras muy simples. Poca riqueza semntica. No soporta tipos denidos por el ususarios (slo Dominios).

192

CAPTULO 7. INTRODUCCIN AL DB2

Figura 7.5: Modelo de Bases de Datos Relacional. No soporta Recursividad. Falta de Procesamiento/Disparadores. No admite Herencia.

7.4.

Introduccin a DB2 UDB

DB2 UDB Universal Database es una Base de Datos Universal. Es completamente escalable, veloz y conable. Corre en modo nativo en casi todas las plataformas como ser: Windows Vista, NT, Sun Solaris, HP-UX, AIX U, OS/2 entre otros. DB2 es un software de base de datos relacional. Es completamente multimedia, disponible para su uso en la Web, muy bueno para satisfacer las demandas de las grandes corporaciones y bastante exible para servir a los medianos y pequeos negocios. DB2 UDB es un sistema manejador de base de datos relacional fuertemente

7.4. INTRODUCCIN A DB2 UDB

193

escalable. Es sucientemente exible para atender estructuras e inestructuras manejadoras de datos necesarias para usuarios simples de grandes empresas. Es conveniente para una gama amplia de aplicaciones de los clientes, quienes pueden desplegar una variedad de plataformas de hardware y software desde dispositivos manuales a los sistemas multiprocesador paralelos masivos.

7.4.1.

Caractersticas Generales del DB2 UDB

DB2 UDB es el producto principal de la estrategia de Data Management de IBM. DB2 UDB es un sistema para administracin de Bases de Datos Relacionales (RDBMS). Es multiplataforma, especialmente diseada para ambientes distribuidos, permitiendo que los usuarios locales compartan informacin con los recursos centrales. Es el sistema de gestin de datos que entrega una plataforma de base de datos exible y rentable para construir un sistema robusto para aplicaciones de gestin. DB2 UDB libera los recursos con amplio apoyo al open source (fuente abierta) y plataformas de desarrollo populares como J2EE y Microsoft .NET.

Integridad El DB2 UDB incluye caractersticas de Integridad, asegurando la proteccin de los datos an en caso de que los sistemas sufran un colapso, y de Seguridad permitiendo realizar respaldos en lnea con distintos grados de granularidad, sin que esto afecte la disponibilidad de acceso a los datos por parte de los usuarios.

Mltiples Usos Provee la capacidad de hacer frente a mltiples necesidades, desde Procesamiento Transaccional de Misin Crtica (OLTP), hasta anlisis exhaustivo de los datos para el soporte a la toma de decisiones (OLAP).

194

CAPTULO 7. INTRODUCCIN AL DB2

Escalabilidad Sus caractersticas distintivas de Escalabilidad le permiten almacenar informacin en un amplio rango de equipos, desde un PC porttil hasta un complejo ambiente de mainframes procesando en paralelo. Web Enabled Para e-Business Incluye tecnologa basada en Web que permite generar aplicaciones en las Intranets y responder a las oportunidades de negocios disponibles en Internet. Facilidad de Instalacin y Uso La primera versin de DB2 para NT fue reconocida en el mercado como una base de datos muy poderosa, pero difcil de instalar y usar. Universalidad DB2 UDB es, adems, la nica base de datos realmente universal; es multiplataforma (16 plataformas - de las cuales 10 no son de IBM), brinda soporte a un amplio rango de clientes, soporta el acceso de los datos desde Internet y permite almacenar todo tipo de datos: Texto, Audio, Imgenes y Video (AIV Extender) (ver gura 7.6 de la pgina 195) . Documentos XML ( XML Extender) (ver gura 7.7 de la pgina 195).

Funciones Complementarias del DB2 UDB Conectividad Las herramientas de conectividad permiten acceder a los datos ms all de donde ellos se encuentren. El slogan cualquier cliente, a cualquier servidor,

7.4. INTRODUCCIN A DB2 UDB

195

Figura 7.6: AIV Extender.

Figura 7.7: XML Extender.

196

CAPTULO 7. INTRODUCCIN AL DB2

en cualquier red est completamente sustentado por la funcionalidad que sus herramientas ofrecen. DB2 permite acceder a los datos de DB2 en mainframe o AS/400, desde Windows Vista, NT, Windows 95/98, OS/2 o cualquiera de los Unix soportados. Adems, el producto Datajoiner posibilita acceder de forma nica y transparente a los datos residentes en Oracle, Sybase, Informix, Microsoft SQL Server, IMS, VSAM y otros.

7.5.

DB2 Express-C

Es una edicin de la comunidad sin costo del servidor de datos DB2. Es ideal para las pequeas empresas y empresas con mltiples sucursales, as como los desarrolladores y socios de negocios que sirven a estos clientes. DB2 Express-C se puede congurar rpidamente, es fcil de usar, e incluye capacidades de auto-gestin. Tambin incorpora la totalidad de las principales caractersticas de las ediciones de DB2 ms escalable, incluyendo la revolucionaria tecnologa pureXML para la alimentacin de una nueva generacin de la Web 2.0 y las soluciones basadas en SOA. DB2 Express-C est disponible para su descarga e instalacin sin cargo. Est disponible para los usuarios que requieren apoyo tcnico o funcionalidades adicionales, tales como clustering de alta disponibilidad y replicacin de datos. La suscripcin anual para DB2 Express (Licencia de Plazo Fijo) est disponible con un precio por servidor mtricas. [13]

7.5.1.

Informacin Tcnica

Recursos: Se limite la utilizacin de recursos totales de la siguiente manera: Procesador: 2 ncleos. Memoria: 2 GB. Sistemas operativos: Linux (32 bits, 64 bits, POWER).

7.5. DB2 EXPRESS-C

197

Windows (32 bits, 64 bits). Solaris (Intel de 64 bits). Mac OS X (de 64 bits de Intel beta * *)

7.5.2.

DB2 para Linux, UNIX y Windows Caractersticas y Benecios

Autnomas El costo de administracin de base de datos puede ser de gran supere el coste de la base de datos de software y hardware por lo que es fundamental que el tiempo que el administrador de base de datos se utilizan con ecacia y eciencia. DB2 incluye numerosas caractersticas autnomas, como el Administrador de memoria de ajuste automtico, sin que los administradores de bases de datos de muchas tareas comunes de administracin. Como resultado, los administradores de base de datos pueden dedicar menos tiempo a la gestin del sistema y ms tiempo a centrarse en otras actividades que benecien a la empresa. Compresin de Datos Las empresas con grandes volmenes de datos sabe lo caro de almacenamiento puede ser. DB2 puede reducir ese costo con la industria lder en tecnologas de compresin de datos que comprimen las, ndices, tablas temporales, LDN, XML, y los datos de back-up con tasas de compresin que puede alcanzar ms del 80 %. Por otra parte, debido a la compresin permite a DB2 para mantener ms y datos en la memoria, evitando as el rendimiento robando / S de disco, el rendimiento de base de datos puede aumentar considerablemente. Rendimiento DB2 ha dominado los puntos de referencia clave de rendimiento en muchas ocasiones en los ltimos aos, tanto en lnea de procesamiento de transacciones (OLTP) y On-Line Analytical Processing (OLAP) puntos de referencia. Lo que esto signica que el rendimiento de clase mundial para empresas con base de datos es que pueden hacer ms trabajo con su hardware existente, a n de evitar o retrasar las costosas actualizaciones del servidor.

198

CAPTULO 7. INTRODUCCIN AL DB2

Escalabilidad DB2 pureScale utiliza un cluster basado en la arquitectura de disco compartido para ofrecer una fcil escalabilidad y alta disponibilidad. DB2 pureScale evita muchos de los inconvenientes de las soluciones de disco compartido basado en clusters de otros proveedores. Otras soluciones de incurrir en una abeza de racimo", que limita su capacidad de escalar ms all de unos pocos nodos, mientras que DB2 pureScale crece con una eciencia casi lineal. Otras soluciones tardar minutos en reanudar el proceso despus de un fallo del nodo, mientras que DB2 pureScale sigue funcionando sin degradacin del rendimiento. Adicin de servidores a otras soluciones de sintonizacin complejo y requiere cambios a cdigo de la aplicacin, mientras que DB2 pureScale permite ampliar la base de datos sin ajuste del sistema y requiere cambios mnimos en el cdigo de aplicacin. Seguridad Acceso no autorizado de datos es una amenaza siempre presente de que puede terminar costando sumas considerables de dinero de negocios, su reputacin, o ambos. DB2 ofrece un conjunto completo de funciones de seguridad que con ecacia y decisin minimizar esta amenaza. DB2 proporciona mayor tranquilidad con el mecanismo ligero de auditora de seguridad que se pueden utilizar para comprobar que no ha habido acceso a datos no autorizados. Fiabilidad Para muchas empresas, el tiempo de inactividad de base de datos es igual a dinero y la oportunidad perdida. DB2 puede reducir al mnimo el tiempo de inactividad asociado con muchas actividades previstas - como la modicacin de una tabla - y muchos eventos no planicados - por ejemplo un corte de energa - ya sea eliminando el tiempo de inactividad total o reducir su duracin a unos pocos segundos. XML Puro XML puede reducir signicativamente el coste de desarrollo y mantenimiento de aplicaciones en continua evolucin con las capacidades de entrada o

7.5. DB2 EXPRESS-C

199

de informacin - tales como formularios en lnea impuesto sobre la renta. Con el avance de XML nativo nico apoyo proporcionado por DB2, las ventajas de XML se extiende a la base de datos e incluyen la capacidad de evolucionar fcilmente un esquema XML en cuestin de minutos para que coincida con la aplicacin cambia sin actualizar el esquema de tabla existente o los datos XML existentes en esa tabla. Varios proveedores de SQL y el apoyo de la API Las empresas no pueden permitirse el lujo de tener sus equipos de desarrollo de aplicaciones luchando con desconocidos sintaxis SQL y las API de base de datos de extranjeros. Con DB2, desarrolladores de aplicaciones no DB2 puede realmente comenzar a ejecutar gracias al apoyo entre proveedores de muchas API como JDBC, ODBC y NET., As como el apoyo ricos de SQL, las funciones de un proveedor de base de datos, y tipos de datos.

7.5.3.

Herramientas de DB2

Centro de Control (Control Center) La herramienta primaria para la administracin de DB2 es el Centro de Control, ilustrado en la gura 7.8 de la pgina 200. El Centro de Control es una herramienta de administracin centralizada que te permite: Ver el sistema, instancias, bases de datos y objetos de la base de datos; Crear, modicar y manejar objetos de las bases de datos; Lanzar otras herramientas grcas de DB2. Hay varias formas de lanzar el Centro de Control : Navegando a travs del men de inicio de Windows. Ejecutando db2cc en la lnea de comandos. Dando clic en el icono de el Centro de Control en la barra de herramientas de cualquier otra herramienta grca de DB2.

200

CAPTULO 7. INTRODUCCIN AL DB2

Figura 7.8: Centro de Control.

7.5. DB2 EXPRESS-C

201

Desde el icono DB2 en Windows como se muestra en la gura 7.9 de la pgina 201 (Da clic sobre el icono verde DB2 y selecciona la opcin Central de Control de DB2).

Figura 7.9: Lanzando Centro de Control de DB2 desde la bandeja de Windows.

El Editor de Comandos DB2 Usando el Editor de Comandos DB2 (editor de comandos), se pueden ejecutar comandos DB2, sentencias SQL y XQuery, analizar el plan de ejecucin de una sentencia, y ver o actualizar resultados de consultas. En la gura 7.10 de la pgina 202 se muestra el editor de comandos DB2. En el rea de entrada, puedes ingresar varias sentencias, tan largas hasta que se presente el caracter de nalizacin. Si se presiona el botn ejecutar, las sentencias sern ejecutadas una despus de otra. Si t seleccionas explcitamente una sentencia, slo esa sentencia ser ejecutada. Debe existir una conexin a la base de datos para devolver sentencias SQL, sin embargo, una de esas sentencias puede ser una sentencia de conexin. Lanzando el Editor de Comandos Se podr lanzar el Editor de Comandos de varias formas: Desde el men de inicio de Windows:

202

CAPTULO 7. INTRODUCCIN AL DB2

Figura 7.10: El Editor de Comandos DB2.

7.5. DB2 EXPRESS-C

203

Start -> Programs -> IBM DB2 -> DB2COPY1 (Default) -> Command Line Tools -> Editor de Comandos. Desde la lnea de comandos, escribe db2ce. Desde el men herramientas en El Centro de Control. Dentro de el Centro de Control. Dar clic derecho en el icono de la base de datos SAMPLE en el rbol de objetos del panel de el Centro de Control y selecciona el elemento del menu Query. Siempre que un objeto consultable est seleccionado (base de datos, tabla, etc.), se puede lanzar el Editor de Comandos dando clic en la liga de Query que est en el panel de detalle de objetos de el Centro de Control. Desde el Centro de Control , dar clic en el icono de Editor de Comandos en la barra de herramientas como muestra la gura 7.11 de la pgina 203.

Figura 7.11: El icono Editor de Comandos en El Centro de Control.

SQL Assist Wizard La gura 7.12 de lq pgina 204 muestra el SQL Assist Wizard. Es bastante claro su uso. Primero indica el tipo de sentencia SQL para la cual necesitas asistencia (SELECT, INSERT, UPDATE, DELETE).

Dependiendo de que sentencia se haya elegido, diferentes opciones aparecern. En la parte baja de la ventana vers cmo la sentencia SQL es construida a partir de diferentes elecciones en el asistente.

Figura 7.12: El SQL Assist.

Captulo 8

RAD for WebSphere


8.1. Qu es RAD 6.0?

Rational Application Developer es el cambio de marca de WebSphere Studio Application Developer. IBM construy WebSphere Studio Application Developer en la parte superior de Eclipse - un proyecto de cdigo abierto para desarrollar un entorno abierto, extensible, de desarrollo integrado (IDE) y personalizado que para el desarrollo J2EE especcamente para WebSphere. Con la adquisicin de la familia de productos de Rational de IBM ha ampliado WebSphere Studio Application Developer y la cartera de Rational para incluir una familia totalmente integrada de productos. IBM Rational Software Development Platform, que permitir a los desarrolladores y equipos de proyecto para colaborar en la proyecto completo ciclo de vida. Acelera el desarrollo de J2EE y Portal y mejora la calidad del cdigo. IBM Rational Application Developer Eclipse se extiende con un rpido desarrollo. Ayuda a los desarrolladores de Java a disear, desarrollar, ensamblar, probar y desplegar el perl Java/J2EE de alta calidad, Portal Web, servicios Web y aplicaciones SOA. IBM Rational Application Developer es integrada y optimizada para IBM WebSphere Application Server e IBM WebSphere Portal Server. Adems incluye entornos de prueba para estos productos. Utiliza slidas capacidades para crear aplicaciones SOA, incluyendo la capacidad de crear automticamente SOA, componentes necesarios tales como WSIL y archivos
R

205

206

CAPTULO 8. RATIONAL APPLICATION DEVELOPER

WSDL. Rational Application Developer incluye herramientas para mejorar la calidad del cdigo: Una herramienta de perles de Java ayuda a analizar el rendimiento de una aplicacin, uso de memoria y problemas de los subprocesos. Una herramienta de anlisis de software identica patrones y antipatrones en el cdigo de la aplicacin, y compara el cdigo de normas de codicacin. Para administrar el cdigo fuente, se congurar Rational Application Developer para trabajar con un sistema de repositorio. El producto se entrega con conectores para: IBM Rational ClearCase, para el control de cdigo fuente. IBM Rational ClearQuest para la gestin de defectos. IBM Rational Team Concert cliente que puede ser utilizado para control de cdigo fuente y de gestin de defectos. El banco de trabajo incluye herramientas para la implementacin de una aplicacin a un servidor local o remoto. Contiene los entornos de prueba para IBM WebSphere Application Server e IBM WebSphere Portal . Tambin es compatible con Apache Tomcat . El uso de estas herramientas utilizando el entorno de desarrollador de software permite probar la aplicacin a nivel local antes de publicarlo en un servidor de produccin. Debido a que Rational Application Developer est basado en Eclipse, puede soportar los plug-ins para Eclipse, as como plug-ins especcamente para las herramientas de Rational.

8.1.1.

Rational Software Development Platform

IBM Rational Software Development Platform es un entorno comn de desarrollo basado en Eclipse que es compartida por los siguientes productos:

8.1. QU ES RAD 6.0?

207

IBM IBM IBM IBM IBM IBM

R R R R R R

Rational Rational Rational Rational

R R R R

Web Developer Application Developer Software Modeler Software Architect


R

Rational Tester Rational


R

funcional

Performance Tester

Con la instalacin de Rational Software Architect, se tiene una versin completa de Rational Application Developer. En la gura 8.1 de la pgina 207 se puede obrservar el entorno de trabajo del Rational Software Development Platform.

Figura 8.1: RAD. Entorno de Trabajo.

208

CAPTULO 8. RATIONAL APPLICATION DEVELOPER

8.1.2.

Rational Application Developer for WebSphere Software se extiende de Eclipse

Ayuda a los desarrolladores de Java a disear rpidamente, desarrollar, ensamblar, probar y desplegar el perl Java/J2EE de alta calidad, Portal Web, servicios Web y aplicaciones SOA. Aumenta la productividad y reduce los ciclos de desarrollo y pruebas, ya que extiende el entorno Eclipse 3.2. Caractersticas de un proceso de instalacin exibles diseados para proporcionar a los desarrolladores con slo las funciones que necesitan. Est integrada y optimizada para IBM WebSphere Application Server e IBM WebSphere Portal Server y incluye productos para entornos de prueba. Acelera J2EE, portales, servicios web y desarrollo de aplicaciones SOA. Acorta la curva de aprendizaje de Java a travs del diseo visual, con auto-sincronizado modelo de cdigo. Utiliza las capacidades robustas para crear aplicaciones SOA, incluyendo la capacidad de crear automticamente los componentes necesarios SOA, como los archivos WSDL y WSIL. Aplica tcnicas visuales de desarrollo de portales para acelerar el desarrollo. Le permite colaborar y compartir recursos de todo el equipo utilizando una funcin de control de versiones de Rational ClearCase LT, la integracin con otras facetas del ciclo de vida-incluidos los requisitos, gestin del cambio y la orientacin del proceso. Simplica el desarrollo de pginas Web y la gestin. Sistemas operativos soportados: Linux, Windows. Eclipse 3.2 Integracin Eclipse 3.2 es un entorno abierto que trae la integracin y extensibilidad para el entorno de desarrollo.

8.1. QU ES RAD 6.0?

209

Extiende Eclipse 3.2 con herramientas de desarrollo visual, JSF, y soporte de IBM WebSphere. Interfaz de usuario comn. Gestin de proyectos. Vistas disponibles: lista de tareas, Navigator, Contorno, enlaces, etc. Perspectivas Personalizable. Ayuda de escritorio y los marcos. Cdigo de Ayuda. Servicios de depuracin. Productividad Instalacin exible: permite el acceso slo a las caractersticas que usted necesita. Hojas de trucos para los patrones de desarrollo comn. Las plantillas de aplicacin y la biblioteca de plantillas. Procedimientos y tutoriales basados en escenarios . Introduccin y gua de instalacin .

8.1.3.

Desarrollo Web

Las herramientas RAD y asistentes llevan a todos los aspectos del desarrollo Web en una interfaz comn y permiten a los desarrolladores con diversos antecedentes tcnicos, e incluso aquellos no familiarizados con Java, para construir rpidamente las aplicaciones. JavaServer Faces support: aplicacin JSF de referencia, componentes JSF y herramientas visuales. JSF informe basado en la visualizacin de componentes para incrustar informes en las aplicaciones Web.

210

CAPTULO 8. RATIONAL APPLICATION DEVELOPER

Diseo Web del sitio para administrar y analizar visualmente los sitios Web. JSP y servlets asistentes Struts support. Plantillas y muestras. Soporte para HTML, DHTML, XHTML, CHTML, WML, Struts y etiquetas visuales personalizadas. Diseador de pginas con round-trip para editar capacidad de diseo WYSIWYG de pginas JSP. Activa la depuracin de scripts de JavaScript y Visual Basic
R

Script.

Crystal Report: para la elaboracin de informes de datos visuales. Prueba y licencia de desarrollo de Crystal Enterprise Server para la presentacin de informes en toda la empresa.

8.1.4.

Desarrollo de Java

Crear aplicaciones ricas utilizando una variedad de editores visuales, los asistentes y la generacin de cdigo, la fusin y herramientas de re-factoring. Entorno de desarrollo integrado. Java Runtime Environment congurable (JRE). Java Development Kit (JDK), la versin 5 de apoyo. Bloc de notas para probar fragmentos de cdigo. Re-factoring. Modelado visual de cdigo con sincronizacin automtica de cdigo y modelos.

8.1. QU ES RAD 6.0?

211

8.1.5.

Editor Visual de Java

Editor Visual para Java con manejo de eventos de Java para crear interfaces grcas de aplicaciones de usuarios con tecnolga AWT, Swing, y los componentes SWT, incluye Javadoc Diseo de componentes JSF. Construccin de GUI Swing. SWT GUI construccin.

8.1.6.

Servicios de Desarrollo Web

Servicios integrales de Internet y herramientas de desarrollo SOA para simplicar y automatizar el proceso de construccin de WS-I, adems servicios Web compatibles con las aplicaciones. Los servicios Web para acelerar el desarrollo de servicios. Soporte para UDDI 2.0 y v3, SOAP 1.1, WSDL 1.1, WSIL, J2EE 1.4, y AXIS. Crear, validar y detectar servicios web compatibles con WS-I. Servicios Web de localizacin basados en WSIL. Descubrir y publicar servicios para el Registro de empresas UDDI. Crear o transformar los servicios Web a los artefactos existentes, tales como Java beans, archivos DADX y componentes EJB. Construir artefactos envolviendo en SOAP ydescribe en WSDL. Editor de WSDL. Desarrollar aplicaciones web de servicios para clientes a partir de muestras. Implementacin y prueba de servicios Web en WebSphere Application Server o entornos de prueba Tomcat.

212

CAPTULO 8. RATIONAL APPLICATION DEVELOPER

Generar z-series nativos y los servicios Web COBOL. Web services Explorer. Proceso de orientacin para el desarrollo de aplicaciones SOA.

8.1.7.

XML para el Desarrollo

Herramientas completa para crear, editar y transformar documentos XML y la integracin de datos relacionales y XML. Esquemas y herramientas XML. XML herramientas de autor - editor de XML, DTD editor, editor de esquemas XML. Herramientas de transformacin XML: editor de mapas XML a XML, generador XSLT. Base de datos de herramientas de mapeo XML: constructor visual de DAD para la asignacin de RDB a XML, la escritura DAD. XSL editor. Xpath asistente.

8.1.8.

Desarrollo de Base de datos

Vistas, asistentes y editores, que sea fcil de desarrollar y probar los elementos de las aplicaciones Base de datos Wizards para simplicar la creacin de bases de datos. Soporte para IBM DB2, Informix, Nubes IBM, Microsoft Oracle 9i, y Sybase.
R

SQL Server

DB Explorer para navegar o importar esquemas de bases de datos. Vista de datos para crear y trabajar con esquemas de base de datos.

8.1. QU ES RAD 6.0?

213

Generador de consultas SQL y asistente para crear de forma visual y ejecutar sentencias SQL. Relational Schema Center: tablas de mapa para base de datos relacional a XML. Mapeo de obletos a relacional (top-down, meet-in-the-middle and bottomup). Asignacin de wizard. Generar y poner a prueba de Acceso a Documentos Denicin (DAD). Generador de procedimiento almacenado. SQLJ support.

8.1.9.

Desarrollo de Portales

Herramientas viuales para el desarrollo de portales y WebSphere Portal que es el entorno de prueba para apoyar el desarrollo y testeo de portales individuales y aplicaciones completas. Visual desarrollo de portlets y WebSphere Portal ambiente de la unidad de prueba. Desarrollo visual de aplicaciones de portal y la edicin de los temas y skins que controlan su apariencia. Soporte integrado para JSF y el framework Struts. Desarrollo de negocios portlet utilizando IBM WebSphere Portal Application Integration (SAP, Seibel). Plantillas de portlet . Soporte para IBM Portlet API y el JSR 168 Portlet API estndar.

214

CAPTULO 8. RATIONAL APPLICATION DEVELOPER

8.1.10.

Desarrollo J2EE

Soporte Integral para el modelo de programacin J2EE acelerando el desarrollo de componentes EJB y pruebas. Concurrente para J2EE 1.2, 1.3, 1.4 especicaciones. Apoyo a Servlet 2.2, 2.3, 2.4 y JSP 1.1, 1.2, 2.0. Soporte para EJB
TM

1.1, 2.0, 2.1.

Soporte para Java Message Service (JMS) y Lenguaje de consulta de EJB. Apoyo a JAR, EAR, WAR. Asistentes para la creacin de beans de sesin y beans de entidad. Apoyo a la persistencia administrada por beans (BMP) y la persistencia gestionada por contenedor (CMP). Soporte para el desarrollo de EJB utilizando anotaciones Java (etiquetas Xdoclet foro). O / R Mapping (de arriba hacia abajo y de abajo arriba). Generated EJB Test Client EJB. Apoyo a la creacin de aplicaciones J2EE con JDK 5, dirigido a WebSphere Application Server v5.1, v6.0, v6.1. EJB cliente JAR apoyo para automatizar la creacin de clientes EJB. EJB fragmento para simplicar la generacin de cdigo EJB de acceso alcliente.

8.1.11.

Equipo de Desarrollo

Integracin con IBM Rational ClearCase y Rational ClearQuest permite una amplia gama de operaciones de gestin de cambio que se realiza directamente desde el entorno de desarrollo, proporciona una visin integrada de los proyectos y aumenta tanto la productividad del equipo y la colaboracin.

8.1. QU ES RAD 6.0?

215

Conectable repositorios de control de versiones. Adaptadores para el sistema de versiones concurrentes. Adaptadores para Rational ClearCase. Rational ClearCase LT Server incluido. Espacio de nombres de versiones de la integracin con Rational ClearCase LT. RUP Developer Conguration.

8.1.12.

Especicacin de Arquitectura. UML

UML Editor Visual para Java y EJB para visualizar y editar los componentes de Java y J2EE Editos de diagramas de clases para clases e interfaces de Java y EJBs. Vista de las tablas de datos y soporte del diagrama Diagramas de secuencia. La revisin de cdigo (anlisis esttico): Proporciona sugerencias Quick Fix y permite la personalizacin de las normas, a travs de reglas de plantillas.

8.1.13.

Pruebas e Implementacin

Entorno de prueba para los HTML y JSP, Servlets. EJB universal test client. Ant secuencias de comandos y un marco de pruebas JUnit. TCP / IP Monitor para supervisar las solicitudes y respuestas entre un navegador y un servidor de aplicaciones. Las herramientas automatizadas para administrar instancias del servidor y las conguraciones de servidor, incluyendo la creacin automtica y la presentacin de secuencias de comandos wsadmin.

216

CAPTULO 8. RATIONAL APPLICATION DEVELOPER

Prueba de diferentes entornos en tiempo de ejecucin local o remota. TPTP perles de rendimiento y la explotacin. Herramientas mejoradas de anlisis de tiempo de ejecucin: la deteccin de prdida de memoria, deteccin de bloqueo de rosca, puntas de prueba denidos por el usuario, la cobertura de cdigo .

8.1.14.

Asistencia Tcnica de Servidor

Unidad Integrada entorno de prueba es compatible con las pruebas locales y remotas para agilizar las pruebas de aplicaciones y aumentar la calidad del cdigo. WebSphere Application Server entornos de prueba de la unidad: v5, v5.1, v6.0, V.6.1 (WebSphere Application Server v. 6.1 incluye para la prueba). WebSphere Application Server - Express entornos de prueba de la unidad: v5.0, v5.1, v6.0. Tomcat Jakarta Yakarta Tomcat. WebSphere Portal Server entornos unidad de prueba: v5.1, y v. 6.0 (WebSphere Portal Server v. 6.0 para la prueba).

8.2.
8.2.1.

WebSphere Application Server


Qu es WebSphere?

IBM WebSphere es una plataforma de IBM para desarrollo y gestin de sitios web y aplicaciones destinadas al comercio electrnico. WebSphere es una plataforma de Software para e-business. WebSphere posee una amplia gama de servidores y aplicaciones para brindar cualquier tipo de capacidades de negocio y ayuda al desarrollo de las aplicaciones. La Plataforma de Software WebSphere est compuesta por un conjunto de herramientas de e-business integradas y basadas en estndares abiertos de mercado.

8.2. WEBSPHERE APPLICATION SERVER

217

WebSphere es ideal para todas las fases de un e-business, comenzando desde pequeos sitios Web a mega sitios. La plataforma de software WebSphere proporciona una completa gama de habilidades que permiten a los clientes la entrega de altos niveles de servicio a todos los visitantes del sitio en la web. Administra cargas pico en los servidores web, mantiene la disponibilidad del sitio en la web, y reconoce contenido de solicitudes de la web para calidad-de-servicio mejor. Tambin permite la diferenciacin de niveles de servicio con base en el tipo de cliente. La creciente complejidad de los aplicativos de e-business crea muchos desafos. Los aplicativos deben ser escalables, ables y se deben integrar completamente con los sistemas back-end para proteger las inversiones existentes. El equipo de desarrollo debe poseer las ms actualizadas habilidades de programacin para acompaar el ciclo de vida del e-business. Se necesita una plataforma completa, escalable y exible que proporcione soporte a la construccin y diseminacin de aplicativos de e-business. Las soluciones de software WebSphere ofrecen las herramientas necesarias para alcanzar los objetivos de e-business.

8.2.2.

Que es WebSphere Application Server?

El WebSphere Application Server representa una familia de software para servidores de aplicaciones. Permite a las empresas responder a los mercados cambiantes sin migrar a tecnologas diferentes preservando las inversiones hechas en tecnologa previamente disponible en la organizacin, soporta normas abiertas vigentes en las organizaciones, proporciona soporte pleno a la plataforma abierta Java 2 y Java 2 Enterprise Edition (J2EE) y tambin provee soporte para servicios bajo normas abiertas en la Web [4]. WebSphere Application Server, es una plataforma de alto desempeo y extrema escalabilidad para diseminar aplicativos dinmicos de e-business, proporciona las funciones esenciales de e-business de manipulacin de transacciones y ampliacin de datos back-end del negocio y aplicativos para la Web. La plataforma ayuda a construir aplicativos que ejecutan esas funciones con seguridad slida, abilidad y escalabilidad.

218

CAPTULO 8. RATIONAL APPLICATION DEVELOPER

Figura 8.2: WebSphere para e-bussines. WebSphere Application Server Como Plataforma Para el Comercio Electrnico Brinda un soporte amplio para aplicaciones de comercio electrnico. Se caracteriza por su exibilidad para adaptarse a cambios en los mercados y en los objetivos comerciales. Construyendo aplicaciones en esta robusta plataforma, se pueden integrar diversos ambientes de las IT (Tecnologa de Informacin), para aprovechar al mximo las inversiones existentes. Se pueden instalar aplicaciones comerciales existentes para su acceso desde la Web y escalar estas aplicaciones para adecuarlas a las necesidades de los cambios y de la demanda. En la g. 8.2 de la pg. 218 se puede observar la plataforma del Software de WebSphere para e-bussines.

Application Server - Advanced Edition La Edicin Avanzada es la oferta del principal servidor de aplicativo dirigido a desarrolladores profesionales de tecnologa Java que necesitan funcionalidad de servicios J2EE y Web para aplicativos dinmicos de e-business.

8.2. WEBSPHERE APPLICATION SERVER

219

Esta Edicin del WebSphere Application Server, est disponible en tres conguraciones: Edicin Avanzada: Proporciona integracin slida a las bases de datos, middleware orientado a mensajes, y sistemas preexistentes y aplicativos, en conjunto con soporte de agrupacin. Esta conguracin se ajusta a la mayora de los escenarios de la empresa e interesa a los negocios que necesitan construir aplicativos altamente transaccionales, administrables, disponibles y escalables que ofrecen seguridad distribuida y administracin remota. Edicin Avanzada del Single Server : Proporciona el mismo modelo de programacin esencial J2EE y Web Services con administracin simplicada. Esta conguracin interesa a departamentos, negocios de tamao mediano y aplicativos piloto que necesitan un coste bajo, opcin de ejecucin rpida, distribucin de carga de trabajo o administracin remota asociados a administracin de multi-servidor. Edicin Avanzada del IBM WebSphere Application Server, para Linux en zSeries: La Edicin Avanzada del WebSphere Application Server, para Linux en zSeries contina cumpliendo el compromiso de IBM en cuanto a mantener cobertura amplia para plataformas para el WebSphere Application Server. Este producto WebSphere tiene la combinacin potente de un conjunto de dispositivos rico y soporte a estndares abiertos del WebSphere Application Server y el ambiente operacional familiar del sistema operativo Linux. Tambin contiene los recursos de administracin, alta abilidad, y la intensa velocidad de comunicacin de datos internos del hardware de la plataforma zSeries.

220

CAPTULO 8. RATIONAL APPLICATION DEVELOPER

Application Server - Enterprise Edition La Edicin empresarial del IBM WebSphere Application Server, en junto con IBM WebSphere Studio Application Developer Integration Edition, ofrece una combinacin potente de tiempo de ejecucin y herramienta que permite integrar activos IT existentes, mejorar la productividad del desarrollador y crear y mantener aplicativos de e-business exibles. Juntos, el IBMs WebSphere Application Server Enterprise Edition y el WebSphere Studio Application Developer Integration Edition permiten a los desarrolladores la capacidad de: Coreograar visualmente y componer servicios de la Web y componentes de aplicativo J2EE a travs de una interfase de simple drag-and-drop. Construir potentes adaptadores de aplicativo basados en J2EE Connector Architecture (JCA) para integrar sistemas back-end con servicios Web y aplicativos J2EE. Obtener una infraestructura completa de servicios Web que impulse un ambiente nico, ecaz en cuanto a coste de tiempo de ejecucin del servidor de aplicativo administrativo y operacional. Evitar la repeticin del desarrollo y diseminacin de aplicativos debido a condiciones cambiantes del mercado, separando las polticas del negocio de la lgica de aplicativos esenciales. Crear una paleta de componentes de aplicativos que puede ser rpidamente montada para desarrollar nuevos aplicativos fcilmente publicada como servicio Web.

Application Server - Standard Edition La Edicin Estndar para desarrolladores de la web y autores de contenido incluye mejoras de facilidad de uso en toda su extensin, comprendiendo un Quick Installation que elimina conjeturas en cuanto al Enhanced Java, impulsando el Software Development Kit del Java 2 V1.2.2 en todos los sistemas operativos soportados.

8.2. WEBSPHERE APPLICATION SERVER

221

Servidor HTTP IBM WebSphere Application Server trabaja con un servidor HTTP para manejar las peticiones de servlets y otros contenidos dinmicos desde las aplicaciones Web. El servidor HTTP y el servidor de aplicaciones se comunican utilizando el plug-in HTTP de WebSphere para el servidor HTTP. El plug-in HTTP utiliza un archivo de conguracin XML de fcil lectura para determinar si la peticin la debe gestionar el servidor Web o el servidor de aplicaciones. Utiliza el protocolo HTTP estndar para comunicarse con el servidor de aplicaciones.

Servidor de Aplicaciones El servidor de aplicaciones colabora con el servidor Web intercambiando peticiones de clientes y respuestas de aplicaciones. Puede denir varios servidores de aplicaciones, cada uno de ellos ejecutndose en su propia Mquina Virtual Java (JVM).

Contenedor de EJB El contenedor de EJB proporciona los servicios de tiempo de ejecucin necesarios para desplegar y manejar componentes EJB, conocidos como enterprise beans. Es un proceso de servidor que maneja peticiones para beans de sesin y beans de entidad. Los enterprise beans (dentro de los mdulos EJB) instalados en un servidor de aplicaciones no se comunican directamente con el servidor; en su lugar, el contenedor de EJB ofrece una interfaz entre los enterprise beans y el servidor. Juntos, el contenedor y el servidor proporcionan el entorno de tiempo de ejecucin del bean. El contenedor proporciona muchos servicios de bajo nivel, incluido el soporte de hebras y transacciones. Desde un punto de vista administrativo, el contenedor gestiona el almacenamiento y la recuperacin de datos para los beans que contiene. Un solo contenedor puede gestionar ms de un archivo JAR de EJB.

222

CAPTULO 8. RATIONAL APPLICATION DEVELOPER

Contenedor Web Los servlets y los archivos JSP (Java Server Pages) son componentes del servidor que se utilizan para procesar peticiones de clientes HTTP como, por ejemplo, navegadores Web. Se encargan de la presentacin y el control de la interaccin del usuario con los datos de aplicacin subyacentes y la lgica empresarial. El contenedor Web procesa servlets, archivos JSP y otros tipos de inclusiones de servidor. Los servlets anteriores a J2EE se ejecutarn en un motor de servlets. Cada contenedor Web contiene automticamente un nico gestor de sesiones. Cuando se manejan los servlets, el contenedor Web crea un objeto de peticin y un objeto de respuesta, e invoca el mtodo de servicio de servlets. El contenedor Web invoca el mtodo destroy() del servlet cuando corresponda y descarga el servlet, y despus la JVM ejecuta la recoleccin de basura. Contenedor de Clientes de Aplicaciones Los clientes de aplicaciones son programas Java que se ejecutan normalmente en un sistema de sobremesa con una interfaz grca de usuario (GUI) . Tienen acceso a toda la gama de componentes y servicios de servidor J2EE. El contenedor de clientes de aplicaciones maneja programas de aplicaciones de Java que acceden a los beans enterprise, Java Database Connectivity (JDBC) y las colas de mensajes de Java Message Service. El programa Cliente de aplicaciones J2EE se ejecuta en las mquinas cliente. Este programa sigue el mismo modelo de programacin Java que otros programas Java; no obstante, el cliente de aplicaciones J2EE depende del tiempo de ejecucin del cliente de aplicaciones para congurar su entorno de ejecucin, y utiliza el espacio de nombres JNDI (Java Naming and Directory Interface) para acceder a los recursos. Sistema Principal Virtual Un sistema principal virtual es una conguracin que permite que una nica mquina de sistema principal parezca varias mquinas de sistema principal.

8.2. WEBSPHERE APPLICATION SERVER

223

Los recursos asociados con un sistema principal virtual no pueden compartir datos con recursos asociados con otro sistema principal virtual, incluso si los sistemas principales virtuales comparten la misma mquina fsica. Los sistemas principales virtuales permiten al administrador asociar aplicaciones Web con un sistema principal particular congurado para la mquina que ejecuta la aplicacin. Virtual Hosts (Hosts Virtuales) Un host virtual es una conguracin que permite a una sola mquina host aparentar ser mltiples mquinas hosts. Permite que una sola mquina fsica congure y administre independientemente varias aplicaciones administradas. No est asociado a un nodo particular (mquina). Es una conguracin, diferente de un objeto vivo, indicando que puede crearse, pero no arrancarse o detenerse. Cada host virtual tiene un nombre lgico y una lista de uno o ms seudnimos de DNS por los cuales es conocido. Un seudnimo de DNS es el nombre TCP/IP del host y el nmero del puerto que use la peticin del servlet, por ejemplo su nombre Host:80. El WebSphere Application Server proporciona un host virtual predenido, denominado el default_host, con algunos seudnimos comunes, como el IP de la mquina, nombre corto del host, y el nombre del host completo. El seudnimo comprende la primera parte del camino para el acceso a un recurso, como un servlet. Por ejemplo, localhost:80 en la peticin http://localhost:80/servlet/snoop. Los hosts virtuales le permiten al administrador aislar y manejar independientemente los mltiples grupos de recursos en la misma mquina fsica.

Captulo 9

Introduccin al Servidor Tomcat 5.0


9.1. Descripcin

Tomcat (tambin llamado Jakarta Tomcat o Apache Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especicaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems.

9.2.

Entorno

Tomcat es un servidor web con soporte de servlets y JSPs. Tomcat no es un servidor de aplicaciones, como JBoss o JOnAS. Incluye el compilador Jasper, que compila JSPs convirtindolas en servlets. El motor de servlets de Tomcat a menudo se presenta en combinacin con el servidor Web Apache. Tomcat puede funcionar como servidor web por s mismo. En sus inicios existi la percepcin de que el uso de Tomcat de forma autnoma era slo recomendable para entornos de desarrollo y entornos con requisitos mnimos de velocidad y gestin de transacciones. Hoy en da ya no existe esa percepcin y Tomcat es usado como servidor Web autnomo en entornos con alto nivel de trco y alta disponibilidad. 225

226

CAPTULO 9. TOMCAT

Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la mquina virtual Java.

9.3.

Estado de su Desarrollo

Tomcat es mantenido y desarrollado por miembros de la Apache Software Foundation y voluntarios independientes. Los usuarios disponen de libre acceso a su cdigo fuente y a su forma binaria en los trminos establecidos en la Apache Software Licence. Las primeras distribuciones de Tomcat fueron las versiones 3.0.x. Las versiones ms recientes son las 6.x, que implementan las especicaciones de Servlet 2.5 y de JSP 2.1. A partir de la versin 4.0, Jakarta Tomcat utiliza el contenedor de servlets Catalina.

9.4.

Estructura de Directorios

La jerarqua de directorios de instalacin de Tomcat incluye: bin - arranque, cierre, y otros scripts y ejecutables. common - clases comunes que pueden utilizar Catalina y las aplicaciones web. conf - cheros XML y los correspondientes DTD para la conguracin de Tomcat. logs - logs de Catalina y de las aplicaciones. server - clases utilizadas solamente por Catalina. shared - clases compartidas por todas las aplicaciones web. webapps - directorio que contiene las aplicaciones web. work - almacenamiento temporal de cheros y directorios.

9.5.

Caractersticas del Producto


Tomcat 3.x (distribucin inicial)

9.6. HISTORIA

227

Implementado a partir de las especicaciones Servlet 2.2 y JSP 1.1. Recarga de servlets. Funciones bsicas HTTP. Tomcat 4.x Implementado a partir de las especicaciones Servlet 2.3 y JSP 1.2. Contenedor de servlets rediseado como Catalina. Motor JSP rediseado con Jasper. Conector Coyote. Java Management Extensions (JMX), JSP Y administracin basada en Struts. Tomcat 5.x Implementado a partir de las especicaciones Servlet 2.4 y JSP 2.0. Recoleccin de basura reducida. Capa envolvente nativa para Windows y Unix para la integracin de las plataformas. Anlisis rpido JSP. Tomcat 6.x Implementado de Servlet 2.5 y JSP 2.1. Soporte para Unied Expression Language 2.1. Diseado para funcionar en Java SE 5.0 y posteriores. Soporte para Comet a travs de la interfaz CometProcessor.

9.6.

Historia

Tomcat empez siendo una implementacin de la especicacin de los servlets comenzada por James Duncan Davidson, que trabajaba como arquitecto de software en Sun Microsystems y que posteriormente ayud a hacer al proyecto de cdigo abierto y en su donacin a la Apache Software Foundation. Duncan Davidson inicialmente esperaba que el proyecto se convirtiese en software de cdigo abierto y dado que la mayora de los proyectos de este tipo

228

CAPTULO 9. TOMCAT

tienen libros de OReilly asociados con un animal en la portada, quiso ponerle al proyecto nombre de animal. Eligi Tomcat (gato), pretendiendo representar la capacidad de cuidarse por s mismo, de ser independiente.

Captulo 10

NetBeans 6.7.1
10.1. Introduccin

El NetBeans IDE es de cdigo abierto entorno de desarrollo integrado de una base en la plataforma NetBeans y ha sido escrito completamente en lenguaje Java. El IDE NetBeans apoya el desarrollo de todo tipo de aplicaciones Java (como Java SE , web, EJB y Java ME aplicaciones mviles). Entre otras caractersticas clave son un sistema de proyectos basado en Apache Ant, control de versiones, y herramientas de refactorizacin. Para el desarrollo mvil, NetBeans proporciona muchas desarrollo rpido de aplicaciones (RAD) funciones, como un diseador visual de ujo, diseador visual de formularios, y herramientas para el desarrollo multitarget. Para habilitar el uso de NetBeans para construir aplicaciones mviles Java para dispositivos, Nokia ha prestado apoyo para el mismo en muchas de las series 40 y S60 SDK , incluyendo todos los ltimos de la Serie 40 5 a Edicin y S60 3rd Edition SDK. Los desarrolladores de aplicaciones mviles Java para dispositivos tambin podra estar interesado en UML plug-in. Este plug-in permite a los desarrolladores disear diagramas UML como diagramas de clase y para sincronizar el cdigo con ellos. El UML plug-in est disponible en el paquete Todo NetBeans o se pueden cargar en el IDE de NetBeans utilizando el plug-in de administrador (si selecciona Herramientas -> Complementos en el men). 229

230

CAPTULO 10. NETBEANS

10.2.

Qu hay de nuevo en 6.7.1?

NetBeans IDE 6.7.1 es una actualizacin menor de NetBeans IDE 6.7 e incluye los siguientes cambios: La disponibilidad de los ltimos IDE incluido con JavaFX SDK 1.2.1. Numerosas correcciones de errores de la comunidad nominado incluido en el parche 1 para NetBeans IDE 6.7. Las siguientes actualizaciones de versin 6.5.1 incluye en la versin 6.7 tambin se aplican a 6.7.1. Maven ayuda a la creacin de plugins y servicios web, as como el apoyo a POM y J2EE. Kenai integracin permite la creacin y edicin de Kenai proyectos alojados desde el IDE. C + + soporte para el perl, la biblioteca Qt, la refactorizacin de cdigo y expansin de macro. Web API Gateway plug-in permite el consumo de APIs en aplicaciones Web. Java ME apoyo a proyectos de los CDC en el paquete SDK Java ME 3.0. Tecnologas Soportadas NetBeans IDE 6.7.1 soporta las siguientes tecnologas y ha sido probado con los siguientes servidores de aplicaciones.

10.2.1.

Tecnologas compatibles:

Java EE 5 y J2EE 1.4. JavaFX 1.2.1. Java ME SDK 3.0. Struts 1.2.9.

10.2. QU HAY DE NUEVO EN 6.7.1?

231

Spring 2.5 . Hibernate 3.2.5. API Java para Servicios Web REST (JAX-RS) 1.0. Java API para XML basado en RPC (JAX-RPC) 1.6. PHP 5.2. Ruby 1.8. JRuby 1.2. Rails 2.1. Groovy 1.5. Grails 1.1. VCS CVS: 1.11.x, 1.12.x. Subversion: 1.3.x, 1.4.x, 1.5.x. Mercurial: 1.x. ClearCase V7.0.

10.2.2.

Servidores de Aplicaciones:

Sun Java System Application Server 9.0 (GlassFish V1). Sun GlassFish Enterprise Server v2.1.1 (GlassFish V2.1.1). Sun GlassFish Enterprise Server v3 Prelude. Sun Java System Application Server PE 8.2. Tomcat 5.5. Tomcat 6.0.18. JBoss 4.0.4. WebLogic 9.2. WebLogic 10.

232

CAPTULO 10. NETBEANS

10.2.3.

Requisitos del Sistema

NetBeans IDE se ejecuta en sistemas operativos compatibles con la mquina virtual de Java (mquina virtual) y ha sido probado en las plataformas se enumeran a continuacin.

10.2.4.

Conguraciones de hardware mnimos

Microsoft Windows XP Professional SP3. Microsoft Windows Vista. Ubuntu 9.04. Solaris OS version 10 (SPARC). Solaris OS version 10 (x86/x64 Platform Edition). Macintosh OS X 10.5 Intel. Macintosh OS X 10.5 PPC.

10.2.5.

Software Necesario

NetBeans IDE se ejecuta en el Java SE Development Kit (JDK), que consiste en el entorno de ejecucin de Java y herramientas de desarrollo para compilar, depurar y ejecutar aplicaciones escritas en el lenguaje Java. El JDK prueba para esta versin son: JDK 6 Update 14. JDK 5 Update 19.

10.2.6.

Compatibilidad

La primera vez que ejecute el IDE, puede importar un subconjunto de la conguracin que utiliz en anteriores versiones de NetBeans IDE. Si se decide no importar la conguracin de una versin anterior, el IDE se abre con la conguracin predeterminada.

10.3. NETBEANS Y LAS APLICACIONES MOVILES

233

10.3.

Caractersticas de NetBeans para el Desarrollo de Aplicaciones Mviles Java

Las siguientes son algunas de las principales caractersticas: Diseador de aplicaciones de ujo. Diseador de la pantalla. Analizador de cdigo. Un sistema de construccin modular. Aplicacin portar apoyo. Asistente de conexin inalmbrica (disponible en el paquete de todo). Escalable 2D Vector Graphics API para J2ME
TM

(JSR 226) de apoyo.

Varias opciones de despliegue, incluyendo el despliegue de un dispositivo Nokia con Nokia PC Suite. Apoyo a proyectos. Herramientas integradas de desarrollo. J2MEUnit la realizacin de anlisis. Integrado la ofuscacin y el apoyo de optimizacin.

10.4.

SDK de Nokia S60

Cmo instalar el SDK de Nokia S60 en NetBeans para el desarrollo J2ME Despus de instalar el SDK de Nokia S60, puesta en marcha de NetBeans, debe hacer clic en el men Herramientas | Plataformas Java. Usted debe obtener un cuadro de dilogo que se muestra en la gura 10.1 de la pgina 234. Haga clic en la plataforma Java MIDP ME emulador. Luego haga clic en Siguiente.

234

CAPTULO 10. NETBEANS

Figura 10.1: Aadir Platforma Java

Despus de hacer clic en Siguiente, se le pedir la ubicacin de la carpeta de la plataforma Java que desee agregar. En este caso, hay que seleccionar el directorio donde instalaste el Nokia S60 SDK para J2ME. Como se muestra en la pantalla de ejemplo siguiente, lo he instalado en C: \ S60. Slo tienes que seleccionar el directorio donde se instal el SDK de Nokia S60 en su caso si usted tiene instalado en otro directorio. Una vez que haga clic en Buscar, el IDE NetBeans agregar un directorio en la lista donde se ha detectado una vlida plataforma Java. Usted debe asegurarse de que la casilla est seleccionada y haga clic en Siguiente. NetBeans luego de detectar las conguraciones vlidas y dispositivos instalados en el directorio seleccionado. Una vez que NetBeans ha terminado, ver la conguracin detectado en el cuadro de dilogo. Seleccione la plataforma J2ME detectado y haga clic en Finalizar. En este punto, se ha instalado soporte para el SDK de Nokia S60 para J2ME en NetBeans IDE.

10.5. NUEVO PROYECTO UTILIZANDO J2ME

235

10.5.

Creacin de un Nuevo Proyecto Java ME con NetBeans

Para crear un nuevo proyecto, seleccione Archivo -> Nuevo proyecto ... en el men de NetBeans o utilizar las teclas Ctrl + Maysculas + N atajo de teclado. La ventana que se muestra en la gura sigiente 10.2 de la pagna 235 se abrir.

Figura 10.2: Ventana: Nuevo Proyecto.

Debe elegir Java ME en la lista Categoras y, a continuacin de aplicaciones mviles de la lista de proyectos. Al seleccionar el botn Siguiente se abre el dilogo que se muestra en la siguiente gura 11.35 de la pagna 279.

Nombre del proyecto y elija una ubicacin en el sistema de archivos en el que se almacenara. Tenga en cuenta la opcin Crear Hola MIDlet. Al elegir esta opcin crear un simple "Hello World"de estilo, pero lo ms importante, se abrir la aplicacin para que utilice los diseadores visuales para el ujo de aplicaciones y diseos de pantalla. Una vez ms, seleccione el botn Siguiente,

236

CAPTULO 10. NETBEANS

Figura 10.3: Ventana: Nombre y Localizacin.

y el dilogo que se muestra en la gura siguiente 11.36 de la pagna 279 se abre. Si la opcin Crear Hola MIDlet no est seleccionada, tendr que crear un MIDlet mismo despus de que el proyecto se ha creado. Para ello, vaya a Archivo -> Nuevo archivo ..., seleccione MIDP en la lista Categoras y MIDlet en la lista Tipos de archivo. Pulse Siguiente, dele a su MIDlet un nombre y pulse Finalizar. Ahora selecciona la Plataforma emulador ser la aplicacin codicada . Se puede utilizar la mayora de los S60 y Series 40 SDK. En este caso, el S60 3rd Edition Feature Pack 2 SDK para Symbian OS, para Java ha sido seleccionado. En esta etapa, el dispositivo S60Emulator es seleccionado para permitir la inspeccin de la aplicacin en un PC, utilizando el emulador suministrado en el kit SDK. Una vez ms, seleccione Siguiente, y el siguiente cuadro de dilogo que se muestra en la gura 11.38 de la pagna 280 es: Este dilogo permite conguraciones adicionales que se agregan a un proyecto. Debe seleccionar Finalizar para completar el Asistente para nuevo proyecto.

Figura 10.4: Ventana: Seleccin de la Plataforma.

Figura 10.5: Ventana: Conguracin Adicional.

238

CAPTULO 10. NETBEANS

Captulo 11

Descripcin de la Aplicacin
11.1. Introduccin

El presente trabajo consiste en la creacin de una aplicacin con software de Computacin Mvil Multiplataforma, que permita el acceso a informacin situada en bases de datos multiplataforma en un servidor Web, a travs de dispositivos mviles tales como telfonos celulares. El objetivo de la aplicacin es la automatizacin de servicios orientados al cliente, para que los mismos sean accesibles a travs de telfonos celulares y estn disponibles en la Web, ya que los clientes cada vez requieren aplicaciones de este tipo, que estn siempre disponible en cualquier momento y en cualquier lugar. Se trata de un sistema orientado a actividades de venta de Medicamentos de venta libre y productos de la secin de perfumeria de una entidad farmacutica. Para el desarrollo del trabajo se utiliz el lenguaje de programacin Java JSE y su extensin J2ME, debido a que sus caractersticas lo hacen adecuado para el propsito planteado: seguridad, robustez y sobre todo, portabilidad. La variedad de dispositivos existentes en el mercado condiciona que la aplicacin deba ser compatible con todos ellos. Como es conocido, la portabilidad es una de las caractersticas inherentes al lenguaje Java. Como se ha visto en el captulo cinco las tecnologas Java se agrupan en varias familias, cada una de ellas adecuada para el desarrollo de distintos tipos 239

240

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

de aplicaciones: Java 2 Standard Edition (J2SE): Orientada a ordenadores de sobremesa (aplicaciones de usuario, applets, etc.). Java 2 Enterprise Edition (J2EE): Orientada al desarrollo de aplicaciones para servidores utilizados en un entorno empresarial. Incluye la clase Servlet para el desarrollo de aplicaciones en el servidor. Java 2 Micro Edition (J2ME : Es un subconjunto de J2SE orientado al desarrollo de aplicaciones Java destinadas a dispositivos con pocos recursos y capacidades restringidas, como telfonos mviles o asistentes personales digitales (PDAs). Incluye la clase MIDlet para el desarrollo de aplicaciones en el cliente.

11.2.

Estructuracin

El sistema est compuesto por dos mdulos principales, uno mvil que correr en un celular el cual se lo ha llamado Farmia Corrientes Movil, y otro Web al cual se lo ha llamado Farmacia Corrientes. Se ha desarrollado tambin un tercer mdulo que simula ser el sitio web de una farmacia cticia llamado Farmacia Corrientes en Lnea para completar el ideal de lo que debera ser un sistema para una farmacia. El sistema est pensado para que trabaje con distintos tipos de perles de usuario, donde cada perl tendr funciones especcas de acuerdo al tipo de usuario. A continuacin se vern los distintos perles de usuario y a qu mdulos pertenecen: Mdulo Farmacia Corrientes: Administrador. Farmacutico. Mdulo Mvil Farmacia Corrientes Mvil: Cliente Mvil.

11.3. ESTRUCTURACIN

241

Mdulo Farmacia Corrientes en linea: Cliente Web. Usuario on line. El sistema est pensado de forma tal que pueda ser utilizado por distintos usuarios con distintos privilegios. A continuacin se detallan los perles usuarios que se contemplan: Administrador. Farmacutico. Cliente. Web. Mvil. Usuario on line. Cada uno de estos perles determina las funciones que estn disponibles para el usuario. En el caso de uso que muestra la g. 11.1 de la pg. 242 se puede apreciar a grandes rasgos qu funciones del sistema se encuentran disponibles de acuerdo al tipo de usuario.

11.3.

Estructuracin

La aplicacin est estructurada en dos partes: La parte Web que est desarrollada en el lenguaje Java concretamente J2SE que corre en un servidor Web y se accede a travs de un navegador de Internet. La parte mvil que se encuentra desarrollada tambin en el lenguaje Java, especcamente en J2ME (Java 2 Micro Edition), sta corre en el dispositivo mvil (celular ) y por lo tanto debe descargarse e instalarse en el dispositivo en cuestin.

242

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.1: Caso de Uso del Sitema.

11.3. ESTRUCTURACIN

243

11.3.1.

La Aplicacin Mvil (Farmacia Corrientes Mvil)

Para el desarrollo mvil se opt por usar el modelo cliente / servidor como se ve en la g. 11.2 de la pg. 243.

Figura 11.2: Arquitectura del Sistema. En donde: Gestin de datos: Comprende la parte de la aplicacin encargada del acceso a la base de datos para recuperar la informacin solicitada desde el dispositivo mvil. Emplea JDBC (Java Database Connectivity) como nivel intermedio entre esta capa y la siguiente. De esta forma, un cambio en el gestor de la base de datos empleado no requerir modicaciones en la aplicacin, sino que slo ser necesario sustituir el driver JDBC por otro apropiado para el nuevo gestor.

244

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Lgica de negocio: Esta capa contiene los servlets de Java que recibe e interpreta las peticiones del cliente y genera las consultas a la base de datos, devolviendo la informacin solicitada. Capa presentacin: incluye el cdigo Java 2ME ejecutado en el dispositivo mvil. La clase MIDlet es la clase general de toda aplicacin mvil, como se desarrolla con la conguracin CLDC y el perl MIDP. La aplicacin contiene a la clase Pantalla que hereda de MIDlet, por lo tanto es un Midlet. Esta clase Pantalla es la clase principal que maneja todo el comportamiento de la aplicacin, iniciar la aplicacin, pausar la aplicacin, destruir la aplicacin y gestionar las pantallas que se muestran.

La Aplicacin Mvil en Funcionamiento El interfaz grco de Farmacia Corrientes Mvil es una interfaz simple, permite una fcil interaccin con el usuario, es estndar para todos los terminales mviles que soportan J2ME. Por razones de que se trata de una aplicacin de negocios y para lograr la mayor portabilidad posible del aplicativo se eligi para desarrollar la interface de usuario las APIs de alto nivel, donde no se tiene un control total del aspecto de los controles, su esttica depende exclusivamente del dispositivo donde se ejecute. Para ms informacin acerca de interfaces grcas ver captulo cinco (J2ME ). Otro aspecto muy interesante a la hora de desarrollar una aplicacin mvil utilizando J2ME es poder almacenar localmente cierta informacin til en el telfono celular para no tener que volver a realizar una peticin al servidor sobre datos solicitados anteriormente. Farmacia Corrientes Mvil posee conectividad con un servidor Web, para lograr esto utiliza Internet mvil y la tecnologa GPRS (General Packet Ratio Service) donde no se factura al usuario por tiempo de conexin, sino por datos enviados y recibidos. Por lo tanto la aplicacin minimiza el intercambio de datos, intercambiando solamente datos puros. Esto quiere decir que el terminal mvil debe poseer conectividad a Internet como requisito para poder utilizar el sistema y por

11.3. ESTRUCTURACIN

245

supuesto poder ejecutar aplicaciones Java. Como se ha mencionado en el captulo seis (J2ME ) las aplicaciones que se desarrollan bajo la conguracin CLDC (Conected Limited Device Conguration) y el perl MIDP (Mobile Information Device Prole) se denominan MIDlets. Por lo tanto Farmacia Corrientes Mvil como se desarroll bajo la conguracin CLDC 1.1 y el perl MIDP 2.0 es un MIDlet. La g. 11.3 de la pg. 245 representa la pantalla principal de la aplicacin mvil, Farmacia Corrientes Mvil.

Figura 11.3: Pantalla Principal Farmacia Corrientes Movil. Esta pantalla (pantalla principal ) permanece activa hasta que el usuario presione el comando iniciar. Al presionar el comando iniciar inmediatamente se presenta al usuario el Inicio del sistema que cuenta con los siguientes tems: INICIAR SESIN.

246

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

CONFIGURACIN. AYUDA. SALIR. Iniciar sesin: En este tem la aplicacin trabajar en modo on-line, solicitando previamente autenticacin del usuario a travs de un nombre cliente y contrasea, donde stos son entregados al usuario al registrarse en el sistema Farmacia Corrientes en linea. Conguracin: Esta opcin es til para poder congurar la url nica donde reside el servidor por ejemplo, http://www.servidorFarmaciaCorrientesenlinea.com , esta informacin se guarda en el almacenamiento persistente del mvil. Antes de utilizar cualquier opcin se debe primeramente cargar este valor. Ayuda: Como su nombre lo indica, esta opcin brinda informacin acerca de la utilizacin de Farmacia Corrientes Mvil. Salir : Esta opcin permite al usuario salir de la aplicacin. Lo anteriormente mencionado se puede observar en la g. 11.4 de la pg. 247. Iniciar Sesin Para acceder o iniciar sesin se debe completar un nombre del cliente y contrasea e intentar conectarse. Para ello se le muestra al usuario la pantalla de la g. 11.5 de la pg. 248, donde antes de ser enviados los datos son validados localmente, por ejemplo si se intenta enviar nombre cliente y contrasea vacas o si la contrasea posee menos de ocho caracteres. La aplicacin le avisar al usuario a travs de alertas en caso de que ocurran algunos de los casos mencionados. La g. 11.5 de la pg. 248 muestra la pantalla de ingreso y cmo la aplicacin avisa al usuario de determinados errores. Una vez que los datos sean ingresados correctamente sern enviados al servidor, donde tambin son validados por el mismo, se puede decir que existe una validacin en las dos partes, en el cliente (MIDlet) y en el servidor (Servlet).

11.3. ESTRUCTURACIN

247

Figura 11.4: Inicio.

248

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.5: Pantallas de Ingreso al Sistema.

11.3. ESTRUCTURACIN

249

Mientras los datos son enviados y procesados por el servidor, el aplicactivo muestra una pantalla informndole al usuario que se est realizando la conexin. En la g. 11.6 de la pg. 249 se puede ver la pantalla mencionada.

Figura 11.6: Pantalla Conectando La clase Servlet es la encargada de realizar la conexin a la base de datos y corroborar que los datos recibidos son realmente iguales a los datos almacenados en la base. Luego del proceso de bsqueda y vericacin el Servlet enva al celular un error (en la g. 11.7 de la pg. 250 se puede ver la pantalla) o bien la informacin del cliente otorgndole de esta manera la posibilidad de poder observar el Catlogo. Luego de realizar la autenticacin del usuario, si resulta satisfactoria se recibe la informacin del cliente con los siguientes datos: Nmero de cliente. Nmero de documento.

250

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.7: Pantalla Error. Nombre y Apellido. Direccin. En una pantalla se muestra esta informacin del cliente, la misma se puede apreciar en la g. 11.8 de la pg. 251. En una pantalla posterior el usuario puede visualizar la pantalla Catlogo (ver g. 11.9 de la pg. 252) con los ditintos rubros que dispone para operar en una lista. Pantalla Catlogo A la pantalla Catalogo (ver g. 11.9 de la pg. 252) se puede acceder de dos formar: Seleccionando la opcion Siguiente en la pantalla Datos del Cliente.

11.3. ESTRUCTURACIN

251

Figura 11.8: Pantalla Datos del Cliente.

252

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

O una vez iniciada la sesin, en la pantalla Inicio aparecer otro elemento en la lista que es CATALOGO (ver g.11.10 de la pg 253).

Figura 11.9: Pantalla Catalogo(Rubros). Al seleccionar uno de los rubros, se presenta una nueva pantalla en donde podr seleccionar la forma de busqueda (ver g. 11.11 de la pg. 254 Pantalla Marca / Nombre). En el mrgen superior de la pantalla mencionada se podr observar el rubro que fue seleccionado. Una vez seleccionada la forma de bsqueda aparecer una nueva pantalla en donde se encontrarn despleagados los datos sujetos a la seleccin anterior. Por ejemplo si la forma de bsqueda es Marca se desplegar la pantalla Seleccione Marca que se muestra en la gura 11.11 de la pgina 254. Las opciones disponibles para la pantalla Catlogo - Selccione Marca son: Aceptar:

11.3. ESTRUCTURACIN

253

Figura 11.10: Inicio 2.

254

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.11: Catalogo.

11.3. ESTRUCTURACIN

255

Al seleccionar la opcin Aceptar de la pantalla Seleccione Marca que se muestra en la gura 11.11 de la pgina 254 se desplegar la pantalla Seleccione Presentacin (ver g. 11.11 de la pg. 254). Volver: Selecionando esta opcin se vuelve a la pantalla Marca / Nombre que se muestra en la gura 11.11 de la pgina 254. Inicio: Sselecionando esta opcin se vuelve a la pantalla que se muestra en la gura 11.10 de la pgina 253. Las opciones disponibles para la pantalla Catlogo - Seleccione Presentacin son: Ver Descripcin: La opcin Ver Descripcin es importante en aquellos dispositivos mviles que tienen limitaciones para desplegar la totalidad de la informacion en un ChoiceGroup. S se selecciona esta opcin se desplegar la Pantalla Descricpcin, en la cual se podr observar de manera ordenada los datos de la Presentacin seleccionada (ver g. 11.12 de la pg. 256).

Volver Selecionando esta opcin se vuelve a la pantalla Seleccione Marca que se muestra en la gura 11.11 de la pgina 254. Inicio Selecionando esta opcin se vuelve a la pantalla que se muestra en la gura 11.10 de la pgina 253. Comprar.

256

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.12: Pantalla Descripcin de la Presentacin. Si se selecciona la opcin Comprar aparecer la pantalla Descripcin de la Compra. En la gura 11.13 de la pgina 257 mustra la pantalla antes mencionada, junto con el alerta en caso de que no se haya ingresado la cantidad del producto y/o medicamento. Pantalla Descripcin de la Compra Las opciones disponibles para la pantalla Descripcin de la Compra son: Seguir Comprando: Selecionando esta opcin se vuelve a la pantalla que se muestra en la gura 11.9 de la pgina 252, permitiendo de esta manera que pueda seleccionar otro producto o medicamento. Finalizar Compra:

11.3. ESTRUCTURACIN

257

Figura 11.13: Pantalla Descripcin de la Compra. Seleccionando esta opcin se despliega la pantalla Carrito. La misma se puede observar en la gura 11.14 de la pgina 11.14. Cancelar Compra: Selecionando esta opcin se vuelve a la pantalla que se muestra en la gura 11.10 de la pgina 253. Pantalla Carrito En esta pantalla Carrito (ver g. 11.14 de la pg 11.14) el cliente debe conrmar su compra. Seleccionando todos los productos y/o medicamentos que le interese comprar. Las opciones disponibles para la pantalla Carrito son: Continuar:

258

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.14: Pantalla Carrito.

11.3. ESTRUCTURACIN

259

Selecionando esta opcin se despliega la pantalla Forma de Pago que se muestra en la gura 11.15 de la pgina 260. Ver Descripcin: La opcin Ver Descripcin es importante en aquellos dispositivos mviles que tienen limitaciones para desplegar la totalidad de la informacin en un ChoiceGroup. S se selecciona esta opcin se desplegar la Pantalla Descricpcin, en la cual se podr observar de manera ordenada los datos de la Presentacin seleccionada (ver g. 11.12 de la pg. 256). Cancelar Compra: Selecionando esta opcin se vuelve a la pantalla que se muestra en la gura 11.10 de la pgina 253. Pantalla Forma de Pago En en el margen superior de la pantalla se puede observar el total de la compra, debajo de ste se debe seleccionar la forma de pago. Las Formas de Pagos son: Cuentas Corrientes que son otorgadas a los clientes por medio del sistema Farmacia Corrientes (ver g. 11.15 de la pg 11.15). Tarjeta de Crdito. Las opciones disponibles para la pantalla Forma de Pago son: Enviar. Si se selecciona esta opcin los datos son enviados para ser procesados y poder facturar. A continuacion de despliega una pantalla informativa con los datos mas relevantes de la factura (ver g. 11.16 de la pg. 261). Cancelar Compra. Selecionando esta opcin se vuelve a la pantalla que se muestra en la gura 11.10 de la pgina 253.

260

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.15: Pantalla Forma de Pago.

11.3. ESTRUCTURACIN

261

Figura 11.16: Pantalla Datos Relevantes de la Factura.

262

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Conguracin Como se mencion anteriormente lo primero que debe hacer el usuario del sistema para poder utilizar Farmacia Corrientes Movil es congurar la direccin (url) del servidor para lograr una comunicacin satisfactoria, ya que el servidor alberga a los servlets de Java que reciben las peticiones y hacen el proceso real de conectarse a la base de datos, solicitar informacin y vericar si es un cliente vlido. Para poder realizar esta tarea el usuario debe seleccionar la opcin conguracin, en ese instante se mostrar la siguiente pantalla del sistema que se ve en la g. 11.17 de la pg. 262.

Figura 11.17: Pantalla para Congurar la URL del Servidor. Esta informacin quedar guardada en la base de datos del celular y podr ser modicada en cualquier momento que se desee. Una vez que se tiene congurado correctamente la direccin del servidor se puede lograr la comunicacin con el mismo. Se debe proporcionar los datos

11.3. ESTRUCTURACIN

263

de acceso (nombre del cliente y contrasea). Ayuda Este mdulo est destinado a brindarle al usuario un texto informativo sinttico acerca de cmo utilizar la aplicacin mvil. En la g. 11.18 de la pg. 263 se puede observar la pantalla de ayuda.

Figura 11.18: Pantalla Ayuda. Bsicamente brinda informacin introductoria al sistema, e instrucciones para operar el aplicativo, como ser:

La conguracin del URL del servidor. Cmo iniciar sesin en el sistema. Cules son los tipos de operaciones disponibles para que el cliente pueda realizar su compra.

264

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

11.3.2.

La Aplicacin Web

Se desarroll con el lenguaje Java, utilizando la tecnologa de Servlet , la misma posee acceso a una base de datos que contiene la informacin que maneja la aplicacin. Esta base de datos se encuentra manejada por el motor DB2 Express-C version 9.7 de IBM. Para ms informacin acerca de DB2 remitirse al captulo siete.

Pantallas de la Aplicacin Web El sistema est dividido en dos perspectivas:

La perspectiva orientada al cliente que pueden acceder los mismos a travs de la Internet, llamada Farmacia Corrientes en linea. La perspectiva orientada al operador / Administrador donde se accede a travs de la Intranet, llamada Farmacia Corrientes.

Del Lado del Cliente (Farmacia Corrientes en lnea) En esta parte de la aplicacin el usuario tiene disponibles casi las mismas opciones que se utilizan en la aplicacin mvil, con algunas opciones adicionales como por ejemplo poder visualizar en qu consiste la aplicacin mvil (Mobile Banking), la posibilidad de poder descargarla e instalarla en el telfono celular y poder gestionar sus datos. Esta porcin de la aplicacin automatiza la gestin de ventas de productos y/o medicamentos, brindndole al cliente una alternativa para realizar sus compras, sin la necesidad de recurrir a la entidad farmacutica, pudiendo adems el cliente acceder al sistema las 24 hs. del da. Usuario on line A continuacin se muestra en la g. 11.19 de la pg. 265 la pgina Inicio del sitio.

11.3. ESTRUCTURACIN

265

Figura 11.19: Inicio. La pgina Inicio cuenta con las siguientes secciones: Inicio. Quines Somos. Catlogo. Registrarse. Contacto. Quines Somos: En esta pestaa se podr obeservar de manera breve la informacion pertinente a la entidad farmacutica (ver gura 11.20 de la pgina 266).

266

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.20: Pestaa Quienes Somos. Catalgo: En esta pestaa (ver g. 11.21 de la pg. 267) cualquier usuario on line podra tener acceso a la visualizacion de los productos y/o medicamentos, en caracter de promocionar los mismos. Al seleccionar un item de cualquiera de las listas y presionar el botn Ver se pasara a la siguiente pagina (ver g. 11.21 de la pg 267), en donde se desplegaran todos los productos con sus respectivas descripciones. Al presionar el botn Comprar si el usuario on line no es cliente de la farmacia, no podr realizar la compra. Se pasara a la pagina que se muestra en la gura 11.23 de la pgina 268. Si es cliente ingresa los datos solicitantes y podr comprar. Si no es cliente puede registrarse. Registrarse: Para que el usuario on line sea cliente de la farmacia lo que debe hacer es registrar sus datos (ver g. 11.24 de la pg. 268). Contacto: En esta pestaa (ver g. 11.25 de la pg 269) se podra obtener toda la informacin referente a la manera de contactarse con un representante

11.3. ESTRUCTURACIN

267

Figura 11.21: Catlogo.

Figura 11.22: Descripcin del Producto.

268

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.23: Cliente.

Figura 11.24: Registrarse.

11.3. ESTRUCTURACIN

269

de la farmacia.

Figura 11.25: Contacto. Para poder comprar el cliente debe ingresar sus datos de acceso, ingresando el cliente y una contrasea en la seccin Cuenta Cliente. La aplicacin del lado del cliente valida si se presion el botn ingresar y los campos del cliente y/o la contrasea estn vacos mediante el uso del lenguaje JavaScritpt. Cliente Web Validado Una vez que el cliente se haya validado en el sistema, dispone de un men con las siguientes opciones: Inicio. Quines Somos. Catlogo.

270

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Ver Carrito. Contacto. Farmacia Mvil. Las pestaas Inicio, Quienes Somos y Contacto; son las mismas pestaas mencionadas anteriormente con la diferencia que la seccin Cliente es cambiada por Bienvenido en donde el cliente podr: ver su cuenta. Luego al seleccionar Mi Cuenta disponible es posible ver la informacin del cliente como ser: Apellido y Nombre. DNI. Fecha de Nacimiento. Direccin. Nro. de Telfono. Nro. de Celular. E-mail Nombre del Cliente. Contrasea.

Adems se puede modicar los datos del Cliente. Desconectarse. En la gura de la pgina que se muestra en la gura 11.26 de la pgina 271 marcada con un cuadro rojo se puede observar la seccin Bienvenido. Catlogo: La pgina Catlogo es la misma que se mencion antes con la diferencia que si el cliente est logueado y presiona el botn comprar se pasar a la pgina Mi Carrito que se muestra en la gura 11.27 de la pgina 272. El cliente puede realizar las siguientes acciones sobre la pgina Mi Carrito: Presionar el botn X Se elimira el producto del Carrito.

11.3. ESTRUCTURACIN

271

Figura 11.26: Inicio (logueado por el cliente).

Presionar el botn Continuar Comprando. Se pasar a la pgina Catlogo para que el cliente continue con su compra.

Presionar el botn Realizar Pedido. Se pasar a la pgina Pedido (ver g. 11.28 de la pg. 272) para que el cliente seleccione la Forma de Pago.

272

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.27: Mi Carrito.

Figura 11.28: Pedido

11.3. ESTRUCTURACIN

273

El cliente puede realizar las siguientes acciones sobre la pgina Pedido: Seleccionar la forma de pago. Presionar el botn Cancelar. Presionar el botn Continuar. Se pasar a la pgina Factura Virtual (ver g. 11.29de la pg. 273). Como es una Factura Virtual no se puede utilizar como comprobante de pago.

Figura 11.29: Factura Virtual. Al presionar el botn Finalizar de la pgina Factura Virtual (ver g. 11.29de la pg. 273) se pasar a la pantalla Mensaje Fin de la Compra que se muestra en la gura 11.30 de la pgina 274. Ver Carrito: A travs de esta seccin del sistema, el cliente puede observar todos los productos y/o medicamentos que contiene su carrito. Como muestra la gura 11.27 de la pgina 272.

274

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.30: Mensaje Fin de la Compra

Farmacia Mvil : En esta pgina de la aplicacin se puede obtener informacin acerca de Farmacia Corrientes Mvil (aplicativo mvil), como ser en qu consiste, requisitos de los dispositivos para poder lanzar la aplicacin, qu operaciones se pueden realizar y tambin brinda un enlace que permite descargar el aplicativo en la PC para luego a travs de una conexin con el celular, ya sea bluetooth, cable USB o infrarrojos, se pueda instalar la aplicacin en el dispositivo celular en cuestin. Otra alternativa de descarga de Farmacia Corrientes Mvil es ingresando directamente en el navegador WAP del celular la direccin URL que muestra esta pgina, descargando as directamente el aplicativo en el celular sin tener que bajarlo en una PC. Este proceso demandar al usuario el costo por bytes recibidos de la aplicacin. En la g. 11.31 de la pg. 275 se muestra la ventana correspondiente a Farmacia Corrientes en lnea.

11.3. ESTRUCTURACIN

275

Figura 11.31: Farmacia Movil.

Del Lado del Operador / Administrador Esta perspectiva del sistema Farmacia Corrientes funciona como backend, est orientada a ser operada dentro de la Intranet para que pueda ser accedida por operadores para realizar tareas rutinarias de gestin y tambin por administradores para tareas similares y adems gestionar y auditar los movimientos diarios y tambin realizar tareas de mantenimiento del sistema. Se puede decir que es la base de las dems perspectivas, a partir de sta se crean las dems, ya que los clientes se deben dar de alta, crear sus cuentas corrientes en esta perspectiva. Adems se debe gestionar todo lo referido a los productos y/o medicamentos. Los usuarios que utilizarn esta parte del sistema deben existir como usuarios reales, esto quiere decir que algn administrador deber insertarlo a la base de datos de usuarios para poder operar en el sistema.

276

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

En la g. 11.32 de la pg. 276 se puede observar la ventana que corresponde a la pgina principal donde se solicitan datos de name y password para ingresar al sistema Farmacia Corrientes.

Figura 11.32: Inicio (Operador / Administrador). Administrador El men de opciones que brinda Farmacia Corrientes, si el que se ingreso es un Admistrador es el siguiente: Inicio. Inicio. LogOut. Productos. Nuevo Producto. Modicar.

11.3. ESTRUCTURACIN

277

Borrar. Consultar Productos. Consultar por Nombre. Usuarios. Nuevo Usuario. Modicar. Borrar. Consultar. Consultas. Consultar Clientes. Ira a Farmacia Corrientes en lnea. En la gura 11.33 de la pgina 277 se muestra la pgina de Inicio (Admistrador / Operador).

Figura 11.33: Inicio - Administrador.

278

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Productos A continuacin se explicar y mostrarn las funciones de la subsecin Nuevo Producto: En la primera pgina (ver gura 11.34 de la pgina 278) el administrador debe seleccionar el rubro del producto y/o medicamentos que desea dar de alta. Al presionar el botn siguiente se pasa a la siguiente pgina (ver gura 11.35 de la pgina 279) en donde debe seleccionar el nombre del producto. Una vez seleccionado el nombre del producto y presionar el botn siguiente se pasa a la pgina (ver gura 11.36 de la pgina 279) en donde se debe seleccionar la presentacin del producto. Al seleccionar la presentacin del producto y presionar el boton siguiente se pasa a la pgina (ver gura 11.37 de la pgina 280) en donde el administrador debe ingresar el precio unitario, monto y seleccionar la ruta en donde se encuentra la imagen del producto. Si la carga de los datos del producto fue sastifactoria se pasa a la pgina (ver gura 11.38 de la pgina 280) en donde se le informa al administrador que los datos fuern guardados con xito.

Figura 11.34: Nuevo Producto (pg1).

11.3. ESTRUCTURACIN

279

Figura 11.35: Nuevo Producto (pg2).

Figura 11.36: Nuevo Producto (pg. 3).

280

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Figura 11.37: Nuevo Producto (pg. 4).

Figura 11.38: Nuevo Producto (pg. 5).

11.3. ESTRUCTURACIN

281

Usuarios A continuacin se mostrarn las funciones de la subseccin Nuevo Usurio que se indican en la gura 11.39 de la pgina 281. El administrador debe ingresar todos los datos requeridos por la pgina, en caso de ingresar un dato errneo en un campo, mediante la utilizacin de javascript se le informa al administrador de su error.

Figura 11.39: Nuevo Usuario. Farmacutico El men de opciones que brinda Farmacia Corrientes si el que ingreso es un Farmacutico es el siguiente: Inicio. Inicio. LogOut. Cuentas Corrientes.

282

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

Nueva Cuenta. Modicar. Borrar. Consultar. Farmacutico. Editar. Consultar. Cuentas Corrientes La primer pgina que se le presenta al farmacutico al presionar subsecin Nueva Cuenta es la que se muestra en la gura 11.40 de la pgina 282, donde debe ingresar el DNI del cliente que desea crear una cuenta. Una vez validado el DNI del cliente, el farmacutico debe ingresar el monto lmite que tendr el cliente en la cuenta (ver gura 11.41 de la pg. 283). Luego de ingresar el monto se pasa a la pantalla (ver gura 11.42 de la pgina 283) en donde se ven reejados los datos del cliente y el monto cargado .

Figura 11.40: Nueva Cuenta (pg.1).

11.3. ESTRUCTURACIN

283

Figura 11.41: Nueva Cuenta (pg. 2).

Figura 11.42: Nueva Cuenta(pg. 3)

284

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

11.4.

Estructuras de Datos Utilizadas

El manejador de base de datos que utiliza el sistema es el DB2 Express-C version 9.7. A continuacin se describirn las tablas que conforman la base de datos. Tanto la aplicacin mvil como la aplicacin Web utilizan la misma base de datos, por lo tanto el manejador debe soportar concurrencia. En el grco 11.43 de la pg. 284 que corresponde a la ventana del centro de control de DB2 se puede apreciar la estructura de base que se utiliza.

Figura 11.43: Tablas que Integran la Base de Datos del Sistema.

11.4. ESTRUCTURAS DE DATOS UTILIZADAS

285

11.4.1.

Modelo de datos

La base de datos del sistema principal tiene por nombre TFASOFIA y las entidades que la componen son las siguientes (ver g. 11.44 de la pg 285):

Figura 11.44: Modelado de Datos Las tablas que integran la base de datos son las siguientes: USUARIO. TIPO_USUARIO. CUENTA. CUENTA_CORRIENTE. PRODUCTOS.

286

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

PRESENTACION. NOMBRE_PRO. MARCA_LAB. RUBRO. VENTAS. DETALLES_VENTAS. Ahora se vern los campos que conforman cada tabla. USUARIO: Contiene toda la informacin referente a los distintos usuarios registrados en la farmacia. Est compuesta por los siguientes campos de datos: USU_NYA: Contiene el apellido y el / los nombres del usuario. USU_DNI: Es el campo clave de la tabla. Almacena la informacin del nmero de documento del usuario. USU_DIR: Contiene la direccin real del usuario. USU_MAIL: Contiene la direccin de correo electrnico del usuario. USU_ID: Contiene el nmero nico del cliente, es un nmero generado por la aplicacin. USU_NAME: Almacena la informacin del usuario para ingreso al sistema. USU_PAS: Amacena la informacin de la contrasea secreta del usuario para el ingreso al sistema. USU_FEC: Contiene la fecha exacta de nacimiento del usuario. USU_TEL: Contiene el telfono del usuario. USU_CUIT: Contiene informacin a cerca del cuit del usuario. ID_TUSU: Es la clave fornea que relaciona la tabla Usuarios con la tabla Tipo_Usuario. TIPO_USUARIO: Contiene toda la informacin referente a los distintos tipos usuarios registrados en la farmacia. La tabla posee los siguientes campos de datos:

11.4. ESTRUCTURAS DE DATOS UTILIZADAS

287

ID_TUSU: Es el campo clave de la tabla. Contiene el nmero nico del tipo de usuario. TUSU_DES:Contiene la desccripcin del tipo de usuario. CUENTA: La tabla uentaontiene toda la informacin de la cuenta que posee el cliente. La tabla posee los siguientes campos de datos: NRO_CUE: Es el campo clave de la tabla. Contiene un nmero autogenerado que identica a la cuenta. USU_ID: Es la clave fornea que relaciona la tabla Cuenta con la tabla Rubro. ID_TUSU: Es la clave fornea que relaciona la tabla Cuenta con la tabla Tipo_usuario. Contiene el nmero nico del tipo de usuario (4= Cliente). CUE_MON: Contiene el monto limite que el Usuario puede utilizar. CUE_EST: Contiene un carcter que identica la activacin de la cuenta(A=activa; NA= no activa). CUANTA_CORRIENTES: La tabla cuenta_corrientes alberga los datos de las operaciones que se generan sobre las cuentas. La tabla contiene los siguientes campos de datos: ID_CC: Es el campo clave de la tabla. Contiene un nmero autogenerado que identica a la operacion. NRO_CUE: Contiene la identicacin nica de la cuenta. es un campo relacional a la tabla cuenta. TIPO: Contiene informacin del tipo de transaccin (extraccin, depsito, transferencia.) MONTO: Contiene el monto de la operacin. FECHA: Contiene la fecha que se realiz la operacin. PRODUCTOS. La tabla posee los siguientes campos de datos: ID_PRO: Es el campo clave de la tabla. Contiene un nmero autogenerado que identica al producto.

288

CAPTULO 11. DESCRIPCIN DE LA APLICACIN

ID_RUB: Es la clave fornea que relaciona la tabla Productos con la tabla Rubro. ID_NOM: Es la clave fornea que relaciona la tabla Productos con la tabla Nombre_Pro. ID_MAR: Es la clave fornea que relaciona la tabla Productos con la tabla Marca_Lab. ID_PRE: Es la clave fornea que relaciona la tabla Productos con la tabla Presentacion. PRO_PU: Contiene el precio unitario del producto. PRO_STOCK: Contiene el stock del producto. PRO_IMA: Contiene el nombre de la imagen. PRESENTACION. La tabla posee los siguientes campos de datos: ID_PRE: Es el campo clave de la tabla. Contiene un nmero autogenerado que identica a la presentacin PRE_DES: Contiene la descripcin de la presentacin. ID_RUB: Es la clave fornea que relaciona la tabla Presentacin con la tabla Rubro. ID_NOM: Es la clave fornea que relaciona la tabla Presentacin con la tabla Nombre_Pro. ID_MAR: Es la clave fornea que relaciona la tabla Presentacin con la tabla Marca_Lab. NOMBRE_PRO. La tabla posee los siguientes campos de datos: ID_NOM: Es el campo clave de la tabla. Contiene un nmero que identica a la nonbre del producto. NOM_DES: Contiene la descripcin de la nombre del producto. ID_RUB: Es la clave fornea que relaciona la tabla Nombre_Pro con la tabla Rubro. MARCA_LAB. La tabla posee los siguientes campos de datos:

11.4. ESTRUCTURAS DE DATOS UTILIZADAS

289

ID_MAR: Es el campo clave de la tabla. Contiene un nmero que identica a la Marca del Producto. MAR_DES: Contiene la descripcin de la marca del producto. ID_RUB: Es la clave fornea que relaciona la tabla Marca_Lab con la tabla Rubro. RUBRO. La tabla posee los siguientes campos de datos: ID_RUB: Es el campo clave de la tabla. Contiene un nmero que identica al rubro del producto. RUB_DES: Contiene la descripcin del rubro del producto. VENTAS. La tabla posee los siguientes campos de datos: ID_VEN: Es el campo clave de la tabla. Contiene un nmero autogenerado que identica a la venta. ID_USU: Es la clave fornea que relaciona la tabla Ventas con la tabla Usuario. VEN_FEC: Contiene la fecha en que se realizo la venta. VEN_HS: Contiene la hora en que se realizo la venta. VEN_TOTAL: Contiene el total de la venta. VEN_FP: Contiene la forma de pago de la venta. DETALLES_VENTAS. La tabla posee los siguientes campos de datos: ID_DVEN: Es el campo clave de la tabla. Contiene un nmero autogenerado que identica a la venta. IDVEN: Es la clave fornea que relaciona la tabla Detalles_ventas con la tabla Ventas. ID_PRO: Es la clave fornea que relaciona la tabla detalles_Ventas con la tabla Producto. DVEN_CANT: Contiene la cantidad del producto que se vendio.

Captulo 12

Conclusiones
12.1. Conclusiones Generales

Los dispositivos mviles y particularmente los telfonos celulares, hoy en da no son un lujo sino una necesidad. Prcticamente cada integrante de una familia ya dispone de un telfono celular con buenas capacidades grcas y de cmputo. Es por sto que las empresas estn trabajando para brindarles a sus clientes nuevos servicios para este tipo dispositivos. Los desarrollos de las nuevas tecnologas de la informacin y las comunicaciones (NTICs) en los ltimos aos impulsan la implantacin de sistemas distribuidos que puedan ser accedidos a travs de los telfonos celulares. Cuando se habla de tecnologas se reere a GSM, GPRS, WAP que permiten que un telfono celular pueda mantener conexiones de datos y poder consultar cualquier tipo de informacin que se encuentre en Internet, o interactuar con el servidor Web o aplicacin Web de la empresa. Como por ejemplo una farmacia. Las soluciones mviles estn mostrando sus benecios para la gestin de las empresas en la mejora de la productividad, en la creacin de nuevos servicios. En este trabajo se ha cumplido con el objetivo propuesto de desarrollar una aplicacin mvil que acceda a bases de datos multiplataforma, adicionalmente se desarroll tambin la aplicacin web a n de tener un sistema completo 291

292

CAPTULO 12. CONCLUSIONES

desarrollado. Se ha optado por emplear una tecnologa ampliamente extendida en la actualidad, y de la que cada vez aparecen un mayor nmero de dispositivos, de gama media-baja a un costo razonable. No se ha empleado ninguna caracterstica propia de ninguna de las marcas del mercado (Nokia, Motorola, Sony Ericsson), por lo que la aplicacin desarrollada es compatible con cualquier terminal que soporte la tecnologa Java. Se ha probado la aplicacin mvil desarrollada en distintos emuladores. Los mismos se detallan a continuacin: Emulador estndar de NetBeans. Nokia Series 60 5th Edition SDK for Symbian , Feature Pack 3. Sony Ericsson SDK 2.5.0.6. Tambin a lo largo del presente trabajo se ha probado la ejecucin del aplicativo en terminales reales. A continuacin se detalla el modelo: Nokia 2800. El resultado de las pruebas en los distintos emuladores y terminales reales cubri ampliamente las expectativas.

12.2.

Conclusiones Acerca de las Tecnologas y Software Utilizados

Se ha podido comprobar las grandes ventajas de la utilizacin de tecnologas y software, tanto de base de datos como del ambiente de desarrollo de aplicaciones. Con respecto al motor de bases de datos DB2, se debe destacar la escalabilidad, integridad y su facilidad de uso, disponiendo de intuitivos asistentes para la creacin de bases de datos, de tablas y la gran utilidad SQL asist que brinda un apoyo para realizar todo tipo de consultas SQL hacia las tablas.

12.3. LNEAS FUTURAS DE ACCIN

293

En cuanto a las facilidades en el entorno de desarrollo, se pudo apreciar que RAD posee un gran nmero de ventajas, al disponer de numerosas vistas, perspectivas y un editor de cdigo fuente inteligente apto para el desarrollo de este tipo de aplicaciones. Tambin se puede decir que RAD puede ser usado desde la Intranet de una organizacin y/o desde la Internet, con lo cual el sistema resulta ms eciente, ms exible y adaptable al cambio. Al ser accesible desde la Intranet se pudo realizar la comunicacin real de la aplicacin mvil con el servidor sin ningn tipo de inconvenientes. Cabe destacar el editor grco NetBeans, que utiliza el concepto de Drag and Drop para insertar elementos grcos en el mvil y las facilidades de este entorno para aadir nuevos dispositivos para las distintas pruebas del sistema. Con la utilizacin del lenguaje Java (J2ME ) se comprob la gran portabilidad que brinda al poder lanzar la aplicacin en distintos modelos y marcas de telfonos celulares. Asimismo se pudo apreciar las facilidades del Scientic WorkPlace para escribir libros, por la calidad del producto obtenido, la automatizacin en el manejo de ndices, la gestin dinmica de espacios, listas de guras, de tablas, referencias dinmicas a objetos, bibliografa, etc. Se destaca la gran potencialidad de este conjunto de herramientas para el desarrollo de aplicaciones de gran porte y alta complejidad, utilizables en una amplia gama de sistemas operativos y con diversos motores de bases de datos.

12.3.

Lneas Futuras de Accin

A continuacin se detallan las principales lneas futuras de accin del presente trabajo: Mejorar la seguridad del traco entre los dispositivos mviles y el servidor web mediante algoritmos de encriptacin. Desarrollar un mdulo basado en el servidor para la generacin de estadisticas de distinto tipo, las que podrn procesarse con software especico de tipo OLAP y con algoritmos de Minera de Datos.

Bibliografa
[1] L. J. Aguilar. Cibersociedad. Mac Graw-Hill, 1997. [2] L. J. Aguilar. Programacin Orientada a Objetos - Segunda Edicin. Mc Graw Hill/Interamericana de Espaa, S.A.U., Espaa, 1998. [3] L. Allende. Comercio Electrnico.Aspectos generales, normativos y contractuales. Revista El Derecho, 10 DE Julio 2001. [4] B. J. Carla Sadtler, John Ganci. WebSphere Product Family Overview and Architecture. IBM Press, USA, 2004. [5] E. De la Rica. Marketing en Internet. Anaya Multimedia, ESIC Editorial. Espaa, 1997. [6] I. G. Fernndez. Tesis doctoral: Modelo para comercio electrnico basados en sistemas intermediarios. Universidad Politcnica de Catalunya, 2001. [7] M. R. Firtman. Programacin para celulares. Mp Ediciones, Buenos Aires, Argentina, 2005. [8] J. C. P. Froufe Quintas Agustn. J2ME Java 2 Micro Edition Manual De Usuario y Tutorial. Alfaomega Grupo Editor Argentino S.A., 2004. [9] H. K. y. A. O. Halchmi, Z. Electronic Commerce. The Technion-Israel Institute of Technology, 1996. [10] IBM. WebSphere Comerse V5.5 Architecture. IBM Press, USA, 2003. [11] D. L. L. R. Martinez. Material de apoyo de la catedra Diseo y Administracin de Datos. Universidad Nacional del Nordeste, Corrientes, Argentina, 2006. [12] L. J. A. I. Z. Martnez. Estructura de Datos - Algoritmos, Abstraccin y Objetos. Mc Graw Hill/Interamericana de Espaa, S.A.U., Espaa, 1998. 295

296

BIBLIOGRAFA

[13] R. A. RAUL CHONG, IAN HAKES. Conociendo el DB2 Express-C. Copyright IBM Corporation, 2007, 2008, Abril 2008. [14] L. O. D. Sergio Glvez Rojas. Java a Tope: J2ME. Universidad de Mlaga, Mlaga, Espaa, 2004. [15] K. H. F. . S. S. Silberschatz, Abraham. Aprenda Servlets de Java como si estuviera en Segundo. Editorial McGraw-Hill, USA, 1993. [16] E. C. A. C. P. G. C. Solares. JAVA - Un Lenguaje de Programacin Multiplataforma para Internet. Paraninfo, Espaa, 1997. [17] A. S. Tanenbaum. Redes de Computadoras. Pearson Educacin, Mexico, 2003. [18] M.. T. U. Hansmann, L. Merk. Springer,Verlag, 2001. Pervasive Computing HandBook.

[19] VV.AA. Introduccin a las Bases de Datos. THOMSON PARANINFO, S.A., USA, 2005. [20] M. Weiser. The computer for the 21st century. Scientic American, San Francisco, CA, USA, 1991. [21] I. D. Yorio. Tesis de Magistratura:Identicacin y clasicacin de patrones en el diseo de aplicaciones mviles. Universidad Nacinal de la Plata.

ndice alfabtico
2.5G, 50 2G, 41 3G, 42, 50 bucles, 96 do while, 98 for, 97 while, 97

AIV Extender, 194 C/C++, 94 AMPS, 45 Advanced Mobile Phone System, caso de uso, 241 CDC, 126 41 Sistema Avanzado de Telefona Mvil, Conected Device Conguration, 123 CDMA, 42 43 Acceso Mltiple Por Divisin de AMS, 131, 132 Cdigo, 48 aplicacin, 239 celular, 262 Aplicaciones Ciclo del Conocimiento, 9 Mviles, 67 Clases de Conocimientos, 9 AWT, 127 CLDC, 126 B2B, 22, 26 Conected Limited Device CongB2C, 22, 26 uration, 122 B2G, 22 clientes, 19 Bases de Datos comentarios, 94 Introduccion, 185 comercio, 17, 23, 30, 31 Bases de Datos en Red electrnico, 19 Modelo, 190 comercio Bases de Datos Jerrquicas electrnico, 16 Modelo, 189 comercio electrnico, 24, 27, 28, 31, 32 Bases de Datos Relacional computacin pervasiva, 3 Modelo, 190 Computacion Ubicua, 3 bibliotecas de clases, 81 comunicaciones en J2ME, 170 bifurcaciones, 95 comunicaciones HTTP, 174 if, 95 comunicaciones inalmbricas, 56 if else, 96 comunicaciones mviles, 42 bloque try, catch, nally, 98 conguracin, 122, 125 297

298

NDICE ALFABTICO

conocieminto tcito, 9 conocimiento explcito, 9 contenedor cliente de aplicaciones de, 222 EJB de, 221 Web, 222

expresin, 94 FDM multiplexin por divisin de frecuencias, 48

Gestin del Conocimiento, 12 GFC, 173, 174 D-AMPS Generic Framework Conection, 170 Sistema Avanzado de Telefona DiGPRS, 42, 113, 244 gital, 45 Servicio de Radio de Paquetes GenDB2 erales, 50 Introduccion, 185 GSM, 26, 42, 50, 56 DB2 UDB Sistema Global Para ComunicaCaracteristicas Generales, 193 ciones Mviles, 46 Funciones Complementarias, 194 GUI, 222 DBMS Sistema de Administracin de Bases herencia, 86 de Datos, 187 hosts virtuales, 223 deniciones, 16 HTML, 54 DNS, 223 HTTP, 54 doGet (), 102, 105 HttpServletRequest, 102 doPost (), 105 HttpServletResponse, 102 EDGE Tasa de Datos Mejorada para la Evolucin del GSM, 50 EDI, 22, 29, 31 ejemplo de bifurcacin if, 95 bifurcacin if else, 96 bucle for, 97 bucle while, 97 comentario, 95 do while, 98 lnea compuesta por tres sentencias, 94 ejemplo de clase, 86 empresas, 20 enterprise beans, 221 estructuras de programacin, 94 IMTS, 44 Sistema Mejorado de Telefona Mvil, 43 instanciacin e inicializacin, 104 interfaz Connection, 173 InputConnection, 173 OutputConnection, 174 StreamConnection, 174 intermedarios, 34 Internet, 1, 15, 19, 32, 37, 51, 54 mvil, 244 internet, 32 Internet , 34 IT, 220 J2EE, 214, 218

NDICE ALFABTICO

299

Java 2 Enterprise Edition, 114 J2ME, 113 Java 2 Micro Edition, 113, 114, 118 J2SE Java 2 Standard Edition, 114 Java, 113 java, 79, 8184, 86, 88, 91, 92, 94, 95, 98, 99, 103, 106 estructura general de un programa, 84 javax.servlet.HttpServlet, 102 JCA, 220 JDBC, 222 JDK, 95 JNDI, 222 JSP, 222 jsp, 106, 109 juegos y aplicaciones, 53 JVM, 221 Java Virtual Machine, 114

Ocina de Telefona Mvil, 44 multi servidor, 219 multiplataforma, 82, 193 mundo mvil, 41 NetBens, 229 NTICs Nuevas Tecnologas de Informtica y Comunicaciones, 1 nuevas tecnologias, 1 OMA Open Mobile Alliance, 56 OOP, 84 operadores aritmticos, 91 de asignacin, 91 de concatenacin de cadenas de caracteres, 93

package, 87 packages, 85 PCS Ley de Moore y la Vision de Weiser, 6 Personal Communications Services, 41 M-Commerce Comercio Electrnico a Travs de perl, 125 plug-in, 221 Dispositivos Mviles, 26 proceso de formacin del conocimienm-commerce, 3 to, 8 memoria administrador automtico de la, 84 mensajes multimedia, 53 middleware, 219 MIDlet, 131, 134, 135, 156 MIDP, 126, 170 MMS, 65 Multimedia Messaging System, 53 MSC Centro de Conmutacin Mvil, 44 MTSO Quick Installation, 220 RAD, 205 Rational Application Developer, 205 record, 156 store, 156, 157 stores, 168, 169 RMS, 156, 158 Record Management System, 154 sentencia, 94

300

NDICE ALFABTICO

telefona celular, 42 Server telefona mvil, 43 Application Tomcat Advanced Edition, 218 Tomcat 5.0, 225 Enterprise Edition, 220 Standard Edition, 220 UMTS servicios de informacin, 52 Sistema Universal de Telecomuniservidor caciones Mviles, 49 de aplicaciones, 221 HTTP, 221 venta servlets, 99, 100, 102, 103, 105, 222 directa, 18 motor del, 104 ventajas, 19 sistema avanzado de telefona mvil, ventas 43 por catlogo, 18 sistemas mviles de segunda generacin, virtual 48 sistema principal, 222 SMS, 26, 53 Short Message System, 52 W-CDMA, 49 SMTP, 52 CDMA de Banda Ancha, 49 Sociedad de la Informacion y el Cono- WAP, 26, 54 cimiento wireless application protocol, 56 denicin, 7 WAS software mvil, 54 WebSphere Application Server, 216 WBML TCP/IP, 19, 56 Wireless Binary mark-up Language, TDM 60 multiplexin por divisin de tiem- Web Services, 219 po, 48 WebSphere TDMA, 42 Application Server, 217 telfonos WebSphere Application Server, 206 mviles, 3 WML, 55 telfonos celulares, 43, 67, 119 Wireless Mark-up Language, 60 telfonos mviles, 51 WWW, 19 telfonos mviles de primera generacin, 42 XHTML-MP, 62 telfonos mviles de segunda generacin,XML Extender, 194 45 telfonos mviles de tercera generacin, 49 telefona celular, 52 telefona mvil, 43

Vous aimerez peut-être aussi