SistemaWebconAccesoaBasesdeDatos...

322
Universidad Nacional del Nordeste Facultad de Ciencias Exactas, Naturales y Agrimensura Trabajo Final de Aplicación Sistema Web con Acceso a Bases de Datos Multiplataforma a Través de Teléfonos Celulares Sofia J. Vallejos - L.U.: 37.032 Prof. Coordinador: Agr. Castor Herrmann Prof. Orientador: Mgter. David Luis la Red Martínez. Licenciatura en Sistemas de Información Corrientes - Argentina 2010

Transcript of SistemaWebconAccesoaBasesdeDatos...

Page 1: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Universidad Nacional del NordesteFacultad de Ciencias Exactas, Naturales y Agrimensura

Trabajo Final de Aplicación

Sistema Web con Acceso a Bases de DatosMultiplataforma a Través de Teléfonos

Celulares

Sofia J. Vallejos - L.U.: 37.032

Prof. Coordinador: Agr. Castor HerrmannProf. Orientador: Mgter. David Luis la Red Martínez.

Licenciatura en Sistemas de InformaciónCorrientes - Argentina

2010

Page 2: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 3: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

En memoria de mi abuelo Pedro R. Vallejos

Page 4: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 5: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Prefacio

En los últimos años, la evolución de la tecnología ha dado un salto ines-perado. El boom tecnológico de la nueva generación se traduce en términos de“telefonía celular e Internet”, las cuales, más que ser realidades separadas secomplementan.

Sin embargo, el desarrollo de estos dos tipos de tecnología llega a un puntoen el cual convergen, y es cuando la red de comunicaciones a nivel mundialse abre y sobrepasa las expectativas de sus creadores; Internet deja de serpara uso exclusivo de la milicia y el gobierno, y combinada con los serviciosde telefonía se transforma en un medio de interacción social que actualmenteestá presente en todos los ámbitos de la vida diaria.

En la actualidad, estas tecnologías se combinan en una sola; los celulares yano se limitan a la función de comunicar a dos personas entre sí, sino que ahorahan evolucionado hasta incluir modalidades como el acceso a Internet en casitodos sus aspectos (transmisión de datos, mp3, tele conferencia, transmisiónde archivos fotográficos y videos, etc.).

Esto trae consigo inumerables ventajas; acelera el ritmo de obtención deinformación, facilita las comunicaciones, reduce los tiempos de emisión y res-puesta; es decir, transforma la vida diaria en todo un acontecimiento tecnológi-co, todo esto anudado al crecimiento económico de las sociedades, y más allá,a todos los cambios en el orden natural de las cosas que la tecnología genera.

Habiendo observado de manera amplia y constante los numerosos cambiosque la telefonía móvil y la Internet han dictado sobre la comunidad global,surge en mi el interés por conocer más detalladamente los aspectos que delineanesta revolución en nuestro propio entorno.

Para satisfacer lo anteriormente mencionado, en este trabajo se propuso eldesarrollo de una aplicación con software de computación móvil multiplatafor-ma, que permita el acceso a información situada en una base de datos mul-tiplataforma en un servidor Web, a través de dispositivos móviles tales comoteléfonos celulares.

La aplicación contempla el registro y seguimiento de información propiade una entidad farmacéutica, es decir la información pertinente del cliente, lacompra de productos y medicamentos de venta libre.

Esto significa para los clientes la posibilidad de auto gestionar sus compras

Page 6: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

��

en cualquier momento y en cualquier lugar sin tener que asistir físicamente a lassucursales de la farmacia y con sólo la ayuda de un teléfono celular moderno.

A su vez se propuso el desarrollo de una plataforma Web de la aplicaciónque sea accesible desde la Intranet, que contemple funciones adicionales comoser: registro de usuarios, control de stock de los productos y medicamentos deventa libre.

Se propuso también el desarrollo de un sitio Web accesible desde Inter-net, que simula ser el sitio de una farmacia, el cual contemple funciones dee-commerce como ser: registro de clientes, venta de los productos y/o medica-mentos on-line, permitiendo a un cliente poder realizar su compra de maneravirtual.

Objetivos Logrados

Se han alcanzado plenamente la totalidad de los objetivos planteados parael presente trabajo:

Desarrollo de una aplicación utilitaria empleando un software de com-putación móvil multiplataforma para teléfonos celulares, que permitaacceder a información remota situada en una base de datos que se en-cuentra en un servidor web.

Desarrollo de la plataforma web de la aplicación con accesos a base dedatos, que sirva de apoyo a la aplicación móvil.

Clasificación del Trabajo

El trabajo se encuadra en la utilización de software de base que permiteel desarrollo de aplicaciones que permitan el acceso a bases de datos multi-plataformas desde dispositivos móviles tales como teléfonos celulares.

Etapas de Desarrollo

Se ha efectuado una amplia recopilación bibliográfica específica a lostemas pertinentes a la tarea planificada y a los productos de softwareque se emplearon para la concreción del Trabajo Final.

Gracias a las gestiones realizadas por el Profesor Orientador Mgter.David Luis la Red Martinez ante IBM Argentina se han recibido ma-teriales tanto en CD’s como en libros de dicha empresa, en el marco

Page 7: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

���

de Scholars Program de la misma, destinado a Universidades de todo elmundo; se destacan por ser necesarios para la realización del presenteTrabajo Final los referentes productos de software como los siguientes:

• Rational Application Developer for WebSphere Software versión 6.0.

• DB2 Express-C versión 9.7.

Se ha efectuado un estudio acerca de las arquitecturas de aplicacionesmóviles.

Se ha realizado el análisis y diseño de la base de datos que utiliza laaplicación.

Se ha realizado el estudio del manejador de bases de datos DB2 Express-C para Windows.

Se ha realizado un detallado estudio del J2ME (versión de Java paramóviles), para la herramienta de desarrollo NetBeans IDE versión 6.7.1.

Se ha realizado un detallado estudio del software para el desarrollo dela plataforma web de la aplicación, Rational Application Developer forWebSphere Software versión 6.0.

Se ha desarrollado el aplicativo móvil con la utilización del lenguaje Java,versión J2ME.

En el marco de la herramienta Rational Application Developer for Web-Sphere Software se desarrolló el módulo web del aplicativo utilizandopáginas XHTMLs y Servlets de Java.

Una vez finalizada la etapa de desarrollo se realizaron las siguientes ac-tividades:

• Instalación y configuración del Rational Application Developer forWebSphere Software, utilizando como servidor web al servidor Tom-cat vesión 5.0, el cual se encuentra embebido en dicha herramienta.

• Empaquetado de la aplicación móvil para su distribución e insta-lación en los teléfonos celulares.

• Instalación de emuladores de teléfonos celulares que fueron descar-gados desde los sitios webs de los fabricantes de los mismos.

• Instalación y prueba de la aplicación tanto en los emuladores comoasí también en teléfonos celulares reales.

Page 8: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

��

• Testeo del sistema, simulando un escenario real realizando pruebasde conexión entre el sistema móvil y el servidor web a través deInternet.

Finalizada la aplicación se realizó la grabación en DVD de todo el ma-terial correspondiente al trabajo final: una versión de la aplicación, otrareferente al libro en formato LaTex y el PDF generado. También se in-cluyó los instaladores de los productos utilizados para el desarrollo, esdecir DB2 Express-C, Rational Application Developer for WebSphere,NetBeans IDE y emuladores.

Organización del Informe Final

El Trabajo Final de Aplicación comprende un informe final impreso y unDVD además de un resúmen y de un resúmen extendido.

El informe final está organizado en capítulos los que se indican a continua-ción:

Introducción: Se presenta una visión global acerca de las nuevas tec-nologías de información y comunicaciones, como así también las princi-pales características de la tecnología móvil, computación ubicua y de lasociedad de la información y el conocimiento.

Comercio Electrónico: Se indican definiciones y las principales caracte-rísticas del Comercio Electrónico.

El Mundo Móvil : Se indican las principales características de la evoluciónde los sistemas de telefonía móvil.

Aplicaciones Móviles: Se explican los requerimientos necesarios para unaaplicación móvil.

Java: Se presentan los principales aspectos y destacadas característicasreferidas al lenguaje.

Java 2 Micro Edition: Se detallan conceptos y características del lengua-je Java para dispositivos electronicos con menos recursos.

Introducción al DB2: Se detallan las más relevantes características deesta familia de productos de gestión de bases de datos.

Page 9: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Rational Application Developer for WebSphere Software: Presenta losprincipales aspectos de este entorno de aplicaciones complejas.

NetBeans IDE: Presenta los principales aspectos de este entorno para eldesarrolo de aplicaciones moviles.

Tomcat: Presenta las principales características y aspectos de este servi-dor web con soporte de Servlets y JSPs.

Descripción de la aplicación: Se describen todos los aspectos de la apli-cación desarrollada utilizando las herramientas antes mencionadas.

Conclusiones: Se presentan conclusiones a las que se ha llegado al fi-nalizar el presente trabajo y posibles líneas futuras de acción.

El DVD adjunto al informe final impreso, contiene lo siguiente:

Instaladores del software utilizado.

Resúmenes del trabajo realizado.

Informe final en formato digital.

Presentación para la defensa final.

Aplicación desarrollada.

Sofia J. VallejosLicenciatura en Sistemas de Información

Universidad Nacional del NordesteL.U.: 37032

Corrientes; 10 de Diciembre de 2010

Page 10: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

��

Page 11: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Índice general

1. Introducción 11.1. Visión Global . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Computación Ubicua o Pervasiva . . . . . . . . . . . . . . . . . 3

1.2.1. Principios . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.2. Hacia las Cosas Inteligentes e Interconectadas . . . . . . 51.2.3. La Ley de Moore y la Visión de Weiser . . . . . . . . . 6

1.3. La Sociedad de la Información y el Conocimiento . . . . . . . . 71.3.1. Definición de Conocimiento . . . . . . . . . . . . . . . . 81.3.2. Proceso de Formación del Conocimiento . . . . . . . . . 81.3.3. Clases de Conocimiento . . . . . . . . . . . . . . . . . . 91.3.4. Ciclo del Conocimiento . . . . . . . . . . . . . . . . . . 91.3.5. Características de la Sociedad del Conocimiento . . . . 101.3.6. Gestión del Conocimiento . . . . . . . . . . . . . . . . . 121.3.7. Tecnologías de la Gestión del Conocimiento . . . . . . . 12

2. Comercio Electrónico 152.1. Visión Global . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3. Origen y Evolución Histórica . . . . . . . . . . . . . . . . . . . 172.4. Ventajas del Comercio Electrónico . . . . . . . . . . . . . . . . 19

2.4.1. Ventajas para los Clientes . . . . . . . . . . . . . . . . . 192.4.2. Ventajas para las Empresas . . . . . . . . . . . . . . . . 20

2.5. Tipos de Comercio Electrónico . . . . . . . . . . . . . . . . . . 222.5.1. B2B (Business-to-Business) . . . . . . . . . . . . . . . . 222.5.2. B2E (Business to Employe) . . . . . . . . . . . . . . . . 232.5.3. B2C (Business-to-Consumer) . . . . . . . . . . . . . . . 242.5.4. B2B2C . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.6. M-Commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.7. Comercio Electrónico en la Sociedad del Conocimiento . . . . . 28

���

Page 12: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

���� ÍNDICE GENERAL

2.8. Riesgos, Usos y Tecnología . . . . . . . . . . . . . . . . . . . . . 282.8.1. Riegos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.8.2. Usos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.8.3. Teconolgías que emplea . . . . . . . . . . . . . . . . . . 31

2.9. Tipos de Relaciones, Cambios y Efectos . . . . . . . . . . . . . 312.9.1. Tipos de Relaciones que Pueden Presentarse . . . . . . 312.9.2. Cambios en las Empresas . . . . . . . . . . . . . . . . . 322.9.3. Efectos . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.10. Los Intermediarios . . . . . . . . . . . . . . . . . . . . . . . . . 342.10.1. Tipos de Intermediarios . . . . . . . . . . . . . . . . . . 37

3. El Mundo Móvil 413.1. Evolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2. Teléfonos Móviles de Primera Generación . . . . . . . . . . . . 42

3.2.1. Sistema Avanzado de Telefonía Móvil . . . . . . . . . . 433.3. Teléfonos Móviles de Segunda Generación . . . . . . . . . . . . 45

3.3.1. D-AMPS - El Sistema Avanzado de Telefonía Móvil Di-gital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.3.2. GSM (Sistema Global Para Comunicaciones Móviles) . 463.3.3. CDMA (Acceso Múltiple por División de Código) . . . . 48

3.4. Teléfonos Móviles de Tercera Generación . . . . . . . . . . . . . 493.4.1. EDGE (Tasa de Datos Mejorada para la Evolución del

GSM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.4.2. GPRS (Servicio de Radio de Paquetes Generales) . . . . 50

3.5. Servicios Adicionales de las Empresas Telefónicas . . . . . . . . 513.5.1. Servicios Analógicos . . . . . . . . . . . . . . . . . . . . 513.5.2. Recepción y Envío de Mensajes de Texto . . . . . . . . 513.5.3. Servicios de Información . . . . . . . . . . . . . . . . . . 523.5.4. Mensajes Multimedia . . . . . . . . . . . . . . . . . . . 533.5.5. Juegos y Aplicaciones . . . . . . . . . . . . . . . . . . . 533.5.6. Internet Móvil . . . . . . . . . . . . . . . . . . . . . . . 54

3.6. WAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.6.1. Introducción a WAP . . . . . . . . . . . . . . . . . . . . 563.6.2. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . 573.6.3. Modelo de WAP . . . . . . . . . . . . . . . . . . . . . . 573.6.4. Tecnología . . . . . . . . . . . . . . . . . . . . . . . . . . 613.6.5. WAP 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4. Aplicaciones Móviles 674.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Page 13: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

ÍNDICE GENERAL ��

4.2. Arquitectura de Aplicaciones Móviles . . . . . . . . . . . . . . . 684.3. Portal Para Aplicaciones Móviles . . . . . . . . . . . . . . . . . 704.4. Arquitectura de Bases de Datos . . . . . . . . . . . . . . . . . . 734.5. Aplicaciones Multiplataforma . . . . . . . . . . . . . . . . . . . 76

4.5.1. Java y Multiplataforma . . . . . . . . . . . . . . . . . . 76

5. Java 795.1. Introducción al Lenguaje . . . . . . . . . . . . . . . . . . . . . . 79

5.1.1. Bibliotecas de Clases Estándares de Java . . . . . . . . 815.1.2. Java es Multiplataforma . . . . . . . . . . . . . . . . . . 825.1.3. Características del Lenguaje . . . . . . . . . . . . . . . . 83

5.2. Estructura de un Programa Java . . . . . . . . . . . . . . . . . 845.3. Conceptos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.3.1. Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.3.2. Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.3.3. Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . 875.3.4. Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.4. Variables de Java . . . . . . . . . . . . . . . . . . . . . . . . . . 885.4.1. Datos de Objetos o Instancia . . . . . . . . . . . . . . . 905.4.2. Datos de Clase . . . . . . . . . . . . . . . . . . . . . . . 90

5.5. Operadores del Lenguaje Java . . . . . . . . . . . . . . . . . . . 915.5.1. Operadores Aritméticos . . . . . . . . . . . . . . . . . . 915.5.2. Operadores de Asignación . . . . . . . . . . . . . . . . . 915.5.3. Operadores Unarios . . . . . . . . . . . . . . . . . . . . 915.5.4. Operador Instanceof . . . . . . . . . . . . . . . . . . . . 925.5.5. Operador Condicional . . . . . . . . . . . . . . . . . . . 925.5.6. Operadores Incrementales . . . . . . . . . . . . . . . . . 925.5.7. Operadores Relacionales . . . . . . . . . . . . . . . . . . 935.5.8. Operadores de Concatenación de Caracteres . . . . . . . 93

5.6. Estructuras de Programación . . . . . . . . . . . . . . . . . . . 945.6.1. Sentencias o Expresiones . . . . . . . . . . . . . . . . . . 945.6.2. Comentarios . . . . . . . . . . . . . . . . . . . . . . . . 945.6.3. Bifurcaciones . . . . . . . . . . . . . . . . . . . . . . . . 955.6.4. Bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

5.7. Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995.7.1. Estructura de un Servlet . . . . . . . . . . . . . . . . . . 1005.7.2. Instanciación e Inicialización . . . . . . . . . . . . . . . 1045.7.3. Servicio de Demanda . . . . . . . . . . . . . . . . . . . . 1055.7.4. Terminación . . . . . . . . . . . . . . . . . . . . . . . . . 1055.7.5. Java Server Faces . . . . . . . . . . . . . . . . . . . . . . 106

Page 14: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

� ÍNDICE GENERAL

5.7.6. Desarrollando Aplicaciones . . . . . . . . . . . . . . . . 111

6. Java 2 Micro Edition 1136.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6.1.1. Comparación de Versiones . . . . . . . . . . . . . . . . . 1146.1.2. Algunas Consideraciones al Desarrollar en J2ME . . . . 117

6.2. Componentes de J2ME . . . . . . . . . . . . . . . . . . . . . . . 1186.2.1. Máquinas Virtuales J2ME . . . . . . . . . . . . . . . . . 1196.2.2. Configuraciones . . . . . . . . . . . . . . . . . . . . . . . 1226.2.3. Perfiles

1256.3. Requerimientos Funcionales para Detectar una Aplicación J2ME1306.4. Los MIDlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

6.4.1. El Gestor de Aplicaciones . . . . . . . . . . . . . . . . . 1326.4.2. Ciclo de Vida de un MIDlet . . . . . . . . . . . . . . . . 1326.4.3. Estados de un MIDlet . . . . . . . . . . . . . . . . . . . 1346.4.4. El Paquete javax.microedition.midlet . . . . . . . . . . . 1346.4.5. La Clase MIDlet . . . . . . . . . . . . . . . . . . . . . . 1356.4.6. Estructura de los MIDlets . . . . . . . . . . . . . . . . . 137

6.5. Interfaces Gráficas de Usuario . . . . . . . . . . . . . . . . . . . 1396.5.1. La Clase Display . . . . . . . . . . . . . . . . . . . . . . 1416.5.2. La Clase Displayable . . . . . . . . . . . . . . . . . . . . 1416.5.3. Las Clases Command y CommandListener . . . . . . . . 1416.5.4. Interfaz de Usuario de Alto Nivel . . . . . . . . . . . . . 145

6.6. RMS (Record Management System) . . . . . . . . . . . . . . . 1546.6.1. Modelo de Datos . . . . . . . . . . . . . . . . . . . . . . 1566.6.2. Record Stores . . . . . . . . . . . . . . . . . . . . . . . . 1576.6.3. Creación de un Record Store . . . . . . . . . . . . . . . 1586.6.4. Manipulación de Registros . . . . . . . . . . . . . . . . . 1596.6.5. Operaciones con Record Stores . . . . . . . . . . . . . . 1686.6.6. Búsqueda de Registros . . . . . . . . . . . . . . . . . . . 169

6.7. Comunicaciones en J2ME . . . . . . . . . . . . . . . . . . . . . 1706.7.1. Clases y Conexiones del Generic Connection Framework 1706.7.2. Comunicaciones HTTP . . . . . . . . . . . . . . . . . . 174

7. Introducción al DB2 1857.1. Bases de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

7.1.1. Objetivos de las Bases de Datos . . . . . . . . . . . . . 1867.1.2. Ventajas de las Bases de Datos . . . . . . . . . . . . . . 186

7.2. Sistema de Administración de Bases de Datos . . . . . . . . . 187

Page 15: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

ÍNDICE GENERAL ��

7.3. Organización de Bases de Datos . . . . . . . . . . . . . . . . . 1897.3.1. Bases de Datos Jerárquicas . . . . . . . . . . . . . . . . 1897.3.2. Bases de Datos en Red . . . . . . . . . . . . . . . . . . 190

7.3.3. Bases de Datos Relacional . . . . . . . . . . . . . . . . 190

7.4. Introducción a DB2 UDB . . . . . . . . . . . . . . . . . . . . . 1927.4.1. Características Generales del DB2 UDB . . . . . . . . 193

7.5. DB2 Express-C . . . . . . . . . . . . . . . . . . . . . . . . . . . 1967.5.1. Información Técnica . . . . . . . . . . . . . . . . . . . . 1967.5.2. DB2 para Linux, UNIX y Windows Características y

Beneficios . . . . . . . . . . . . . . . . . . . . . . . . . . 1977.5.3. Herramientas de DB2 . . . . . . . . . . . . . . . . . . . 199

8. Rational Application Developer 2058.1. ¿Qué es RAD 6.0? . . . . . . . . . . . . . . . . . . . . . . . . . 205

8.1.1. Rational Software Development Platform . . . . . . . . 2068.1.2. Rational Application Developer for WebSphere Software

se extiende de Eclipse . . . . . . . . . . . . . . . . . . . 2088.1.3. Desarrollo Web . . . . . . . . . . . . . . . . . . . . . . . 2098.1.4. Desarrollo de Java . . . . . . . . . . . . . . . . . . . . . 2108.1.5. Editor Visual de Java . . . . . . . . . . . . . . . . . . . 2118.1.6. Servicios de Desarrollo Web . . . . . . . . . . . . . . . . 2118.1.7. XML para el Desarrollo . . . . . . . . . . . . . . . . . . 2128.1.8. Desarrollo de Base de datos . . . . . . . . . . . . . . . . 2128.1.9. Desarrollo de Portales . . . . . . . . . . . . . . . . . . . 2138.1.10. Desarrollo J2EE . . . . . . . . . . . . . . . . . . . . . . 2148.1.11. Equipo de Desarrollo . . . . . . . . . . . . . . . . . . . . 2148.1.12. Especificación de Arquitectura. UML . . . . . . . . . . . 2158.1.13. Pruebas e Implementación . . . . . . . . . . . . . . . . . 2158.1.14. Asistencia Técnica de Servidor . . . . . . . . . . . . . . 216

8.2. WebSphere Application Server . . . . . . . . . . . . . . . . . . 2168.2.1. ¿Qué es WebSphere? . . . . . . . . . . . . . . . . . . . . 2168.2.2. ¿Que es WebSphere Application Server? . . . . . . . . . 217

9. Tomcat 2259.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2259.2. Entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2259.3. Estado de su Desarrollo . . . . . . . . . . . . . . . . . . . . . . 2269.4. Estructura de Directorios . . . . . . . . . . . . . . . . . . . . . 2269.5. Características del Producto . . . . . . . . . . . . . . . . . . . . 2269.6. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

Page 16: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

��� ÍNDICE GENERAL

10.NetBeans 22910.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22910.2. ¿Qué hay de nuevo en 6.7.1? . . . . . . . . . . . . . . . . . . . . 230

10.2.1. Tecnologías compatibles: . . . . . . . . . . . . . . . . . . 23010.2.2. Servidores de Aplicaciones: . . . . . . . . . . . . . . . . 23110.2.3. Requisitos del Sistema . . . . . . . . . . . . . . . . . . . 23210.2.4. Configuraciones de hardware mínimos . . . . . . . . . . 23210.2.5. Software Necesario . . . . . . . . . . . . . . . . . . . . . 23210.2.6. Compatibilidad . . . . . . . . . . . . . . . . . . . . . . . 232

10.3. NetBeans y las Aplicaciones Moviles . . . . . . . . . . . . . . . 23310.4. SDK de Nokia S60 . . . . . . . . . . . . . . . . . . . . . . . . . 23310.5. Nuevo Proyecto Utilizando J2ME . . . . . . . . . . . . . . . . . 235

11.Descripción de la Aplicación 23911.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23911.2. Estructuración . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

11.3. Estructuración . . . . . . . . . . . . . . . . . . . . . . . . . . . 24111.3.1. La Aplicación Móvil (Farmacia Corrientes Móvil) . . . . 24311.3.2. La Aplicación Web . . . . . . . . . . . . . . . . . . . . . 264

11.4. Estructuras de Datos Utilizadas . . . . . . . . . . . . . . . . . . 28411.4.1. Modelo de datos . . . . . . . . . . . . . . . . . . . . . . 285

12.Conclusiones 29112.1. Conclusiones Generales . . . . . . . . . . . . . . . . . . . . . . . 29112.2. Conclusiones Acerca de las Tecnologías y Software Utilizados . 29212.3. Líneas Futuras de Acción . . . . . . . . . . . . . . . . . . . . . 293

Bibliografía 295

Índice alfabético 297

Page 17: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Índice de figuras

1.1. Mark Weiser (1952-1999), el Visionario de la Computación Ubicua 71.2. La Cadena del Conocimiento . . . . . . . . . . . . . . . . . . . 101.3. La Era de la Información . . . . . . . . . . . . . . . . . . . . . 11

3.1. Sistema Telefónico Móvil . . . . . . . . . . . . . . . . . . . . . . 443.2. Un canal D-AMPS con 3 y 6 usuarios. . . . . . . . . . . . . . . 463.3. Algunos Juegos Conocidos. . . . . . . . . . . . . . . . . . . . . 543.4. Modelo Wap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.5. Modelo de la Red Wap. . . . . . . . . . . . . . . . . . . . . . . 583.6. Pilas de Protocolos TCP/IP y WAP. . . . . . . . . . . . . . . . 613.7. Modelo de Programación Wap. . . . . . . . . . . . . . . . . . . 643.8. Modelo Proxy para WAP 2.0. . . . . . . . . . . . . . . . . . . . 64

4.1. Arquitectura de un Portal Móvil. . . . . . . . . . . . . . . . . . 74

5.1. Mecanismo de Mensajes . . . . . . . . . . . . . . . . . . . . . . 815.2. Proceso Compilación y Ejecución . . . . . . . . . . . . . . . . . 835.3. Jerarquía y Métodos de las Principales Clases para Crear Servlets.1015.4. Ciclo de Vida de un Servlet. . . . . . . . . . . . . . . . . . . . . 1045.5. Requerimiento de un archivo JSP. . . . . . . . . . . . . . . . . 1105.6. Requerimiento de un Servlet . . . . . . . . . . . . . . . . . . . . 110

6.1. Arquitectura de la Plataforma Java 2 de Sun . . . . . . . . . . 1156.2. Ubicación de las Tecnologías Java . . . . . . . . . . . . . . . . . 1176.3. Proceso de Verificación . . . . . . . . . . . . . . . . . . . . . . . 1216.4. Entorno de Ejecución de J2ME . . . . . . . . . . . . . . . . . . 1266.5. Ciclo Vida de un MIDlet. . . . . . . . . . . . . . . . . . . . . . 1336.6. Estados de un MIDlet. . . . . . . . . . . . . . . . . . . . . . . . 1356.7. Jerarquía de Clases. . . . . . . . . . . . . . . . . . . . . . . . . 1406.8. Un MIDlet y el RMS . . . . . . . . . . . . . . . . . . . . . . . . 156

����

Page 18: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

��� ÍNDICE DE FIGURAS

6.9. Acceso a Un RMS a Través de Un MIDlet Suite . . . . . . . . . 1576.10. Estructura de Un Record Store . . . . . . . . . . . . . . . . . . 1586.11. Ejemplo en un emulador Nokia. . . . . . . . . . . . . . . . . . . 1686.12. Jerarquía de Interfaces . . . . . . . . . . . . . . . . . . . . . . . 1716.13. Estados de una Conexión HTTP . . . . . . . . . . . . . . . . . 175

7.1. Estructura de Una Base de Datos . . . . . . . . . . . . . . . . . 1887.2. Sistema de Administración de Bases de Datos . . . . . . . . . . 1887.3. Modelo de Bases de Datos Jerárquica. . . . . . . . . . . . . . . 1907.4. Modelo de Bases de Datos en Red. . . . . . . . . . . . . . . . . 1917.5. Modelo de Bases de Datos Relacional. . . . . . . . . . . . . . . 1927.6. AIV Extender. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1957.7. XML Extender. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1957.8. Centro de Control. . . . . . . . . . . . . . . . . . . . . . . . . . 2007.9. Lanzando Centro de Control de DB2 desde la bandeja de Win-

dows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2017.10. El Editor de Comandos DB2. . . . . . . . . . . . . . . . . . . . 2027.11. El icono Editor de Comandos en El Centro de Control. . . . . . 2037.12. El SQL Assist. . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

8.1. RAD. Entorno de Trabajo. . . . . . . . . . . . . . . . . . . . . 2078.2. WebSphere para e-bussines. . . . . . . . . . . . . . . . . . . . . 218

10.1. Añadir Platforma Java . . . . . . . . . . . . . . . . . . . . . . . 23410.2. Ventana: Nuevo Proyecto. . . . . . . . . . . . . . . . . . . . . . 23510.3. Ventana: Nombre y Localización. . . . . . . . . . . . . . . . . . 23610.4. Ventana: Selección de la Plataforma. . . . . . . . . . . . . . . . 23710.5. Ventana: Configuración Adicional. . . . . . . . . . . . . . . . . 237

11.1. Caso de Uso del Sitema. . . . . . . . . . . . . . . . . . . . . . . 24211.2. Arquitectura del Sistema. . . . . . . . . . . . . . . . . . . . . . 24311.3. Pantalla Principal Farmacia Corrientes Movil. . . . . . . . . . . 24511.4. Inicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24711.5. Pantallas de Ingreso al Sistema. . . . . . . . . . . . . . . . . . . 24811.6. Pantalla Conectando . . . . . . . . . . . . . . . . . . . . . . . . 24911.7. Pantalla Error. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25011.8. Pantalla Datos del Cliente. . . . . . . . . . . . . . . . . . . . . 25111.9. Pantalla Catalogo(Rubros). . . . . . . . . . . . . . . . . . . . . 25211.10.Inicio 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25311.11.Catalogo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25411.12.Pantalla Descripción de la Presentación. . . . . . . . . . . . . . 256

Page 19: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

ÍNDICE DE FIGURAS ��

11.13.Pantalla Descripción de la Compra. . . . . . . . . . . . . . . . . 25711.14.Pantalla Carrito. . . . . . . . . . . . . . . . . . . . . . . . . . . 25811.15.Pantalla Forma de Pago. . . . . . . . . . . . . . . . . . . . . . . 26011.16.Pantalla Datos Relevantes de la Factura. . . . . . . . . . . . . . 26111.17.Pantalla para Configurar la URL del Servidor. . . . . . . . . . 26211.18.Pantalla Ayuda. . . . . . . . . . . . . . . . . . . . . . . . . . . 26311.19.Inicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26511.20.Pestaña Quienes Somos. . . . . . . . . . . . . . . . . . . . . . . 26611.21.Catálogo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26711.22.Descripción del Producto. . . . . . . . . . . . . . . . . . . . . . 26711.23.Cliente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26811.24.Registrarse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26811.25.Contacto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26911.26.Inicio (logueado por el cliente). . . . . . . . . . . . . . . . . . . 27111.27.Mi Carrito. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27211.28.Pedido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27211.29.Factura Virtual. . . . . . . . . . . . . . . . . . . . . . . . . . . 27311.30.Mensaje Fin de la Compra . . . . . . . . . . . . . . . . . . . . . 27411.31.Farmacia Movil. . . . . . . . . . . . . . . . . . . . . . . . . . . 27511.32.Inicio (Operador / Administrador). . . . . . . . . . . . . . . . . 27611.33.Inicio - Administrador. . . . . . . . . . . . . . . . . . . . . . . . 27711.34.Nuevo Producto (pág1). . . . . . . . . . . . . . . . . . . . . . . 27811.35.Nuevo Producto (pág2). . . . . . . . . . . . . . . . . . . . . . . 27911.36.Nuevo Producto (pág. 3). . . . . . . . . . . . . . . . . . . . . . 27911.37.Nuevo Producto (pág. 4). . . . . . . . . . . . . . . . . . . . . . 28011.38.Nuevo Producto (pág. 5). . . . . . . . . . . . . . . . . . . . . . 28011.39.Nuevo Usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . 28111.40.Nueva Cuenta (pág.1). . . . . . . . . . . . . . . . . . . . . . . . 28211.41.Nueva Cuenta (pág. 2). . . . . . . . . . . . . . . . . . . . . . . 28311.42.Nueva Cuenta(pág. 3) . . . . . . . . . . . . . . . . . . . . . . . 28311.43.Tablas que Integran la Base de Datos del Sistema. . . . . . . . 28411.44.Modelado de Datos . . . . . . . . . . . . . . . . . . . . . . . . . 285

Page 20: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 21: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Índice de cuadros

5.1. Categorías de Variables. . . . . . . . . . . . . . . . . . . . . . . 895.2. Tipos Primitivos de Datos . . . . . . . . . . . . . . . . . . . . . 895.3. Operadores de asignación. . . . . . . . . . . . . . . . . . . . . . 915.4. Operadores relacionales. . . . . . . . . . . . . . . . . . . . . . . 93

6.1. Librerías de configuración CDC . . . . . . . . . . . . . . . . . . 1246.2. Librerías de configuración CLDC . . . . . . . . . . . . . . . . . 1256.3. Librerías del Fondation Profile . . . . . . . . . . . . . . . . . . 1276.4. Librerías del Personal Profile . . . . . . . . . . . . . . . . . . . 1286.5. Librerías del MIDP Profile . . . . . . . . . . . . . . . . . . . . . 1306.6. Clases del Paquete javax.microedition.midlet . . . . . . . . . . 1356.7. Métodos de la Clase Display . . . . . . . . . . . . . . . . . . . . 1426.8. Métodos de la Clase Displayable . . . . . . . . . . . . . . . . . 1436.9. Tipos de Commands . . . . . . . . . . . . . . . . . . . . . . . . 1446.10. Métodos de la Clase Command . . . . . . . . . . . . . . . . . . 1446.11. Tipos de Alerta . . . . . . . . . . . . . . . . . . . . . . . . . . . 1466.12. Métodos de la Clase List . . . . . . . . . . . . . . . . . . . . . . 1486.13. Métodos de la Clase Form . . . . . . . . . . . . . . . . . . . . . 1506.14. Métodos de la Clase StringItem . . . . . . . . . . . . . . . . . . 1526.15. Métodos de la Clase ImageItem . . . . . . . . . . . . . . . . . . 1546.16. Métodos de la Clase TextField . . . . . . . . . . . . . . . . . . 1556.17. Métodos Generales de la Clase RecordStore . . . . . . . . . . . 1606.18. Métodos Para Manejo de Registros . . . . . . . . . . . . . . . . 1616.19. Métodos de la Clase Connector . . . . . . . . . . . . . . . . . . 1726.20. Tipos de Permisos . . . . . . . . . . . . . . . . . . . . . . . . . 1736.21. Métodos en la Etapa de Establecimiento . . . . . . . . . . . . . 1766.22. Tipos de peticiones . . . . . . . . . . . . . . . . . . . . . . . . . 1766.23. Campos de la Cabecera . . . . . . . . . . . . . . . . . . . . . . 177

����

Page 22: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 23: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 1

Introducción

1.1. Visión Global

La implantación en la sociedad de las denominadas Nuevas Tecnologíasde la Comunicación e Información, está produciendo cambios insospechadosrespecto a los originados en su momento por otras tecnologías, como fueronla imprenta, y la electrónica. Sus efectos y alcance, no sólo se sitúan en elterreno de la información y comunicación, sino que lo sobrepasan para llegara provocar y proponer cambios en la estructura social, económica, laboral,jurídica y política. Y ello es debido a que no sólo se centran en la captación dela información, sino también, a las posibilidades que tienen para manipularla,almacenarla y distribuirla.

Las Nuevas Tecnologías de la Información y la Comunicación no son sóloinvenciones geniales, tienen su justificación social ya que contribuyen a dis-minuir los costos de producción de bienes de la sociedad al incrementar laproductividad e impulsar la investigación y el desarrollo.

Ha surgido la llamada “supercarretera de la información”: Internet, la redde redes de computadoras, la gran autopista que conecta todas las redes deordenadores del mundo; en ella la información fluye libremente y sin interrup-ciones, “se comparte y se esparce”, nadie aún ha sido capaz de calcular elvolumen de información que almacena ni tampoco sus límites.

Las Nuevas Tecnologías de la Información y la Comunicación rompen lasbarreras geográficas borrando las distancias físicas pero no rompen las barreras

1

Page 24: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2 CAPÍTULO 1. INTRODUCCIÓN

sociales, mantienen e incluso incrementan las distancias sociales entre ricos ypobres. Una de sus ventajas es que en la actualidad el ritmo de producciónde los conocimientos ha crecido vertiginosamente y se ha reducido el tiemponecesario para transformar el conocimiento básico en ciencia aplicada y éstaen tecnología la cual se difunde ampliamente a través de diferentes vías.

Por tanto, las Nuevas Tecnologías de la Información y la Comunicacióna pesar de sus ventajas, no son accesibles a todos por igual; este acceso estámediado por factores económicos, se tiene información si se dispone de recursosnecesarios para “adquirirla”.

El efecto social de las redes y servicios telemáticos es difícil de predecir. Elaumento del ancho de banda disponible será la base de las futuras innovacionesque pueden afectar profundamente a la sociedad humana.

Las redes inalámbricas jugarán un papel muy importante, éstas hoy endía son una realidad, estamos acostumbrados a ver ordenadores portátilesconectados a Internet sin necesidad de cables, pequeños ordenadores de manoconectados con los ordenadores de la oficina, cada día aumenta más la creaciónde las redes inalámbricas ciudadanas, en la que voluntariamente y sin buscarbeneficios más allá del uso de las tecnologías disponibles y el afán de aprendery practicar con ellas, hay ciudadanos que van poniendo a disposición de losdemás puntos de acceso a una red que cada día va creciendo más, y que cadavoluntario ayuda a que ésta crezca.

Y todo este avance tecnológico no es más que el inicio de un mundo deposibilidades que se abren con este nuevo modelo de computación, denominadocomputación pervasiva o computación ubicua.

Este modelo de computación ubicua significa básicamente la omnipresenciade computadores muy pequeños interconectados sin cables que se incorporande forma casi invisible a cualquier objeto de uso cotidiano, y usando pequeñossensores unidos a estos computadores pueden detectar el entorno que les rodeay tienen capacidades tanto de procesar información como de comunicación.

Una de las posibilidades es el comercio electrónico, el cual está cambiandola manera que los consumidores, comerciantes y empresas realizan sus transac-ciones. El comercio electrónico permite comprar, invertir, realizar operacionesbancarias, vender, distribuir en cualquier lugar en donde se pueda disponer deconexión a Internet y con la interconexión con las redes sin hilos con Internetdesde cualquier lugar y cualquier momento que se desee.

Page 25: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

1.2. COMPUTACIÓN UBICUA O PERVASIVA 3

El uso de teléfonos móviles para el acceso a Internet abre nuevas posi-bilidades en el comercio electrónico. el m-commerce, involucra tres aspectosbásicos: oferta de los negocios y de servicios en un área circundante al usuario;información oportuna, georeferenciada mientras el usuario está en movimientoy posibilidad de completar la transacción en forma inmediata.

1.2. Computación Ubicua o Pervasiva

Mark Weiser, en Septiembre de 1991, describió su visión de lo que él llam-aba computación ubicua, hoy llamada computación pervasiva. La esencia desu visión era la creación de entornos llenos de computación y de capacidadde comunicación, todo integrado de forma inapreciable junto a las personas.La visión de Weiser estaba bastante alejada de su época, entre otras razonesporque no existía la tecnología necesaria para llevarla a cabo. Pero despuésde más de una década de progreso en el campo de los dispositivos hardware,las criticadas ideas de Weiser en 1991 ahora son productos comercialmenteviables:

Ordenadores de bolsillo.

Redes inalámbricas.

Sensores muy avanzados.

Computación “vestible”.

1.2.1. Principios

Uno de los principales objetivos de la computación ubicua es hacer desa-parecer a los dispositivos computacionales haciéndolos situarse en un segundoplano.

Este objetivo de crear dispositivos que se mezclen en la vida cotidiana hastaque lleguen a ser indistinguibles supone una potencial revolución que puedehacer cambiar el modo de vida diario. Las personas se centrarán en las tareasque deben hacer, no en las herramientas que utilizan, porque se pretende queesas herramientas pasen desapercibidas.

Page 26: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

4 CAPÍTULO 1. INTRODUCCIÓN

El significado de enviar la computación a un “segundo plano” está referi-do a dos conceptos diferentes pero relacionados. El primero es el significadoliteral de que la tecnología de la computación se debe integrar en los objetos,cosas, tareas y entornos cotidianos. Y la segunda es que esta integración sedebe realizar de forma que la introducción de la computación en estas cosasu objetos no interfieran con las actividades para las que son usadas, y quesiempre proporcionen un uso más cómodo, sencillo y útil de esos objetos.

Estos objetos cotidianos en los que se integra la tecnología de la com-putación pasan a tener una serie de propiedades que permiten la creación delentorno ubicuo buscado.

Algunas de esas propiedades son:

Comunicación entre dispositivos: Todos estos objetos dotados de capaci-dad de computación también tienen capacidad de comunicación, y nosolo con el usuario, sino con los demás objetos integrados que haya a sualrededor.

Poseen memoria: Además de poder comunicarse entre ellos e interac-tuar con los usuarios, estos dispositivos tienen capacidad de memoria ypueden utilizar esta memoria para una mejor interacción con el resto dedispositivos.

Son sensibles al contexto: Estos objetos son sensibles al contexto, esdecir, se adaptan a las posibles situaciones, como la situación geográfica,los dispositivos que hay a su alrededor, las preferencias de los usuarios,y actúan 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 través de lainteracción con otros dispositivos.

El computador personal, Internet y la World-Wide Web han influido ya enmuchos aspectos del mundo de los negocios y hay señales evidentes de una am-plia convergencia de industrias enteras como la de los medios de comunicación,entretenimiento, electrónica de consumo, telecomunicaciones y tecnología dela información. La siguiente ola de la revolución tecnológica puede afectardirectamente y en todos los aspectos de la vida cotidiana.

Durante más de 30 años la conocida ley de Moore, según la cual la funcio-nalidad de un procesador se duplica cada 18 meses, ha demostrado ser cierta.

Page 27: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

1.2. COMPUTACIÓN UBICUA O PERVASIVA 5

Una mejora similar en prestaciones se aplica también a algunos otros paráme-tros importantes de la tecnología. Se afirma que la tendencia actual continuarádurante unos cuantos años más, lo que hace que toda esta área de desarrollosea tan intrigante. Ahora parece que el futuro próximo estará caracterizadopor pequeños computadores que se comunican de forma espontánea, que porsu pequeño tamaño y por su bajo precio, se integrarán en casi todos los objetoscotidianos. La tecnología de la información por lo tanto se volverá ubicua einvadirá todos los aspectos de la vida de las personas.

Los teléfonos móviles con acceso a Internet y los Asistentes Digitales Per-sonales (Personal Digital Assistants, PDAs) que se comunican sin cables conotros dispositivos próximos a ellos son los primeros indicios de la era “post-PC”venidera.

Al principio, el principal objetivo es permitir el acceso a la información decualquier tipo desde cualquier lugar y en cualquier momento, lo que eviden-cia los esfuerzos actuales de la industria por integrar aparatos de informaciónmóviles y utilizables en procesos de negocios basados en laWeb y escenarios decomercio electrónico. Sin embargo, a largo plazo, esta continua tendencia tec-nológica puede dar lugar a la fusión del computador con los objetos cotidianostípicos 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 unpunto de vista tecnológico, se podría describir a la computación ubicua co-mo la posibilidad de conectar todo lo que hay en el mundo a Internet, paraproporcionar información acerca de cualquier cosa, en cualquier momento, encualquier sitio. Por decirlo de otra forma, el término computación ubicua sig-nifica la omnipresencia de computadores muy pequeños interconectados sincables que se incrustan de forma casi invisible en cualquier tipo de objetocotidiano. Usando pequeños sensores, estos procesadores incrustados puedendetectar el entorno que les rodea y equipar a su objeto con capacidades tantode procesar información como de comunicación.

Page 28: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6 CAPÍTULO 1. INTRODUCCIÓN

1.2.3. La Ley de Moore y la Visión de Weiser

La ley de Moore, formulada en los años sesenta por Gordon Moore, afirmaque la capacidad de computación disponible en un microchip se multiplicapor dos aproximadamente cada 18 meses y, de hecho, esto ha resultado ser unpronóstico extraordinariamente exacto del desarrollo del chip desde entonces.

Y esta ley se ha venido cumpliendo hasta el día de hoy, la capacidad de cóm-puto de los procesadores avanza muy rápidamente. Pero no solo la capacidadde cómputo de los procesadores, sino también la capacidad de almacenamien-to, el ancho de banda para las comunicaciones, en resumen, cada poco tiempose tiene dispositivos más baratos, más pequeños y más potentes. Y no pareceque se vaya a parar este crecimiento, sino todo lo contrario.

El término computación ubicua , fue acuñado hace más de diez años porMark Weiser; ver fig. 1.1 de la pág. 7, un investigador del Palo Alto ResearchCenter de XEROX.

Weiser ve la tecnología solamente como un medio para un fin y como algoque debería quedar en segundo plano para permitir al usuario concentrarsecompletamente en la tarea que está realizando. En este sentido, considerarel computador personal como herramienta universal para la tecnología de lainformación sería un enfoque equivocado, ya que su complejidad absorberíademasiado la atención del usuario. Según Weiser, el computador como dis-positivo dedicado debería desaparecer, mientras que al mismo tiempo deberíaponer a disposición sus capacidades de procesamiento de la información [20].

Weiser ve el término computación ubicua en un sentido más académico eidealista centrada en la persona, como una visión de tecnología discreta, mien-tras que la industria ha acuñado por eso el término computación pervasiva,o ampliamente difundida con un enfoque ligeramente diferente. Aunque suvisión siga siendo todavía integrar el procesamiento de la información en ob-jetos cotidianos de forma casi invisible, su objetivo principal es utilizar talesobjetos en un futuro próximo en el ámbito del comercio electrónico y paratécnicas de negocios basados en la Web [18].

Mark Weiser fue un principal científico de Xerox Parc y ampliamente con-siderado como el padre de la computación ubicua (conocida también comoubicomp).

Weiser nació en Harver, un barrio exterior de Chicago, Illinois; estudióciencias de la computación y comunicación en la Universidad de Michingan,

Page 29: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

1.3. LA SOCIEDAD DE LA INFORMACIÓN Y EL CONOCIMIENTO 7

Figura 1.1: Mark Weiser (1952-1999), el Visionario de la Computación Ubicua

se dedicó a la docencia durante ocho años en ciencias de la computación en laUniversidad de Maryland, Clollege Park.

Mientras Weiser trabajaba para una variedad de compañías relacionadas ala computación, su trabajo fue en el campo de la computación ubicua mientrasdirigía el laboratorio de ciencias de computación de Parc, al cual se unió en1987, Se convirtió en la cabeza del laboratorio de ciencias de la computaciónen 1988 y el oficial primero de la tecnología en 1996, simultáneamente fueautor de más de 75 publicaciones.

1.3. La Sociedad de la Información y el Conocimien-to

“Es un hecho de la realidad que los vertiginosos avances que presentan lasTICs (Tecnologías de la Información y de las Comunicaciones) han convertidoal planeta en lo que se ha de llamar la aldea global” [1], permitiendo que lasociedad sea conocida como la Sociedad de la Información y el Conocimientoo Cibersociedad, en la cual la profusión de redes de datos ha permitido inter-conectar una diversidad de equipos informáticos de diferentes tecnologías dehardware y de software constituyendo una enorme red mundial multiplatafor-ma, que ha generado una nueva forma de interacción de las personas y de laempresas, impactando en la educación, las actividades sociales, el comercio,etc.

Page 30: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

8 CAPÍTULO 1. INTRODUCCIÓN

1.3.1. Definición de Conocimiento

El conocimiento es materia de estudio de distintas disciplinas, tales comola filosofía, la gestión empresarial, y más recientemente la informática, por ellose encuentran distintas definiciones del término conocimiento según el puntode vista e interés de quienes se pronuncien.

Antes de definir conocimiento algunos autores se apoyan a las definicionesde otros dos conceptos: dato e información.

Dato: antecedente necesario para llegar al conocimiento exacto de unacosa o para deducir las consecuencias legítimas de un hecho.

Información: acción y efecto de informar e informarse.

Conocimiento: acción y efecto de conocer. Noción, ciencia, sabiduría.

También se puede definir al conocimiento como:

“Es el conjunto de experiencias valores e informaciones dotadas de sig-nificado que facilitan el marco idóneo para evaluar nuevas informaciones eincorporar nuevas experiencias” [11].

1.3.2. Proceso de Formación del Conocimiento

Comprende los siguientes pasos:

Datos: Hechos y expresiones percibidos, por ejemplo una secuencia denúmeros, letras.

Información: Datos organizados bajo patrones explicativos; conjunto co-herente de datos que transmite un mensaje.

Conocimiento: Información elaborada de modo que comporta significadoy puede ser utilizada en la toma de decisiones.

Sabiduría: Conocimiento reutilizado y proceso de retroalimentación delos conocimientos.

Page 31: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

1.3. LA SOCIEDAD DE LA INFORMACIÓN Y EL CONOCIMIENTO 9

1.3.3. Clases de Conocimiento

El conocimiento puede dividirse en:

Conocimiento tácito

Conocimiento explícito

El conocimiento tácito es aquel que no está registrado por ningún medio yque solo se obtiene mediante la adquisición de conocimientos de manera prác-tica y solo es posible transmitir y recibir consultando directa y específicamenteal poseedor de estos conocimientos.

También el conocimiento tácito es aquel conocimiento que no está regis-trado (el que se tiene en la cabeza). Es la intuición, opinión, las creencias, laexperiencia.

El conocimiento tácito como la percepción subjetiva o las emociones, no sepuede instrumentalizar y se transmite en determinados contextos y acciones.El conocimiento tácito es el conocimiento que poseen las personas y que es in-separable de su experiencia y puede ser compartido o intercambiado, mediantecontactos directos.

El conocimiento explícito se trata del conocimiento basado en datos con-cretos, con lo que sería suficiente su conocimiento para el aprovechamientode los mismos, sin necesidad de interpretación alguna, expresándolo de unamanera simple, es “la teoría”.

El conocimiento explícito es el conocimiento tácito codificado y vertido enalgún soporte de almacenamiento y comunicación. Este conocimiento se puedeexpresar mediante palabras y números, y es fácil de transmitir. Es un conoci-miento formal que puede plasmarse en documentos de una organización talescomo informes, patentes, manuales, imágenes, esquema, software, productos,diagramas organizativos, etc.

1.3.4. Ciclo del Conocimiento

Se fundamenta en dos pilares:

• La cadena del conocimiento.

Page 32: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

10 CAPÍTULO 1. INTRODUCCIÓN

• La transformación del conocimiento tácito y explícito.

El conocimiento tácito encauzado de forma correcta, genera conocimientoexplícito (ejemplo almacenándolo en una base de datos).

El ciclo de vida del conocimiento depende de la distinción entre conoci-miento tácito y conocimiento explícito; (ver fig. 1.2 de la pág. 10). Ambos tiposde conocimientos son necesarios y se produce una realimentación continua en-tre ambos.

Comprende la trasformación de:

• Datos en Información.

• Información en conocimiento.

• Conocimiento en acciones/decisiones.

• La experiencia del conocimiento en sabiduría.

Figura 1.2: La Cadena del Conocimiento

1.3.5. Características de la Sociedad del Conocimiento

Es una realidad que la nueva sociedad está basada en el conocimiento másque en la información. El conocimiento es información almacenada por laspersonas.

La materia prima es la información, el producto es el conocimiento; ver fig.1.3 de la pág. 11.

Page 33: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

1.3. LA SOCIEDAD DE LA INFORMACIÓN Y EL CONOCIMIENTO 11

Figura 1.3: La Era de la Información

Es dificil predecir cómo será la nueva sociedad y, por lo cual, difícil dedefinir con precisión sus características básicas. La nueva sociedad planteanuevos requisitos para las personas, que deberán adquirir y mantener unacultura de la información.

Se puede diferenciar entre una economía de la información y una sociedaddel conocimiento. Un país puede entrar en una economía de la informaciónmediante un esfuerzo de inversión de equipos y sistemas, o con políticas defomento de las redes de comunicación, pero estas características no incluyennecesariamente el desarrollo de la nueva sociedad que dependerá más de laexistencia de una cultura de la información suficientemente desarrollada.

Es preciso fomentar la creación de redes, equipos y sistemas de informacióny favorecer el ingreso de la población en la cultura de la información, a partirde un pacto social. Este nuevo pacto debería ser plural, uniforme y no dirigido,diseñado desde la realidad más cercana de los ciudadanos. Los requisitos de lanueva sociedad plantean la necesidad de realizar un esfuerzo permanente deadaptación individual y colectiva.

La persona instruída (persona con conocimiento) pasará a ser el nuevo pro-tagonista de la sociedad del conocimiento, que aplica su saber a los problemaspresentes y ayuda a asentar las bases del futuro.

Page 34: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

12 CAPÍTULO 1. INTRODUCCIÓN

1.3.6. Gestión del Conocimiento

LaGestión del Conocimiento corresponde al conjunto de actividades desar-rolladas para utilizar, compartir, desarrollar y administrar los conocimientosque posee una organización y los individuos que en esta trabajan, de manerade que estos sean encaminados hacia la mejor consecución de sus objetivos.

Inicialmente la gestión del conocimiento se centró exclusivamente en eltratamiento del documento como unidad primaria, pero actualmente se hanproducido grandes avances. Hoy es necesario buscar, seleccionar, analizar ysintetizar críticamente o de manera inteligente y racional la gran cantidad deinformación disponible, con el fin de aprovecharla con el máximo rendimientosocial o personal.

Esta disciplina no es nueva, sino que sus raíces se remontan a la inteligen-cia artificial, cuyo objetivo final ha sido la sintetización del comportamientohumano mediante ordenadores.

Las Bases de Conocimiento son depósitos o almacenes de datos (repos-itorios) del conocimiento del negocio (funciones, reglas, cálculos, informes)totalmente independiente de la plataforma de ejecución, que mediante tec-nologías de inteligencia artificial son capaces de deducir, generar y mantenerautomáticamente estructuras normalizadas de bases de datos y programas.

La atención que se está prestando a la gestión del conocimiento está cre-ciendo a una velocidad impresionante. Revistas, diarios de economía y librospublican innumerable teorías y casos sobre gestión del conocimiento y sustópicos.

1.3.7. Tecnologías de la Gestión del Conocimiento

Las tecnologías de GC deben permitir:

Identificar conocimientos necesarios.

Identificar dónde y quién tiene el conocimiento o si necesita ser creado.

Reunir y capturar el conocimiento encontrado.

Resumir y sintetizar la información.

Page 35: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

1.3. LA SOCIEDAD DE LA INFORMACIÓN Y EL CONOCIMIENTO 13

Distribuir la información a distintos niveles.

Actualizar, eliminar y modificar el conocimiento obsoleto.

La Gestión del Conocimiento es la mezcla de los siguiente factores:

Personas: Aquellas que producen y aquellas que utilizan conocimientoque será la base para la acción.

Contenido: El flujo de datos, información y conocimiento importantesen el éxito del negocio.

Tecnología: Se refiere a la infraestructura técnica que se encarga de lacaptura, almacenamiento y distribución del contenido a aquellas per-sonas que lo necesitan, en el lugar y momento oportuno.

Page 36: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 37: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 2

Comercio Electrónico

2.1. Visión Global

Las redes mundiales de información están transformando al mundo y acer-cando más a la gente a través de la innovación de las comunicaciones mundiales,lo cual posibilita cambios en todos los ámbitos de la actividad humana, porejemplo la competitividad, el empleo y la calidad de vida de las naciones. Conlas nuevas tecnologías, el tiempo y la distancia dejan de ser obstáculos, loscontenidos pueden dirigirse a una audiencia masiva o a un pequeño grupo deexpertos y buscar un alcance mundial o meramente local. Las redes mundialesde información, como Internet no conoce fronteras.

Internet es un medio de comunicación global, que permite el intercambiode información entre los usuarios conectados a la red y que conecta a unos 8millones de servidores encargados de servicios de información y de todas lasoperaciones de comunicación y de retransmisión; llega hasta unos 250 millo-nes de usuarios en más de 100 países. Internet ofrece una oportunidad única,especial y decisiva a organizaciones de cualquier tamaño.

La rápida difusión y el gran interés en el mundo de la informática, ha per-mitido la creación de tecnología Internet/ Web, una herramienta fundamentalpara redes de computadoras y sus usuarios. Internet ofrece un nuevo merca-do que define la “economía digital”. Los productores, proveedores de bienes /servicios y usuarios logran tener acceso y transmisión mundial de la informa-ción y esparcimiento en forma sencilla y económica, sea con fines comerciales

15

Page 38: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

16 CAPÍTULO 2. COMERCIO ELECTRÓNICO

o sociales. La apertura de mercados es fundamental para el rápido crecimien-to del uso de nuevos servicios y la asimilación de tecnologías nuevas. En lapráctica, las empresas están comenzando a usar Internet como un nuevo canalde ventas, sustituyendo las visitas personales, correo y teléfono por pedidoselectrónicos, ya que gestionar un pedido por Internet cuesta 5% menos quehacerlo por vías tradicionales. Nace entonces el comercio electrónico, comouna alternativa de reducción de costos y una herramienta fundamental en eldesempeño empresarial.

Sin embargo, la aparición del comercio electrónico obliga claramente a re-plantearse muchas de las cuestiones del comercio tradicional, surgiendo nuevosproblemas, e incluso agudizando algunos de los ya existentes. En ese catálogode problemas, se plantean cuestiones que van, desde la validez legal de lastransacciones y contratos sin papel, la necesidad de acuerdos internacionalesque armonicen las legislaciones sobre comercio, el control de las transaccionesinternacionales, incluido el cobro de impuestos, la protección de los derechosde propiedad intelectual, la protección de los consumidores en cuanto a publi-cidad engañosa o no deseada, fraude, contenidos ilegales y uso abusivo de datospersonales, hasta otros provocados por la dificultad de encontrar informaciónen Internet, comparar ofertas y evaluar la fiabilidad del vendedor y del com-prador en una relación electrónica, la falta de seguridad de las transaccionesy medios de pago electrónicos, la falta de estándares consolidados, la prolife-ración de aplicaciones y protocolos de comercio electrónico incompatibles y lacongestión de Internet [5]

2.2. Definiciones

“Es la aplicación de la avanzada tecnología de información para incre-mentar la eficacia de las relaciones empresariales entre socios comercia-les”.

“La disponibilidad de una visión empresarial apoyada por la avanzadatecnología de información para mejorar la eficiencia y la eficacia dentrodel proceso comercial”.

“Es el uso de las tecnologías computacional y de telecomunicaciones quese realiza entre empresas o bien entre vendedores y compradores, paraapoyar el comercio de bienes y servicios”.

Conjugando estas definiciones se puede decir que el comercio electrónico es

Page 39: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.3. ORIGEN Y EVOLUCIÓN HISTÓRICA 17

una metodología moderna para hacer negocios que detecta la necesidad de lasempresas, comerciantes y consumidores de reducir costos, así como mejorar lacalidad de los bienes y servicios, además de mejorar el tiempo de entrega delos bienes o servicios. Por lo tanto no debe seguirse contemplando el comer-cio electrónico como una tecnología, sino que es el uso de la tecnología paramejorar la forma de llevar a cabo las actividades empresariales. Ahora bien, elcomercio electrónico se puede entender como cualquier forma de transaccióncomercial en la cual las partes involucradas interactúan de manera electrónicaen lugar de hacerlo de la manera tradicional con intercambios físicos o tratofísico directo.

Actualmente la manera de comerciar se caracteriza por el mejoramientoconstante en los procesos de abastecimiento, y como respuesta a ello los ne-gocios a nivel mundial están cambiando tanto su organización como sus ope-raciones. El comercio electrónico es el medio de llevar a cabo dichos cambiosdentro de una escala global, permitiendo a las compañías ser más eficientesy flexibles en sus operaciones internas, para así trabajar de una manera máscercana con sus proveedores y estar más pendiente de las necesidades y expec-tativas de sus clientes. Además permiten seleccionar a los mejores proveedoressin importar su localización geográfica para que de esa forma se pueda vendera un mercado global [3].

2.3. Origen y Evolución Histórica

El comercio, actividad ancestral del ser humano, ha evolucionado de muchasmaneras. Pero su significado y su fin en siempre el mismo. Según el diccionarioconsultor de economía, el comercio “ es el proceso y los mecanismos utilizados,necesarios para colocar las mercancías, que son elaboradas en las unidades deproducción, en los centros de consumo en donde se aprovisionan los consu-midores, último eslabón de la cadena de comercialización. Es comunicación ytrato”.

En líneas generales, y con un sentido amplio, el comercio implica la in-vestigación de mercado con el fin de interpretar los deseos del consumidor, lapublicidad que anuncia la existencia del producto, la posibilidad de adquirirlo,y en qué lugar, a la vez que se utilizan los métodos de persuasión, la venta alpor menor y finalmente, la adquisición por parte del público.

Según lo expuesto, a través de los años han aparecido diferentes formas

Page 40: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

18 CAPÍTULO 2. COMERCIO ELECTRÓNICO

o tipos de comercio. A principio de los años 1920 en Los Estados Unidosapareció la venta por catálogo, impulsado por las grandes tiendas de mayoreo.Este sistema de venta, revolucionario para la época, consiste en un catálogo confotos ilustrativas de los productos a vender. Este permite tener mejor llegadaa las personas, ya que no hay necesidad de tener que atraer a los clientes hastalos locales de venta. Esto posibilitó a las tiendas poder llegar a tener clientes enzonas rurales, que para la época que se desarrolló dicha modalidad existía unagran masa de personas afectadas al campo. Además, otro punto importantede esto es que los potenciales compradores pueden escoger los productos enla tranquilidad de sus hogares, sin la asistencia o presión, según sea el caso,de un vendedor. La venta por catálogo tomó mayor impulso con la apariciónde las tarjetas de crédito; además de determinar un tipo de relación de mayoranonimato entre el cliente y el vendedor.

A mediados de 1980, con la ayuda de la televisión, surgió una nueva formade venta por catálogo, también llamada venta directa. De esta manera, losproductos son mostrados con mayor realismo, y con la dinámica de que puedenser exhibidos resaltando sus características. La venta directa es concretadamediante un teléfono y usualmente con pagos de tarjetas de crédito.

A principio de los años 1970, aparecieron las primeras relaciones comercia-les que utilizaban una computadora para transmitir datos. Este tipo de inter-cambio de información, sin ningún tipo de estándar, trajo aparejado mejorasde los procesos de fabricación en el ámbito privado, entre empresas de un mis-mo sector. Es por eso que se trataron de fijar estándares para realizar esteintercambio, el cual era distinto con relación a cada industria. Un ejemploconocido de esto es el caso del Supermercado mayorista Amigazo. A mediadosde los años 1980 esta empresa desarrolló un sistema para procesar ordenes depedido electrónicas, por el cual los clientes de esta empresa emitían ordenes depedido desde sus empresas y ésta era enviada en forma electrónica. Esta imple-mentación trajo importantes beneficios a Amigazo, ya que se eliminaron granparte de errores de entregas y se redujeron los tiempos de procesamiento dedichas ordenes. El beneficio fue suficiente como para que la empresa Amigazo,instale un equipo a sus clientes habituales.

Por otra parte, en el sector publico el uso de estas tecnologías para el in-tercambio de datos tuvo su origen en las actividades militares. A fines de losaños 1970 el Ministerio de Defensa de Estados Unidos inició un programa deinvestigación destinado a desarrollar técnicas y tecnologías que permitiesenintercambiar de manera transparente paquetes de información entre diferen-tes redes de computadoras; el proyecto encargado de diseñar esos protocolos

Page 41: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.4. VENTAJAS DEL COMERCIO ELECTRÓNICO 19

de comunicación se llamo “Internetting Project” (de este proyecto de inves-tigación proviene el nombre del popular sistema de redes), del que surgieronel TCP/IP (Transmission Control Protocol) / (Internet Protocol) que fuerondesarrollados conjuntamente por Vinton Cerf y Robert Kahn y son los queactualmente se emplean en Internet.

A través de este proyecto se logró estandarizar las comunicaciones entrecomputadoras y en 1989 aparece un nuevo servicio, la WWW (World WideWeb, Telaraña Global), cuando un grupo de investigadores en Ginebra, Suiza,ideó un método a través del cual empleando la tecnología de Internet enlaza-ban documentos científicos provenientes de diferentes computadoras, a los quepodían integrarse recursos multimedia (texto, gráficos, música, entre otros). Lomás importante de la WWW es su alto nivel de accesibilidad, que se traduceen los escasos conocimientos de informática que exige de sus usuarios.

El desarrollo de estas tecnologías y de las telecomunicaciones ha hecho quelos intercambios de datos crezcan a niveles extraordinarios, simplificándose ca-da vez más y creando nuevas formas de comercio, y en este marco se desarrollael Comercio Electrónico [9].

2.4. Ventajas del Comercio Electrónico

2.4.1. Ventajas para los Clientes

Permite el acceso a más información.

La naturaleza interactiva del Web y su entorno hipertexto permiten bús-quedas profundas no lineales que son iniciadas y controladas por los clientes,por lo tanto las actividades de mercadeo mediante el Web están más impul-sadas por los clientes que aquellas proporcionadas por los medios tradicionales.

Facilita la investigación y comparación de mercados.

La capacidad del Web para acumular, analizar y controlar grandes canti-dades de datos especializados permite la compra por comparación y acelera elproceso de encontrar los artículos.

Abarata los costos y precios.

Page 42: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

20 CAPÍTULO 2. COMERCIO ELECTRÓNICO

Conforme aumenta la capacidad de los proveedores para competir en unmercado electrónico abierto se produce una baja en los costos y precios, dehecho tal incremento en la competencia mejora la calidad y variedad de losproductos y servicios.

2.4.2. Ventajas para las Empresas

Mejoras en la Distribución.

El Web ofrece a ciertos tipos de proveedores (industria del libro, serviciosde información, productos digitales) la posibilidad de participar en un mer-cado interactivo, en el que los costos de distribución o ventas tienden a cero.Por poner un ejemplo, los productos digitales (software) pueden entregarsede inmediato, dando fin de manera progresiva al intermediarismo. Tambiéncompradores y vendedores se contactan entre sí de manera directa, eliminan-do así restricciones que se presentan en tales interacciones. De alguna formaesta situación puede llegar a reducir los canales de comercialización, permi-tiendo que la distribución sea eficiente al reducir sobrecosto derivado de launiformidad, automatización e integración a gran escala de sus procesos deadministración. De igual forma se puede disminuir el tiempo que se tardanen realizar las transacciones comerciales, incrementando la eficiencia de lasempresas.

Comunicaciones de Mercadeo.

Actualmente, la mayoría de las empresas utiliza el Web para informar alos clientes sobre la compañía, a parte de sus productos o servicios, tantomediante comunicaciones internas como con otras empresas y clientes. Sinembargo, la naturaleza interactiva del Web ofrece otro tipo de beneficios con-ducentes a desarrollar las relaciones con los clientes. Este potencial para lainteracción 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 día bajo demanda de losclientes. Las personas que realizan el mercadeo pueden usar el Web para rete-ner a los clientes mediante un diálogo asincrónico que sucede a la convenienciade ambas partes. Esta capacidad ofrece oportunidades sin precedentes paraajustar con precisión las comunicaciones a los clientes individuales, facilitandoque éstos soliciten tanta información como deseen. Además, esto permite que

Page 43: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.4. VENTAJAS DEL COMERCIO ELECTRÓNICO 21

los responsables del área de mercadeo obtengan información relevante de losclientes con el propósito de servirles de manera eficaz en las futuras relacionescomerciales. Los sitios Web más sencillos involucran a los clientes mediantebotones para enviar mensajes de correo electrónico a la empresa. En otroscentros más sofisticados, los clientes rellenan formularios, con el objeto de quedesarrollen una relación continua con la compañía, cuyo fin es informar tantosobre los productos y servicios como obtener información sobre las necesidadesque los clientes tienen sobre los mismos. De esta manera, se obtiene publici-dad, promoción y servicio al cliente a la medida. El Web también ofrece laoportunidad de competir sobre la base de la especialidad, en lugar de hacerlomediante el precio, ya que desde el punto de vista del mercadeo, rara vez esdeseable competir tan sólo en función del precio. El mercadeo intenta satis-facer las necesidades de los clientes en base a los beneficios que buscan, lo quequiere decir que el precio depende de la valorización del cliente, y no de los cos-tos; tales oportunidades surgen cuando lo ofrecido se diferencia por elementosde mercadeo distintos al precio, lo cual produce beneficios cargados de valor,como por ejemplo, la comodidad producida por el reparto directo mediante ladistribución electrónica de software.

Beneficios Operacionales.

El uso empresarial del Web reduce errores, tiempo y sobrecostos en eltratamiento de la información. Los proveedores disminuyen sus costos al ac-ceder 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 con-cesiones; además, se facilita la creación de mercados y segmentos nuevos, elincremento en la generación de ventajas en las ventas, la mayor facilidad paraentrar en mercados nuevos, especialmente en los geográficamente remotos, yalcanzarlos con mayor rapidez. Todo esto se debe a la capacidad de contactarde manera sencilla y a un costo menor a los clientes potenciales, eliminandodemoras entre las diferentes etapas de los subprocesos empresariales.

Page 44: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

22 CAPÍTULO 2. COMERCIO ELECTRÓNICO

2.5. Tipos de Comercio Electrónico

2.5.1. B2B (Business-to-Business)

Definición

Es la transmisión de información referente a transacciones comerciales elec-trónicamente, normalmente utilizando tecnología como la Electronic Data In-terchange (EDI), presentada a finales de los años 1970 para enviar electróni-camente documentos tales como pedidos de compra o facturas.

Más tarde pasó a incluir actividades que serían más precisamente denomi-nadas “Comercio en la Red”, como la compra de bienes y servicios a travésde la World Wide Web vía servidores seguros (véase HTTPS, un protocolo deservidor especial que cifra la realización confidencial de pedidos para la protec-ción de los consumidores y los datos de la organización) empleándose serviciosde pago electrónico como autorizaciones para tarjeta de crédito o monederoselectrónicos.

El B2B ha venido impulsado también por la creación de portales paraagrupar compradores. Así, encontramos, por ejemplo portales de empresas deautomoción, alimentación, químicas u hostelería, entre otros. Las compañíasse agrupan para crear dichas páginas aglutinando fuerzas lo que les permitenegociar en mejores condiciones. El mantenimiento de las páginas se producepidiendo un canon por cotizar o cobrando a los socios una comisión del negociorealizado en el portal.

En términos generales la expresión “business to business” no se encuentralimitada al entorno electrónico, sino que hace una referencia de exclusión paradestacar el origen y destino de una actividad que, por antagonismo no serefiere ni al “B2C”, “B2G”, etc. Solo por establecer un ejemplo de referencia, el“B2B” aplica a la relación entre un fabricante y el distribuidor de un productoy también a la relación entre el distribuidor y el comercio minorista... pero NO,a la relación entre el comerciante y su cliente final (consumidor), relación estaúltima que quedaría ajustada entonces, al entorno del “B2C” (Business toConsumer).

Page 45: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.5. TIPOS DE COMERCIO ELECTRÓNICO 23

Ventajas

El comercio electrónico entre empresas es una utilidad más que aportaInternet y que ha experimentado un gran auge en los últimos años.

Algunas de las ventajas que aporta el B2B para las empresas implicadasson:

Rapidez y seguridad de las comunicaciones.

Integración directa de los datos de la transacción en los sistemas infor-máticos de la empresa.

Posibilidad de recibir mayor número de ofertas o demandas, ampliandola competencia.

Despersonalización de la compra con lo que se evitan posibles tratos defavor.

Abaratamiento del proceso: menos visitas comerciales, proceso de nego-ciación más rápido, etc. Por tanto, los compradores pueden pedir unareducción de precios en virtud del menor coste de gestión, o los vende-dores incrementar su margen comercial.

2.5.2. B2E (Business to Employe)

Definición

Es la relación comercial que se establece entre una empresa y sus propiosempleados. Por ejemplo, una empresa aérea puede ofrecer paquetes turísticosa sus empleados a través de su propia intranet y, además de sus ofertas puedeincluir las de compañías aéreas asociadas.

El B2E es una nueva demostración de las muchas aplicaciones que ofreceel comercio electrónico. Pero no sólo eso, además el concepto se amplía a lapropia gestión remota por parte del empleado de parte de sus responsabilidadesdentro de los procesos de negocio de la empresa. Esto podría incluir facturaciónde comisiones de ventas, introducción de gastos de desplazamiento, etc. Esen definitiva un pequeño portal para la utilización de algunos recursos dela empresa por parte de los empleados de la misma, tanto en su que hacercotidiano, como en la vida privada.

Page 46: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

24 CAPÍTULO 2. COMERCIO ELECTRÓNICO

Además existen diferentes políticas que se pueden adecuar a este modelode negocio.

Ventajas

Reducción de costes y tiempo en actividades burocráticas.

Formación en línea.

Mejora de la información interna.

Equipos de colaboración en un entorno web.

Agilización de la integración del nuevo profesional en la empresa.

Servicios intuitivos de gestión de la información.

Soporte para gestión del conocimiento.

Comercio electrónico interno.

Motivador, potenciador de la implicación del profesional. Fidelizacióndel empleado.

2.5.3. B2C (Business-to-Consumer)

Definición

Se refiere a la estrategia que desarrollan las empresas comerciales parallegar directamente al cliente o usuario final.

Un ejemplo de transacción B2C puede ser la compra de un par de zapatosen una zapatería de barrio, por un individuo. Sin embargo, todas las transac-ciones necesarias para que ese par de zapatos esté disponible para la venta enel establecimiento comercial, compra de la piel, suela, cordones, etc., así comola venta de zapatos del fabricante al comerciante forman parte de lo que sellama B2B.

A pesar del sentido amplio de la expresión B2C, en la práctica, suelereferirse a las plataformas virtuales utilizadas en el comercio electrónico paracomunicar empresas (vendedoras) con particulares (compradores). Por eso, eluso más frecuente es comercio electrónico B2C.

Page 47: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.5. TIPOS DE COMERCIO ELECTRÓNICO 25

Ventajas

La compra suele ser más rápida y más cómoda.

Las ofertas y los precios están siempre actualizados.

Los centros de atención al cliente están integrados en la web.

Las telecomunicaciones por banda ancha han mejorado la experiencia decompra.

Tipos de Empresas en Comercio Electrónico B2C

Intermediarios on-line.

Los intermediarios on-line son compañías que facilitan las transaccionesentre compradores y vendedores, como contraprestación económica reciben unporcentaje del valor de la transacción. La mayoría de las transacciones se reali-zan a través de estos intemediarios, que pueden ser brokers o “informediarios”,genéricos o especializados, respectivamente.

Modelos basados en la publicidad.

En una publicidad basada en el sistema, las empresas tienen sitios webde un inventario, que venden a las partes interesadas. Existen dos filosofíasrectores para esta práctica: de alto tráfico o de nicho. Los anunciantes tienenun alto tráfico de enfoque al intentar llegar a un público más amplio. Estosanunciantes están dispuestos a pagar una prima por un sitio que puede ofre-cer un número elevado, por ejemplo, anuncios en Yahoo! o Google. Cuando losanunciantes están tratando de llegar a un grupo más pequeño de compradores,se llevan a un nicho. Estos compradores están bien definidos, claramente iden-tificados, 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 usua-rios en todo el mundo el acceso a interactuar unos con otros sobre la basede áreas similares de interés. Estas empresas ganan dinero por medio de laacumulación de leales usuarios y la orientación con la publicidad.

Page 48: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

26 CAPÍTULO 2. COMERCIO ELECTRÓNICO

Modelos basados en tarifas.

En un sistema de pago basado en el sistema, una empresa cobra una tarifade suscripción para ver su contenido. Existen diversos grados de restricciónde contenidos y tipos de suscripción que van desde las tasas a tanto alzado apay-as-you-go.

2.5.4. B2B2C

Designa una modalidad de comercio electrónico que agrupa el business tobusiness y el business to consumer . Se trata de una versión más sofisticada delo que podría ser la simple superposición de los dos negocios. Con la mismaplataforma online y la misma plataforma de distribución se trata de crear lacadena de valor completa desde que un producto o servicio se fabrica hastaque llega al consumidor final.

El B2B2C, también se emplea en algunos casos para definir a los mercadosllamados “mercados diagonales” en Internet, plataformas en línea (online) queatienden tanto a transacciones comerciales entre negocios como entre negociosy consumidores finales. Por lo general estos mercados diagonales suelen ser pro-porcionados por fabricantes o mayoristas que proporcionan una diferenciaciónde precios y condiciones comerciales según se trate de una compra hacia undistribuidor o minorista (otra empresa) o un consumidor final o ciudadano.

2.6. M-Commerce (Comercio Electrónico a Travésde Dispositivos Móviles)

El comercio electrónico se está transformando lentamente en m-commerce,un nuevo modelo de comercio on-line en el cual los teléfonos móviles, u otrosartefactos wireless (inalámbricos), jugarán un papel muy importante. Todoslos carriers importantes del mundo están desarrollando planes sobre este pa-radigma.

El fuerte desarrollo de la norma GSM en Europa, el sistema de SMS,y especialmente el WAP, facilitaron el acceso móvil e interactivo a datos,abriendo nuevas posibilidades para el comercio. Pero esas oportunidades tienenalgunas dificultades como el ancho de banda limitado que aún complica las

Page 49: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.6. M-COMMERCE 27

transmisiones, y la interfaz de usuario de los dispositivos móviles es limitadaen tamaño. Además, los costos de acceso son altos, y el poder de cómputo deestos dispositivos es mucho más pequeño que el de las PCs.

El m-commerce involucra tres aspectos básicos:

Oferta de los negocios y servicios en un área circundante al usuario.

Información oportuna georeferenciada mientras el usuario está en movimien-to.

Posibilidad de completar la transacción de forma inmediata.

Por ello debe ofrecer al usuario las siguientes prestaciones:

Negociación y entrega inmediata.

Métodos de micro y macro pagos.

Facilidades de uso en el contexto móvil.

Comercio Electrónico en la Sociedad del Conocimiento

A mediados de los noventa se inició la utilización de Internet con finescomerciales, en ese momento nadie pudo predecir su impacto en la economía.

Se puede afirmar que Internet no es solo un canal de transmisión o comuni-cación de información, sino que lleva implícito un cambio cultural importante.

Por lo tanto la trascendencia de la economía digital permite hablar de unnuevo marco de actuación, de una génesis parametral que traslada el desarrolloorganizativo a otro nivel. La economía digital es una economía de cambiosimportantes, tanto en la forma de entender la gestión dentro y fuera de lasempresas como en la ampliación más allá de los límites nacionales para eldesarrollo de su actividad.

Efectivamente, la personalización de la relación con el cliente como lanecesidad de ofrecer valor, interactividad y el trato directo e inmediato con-stituyen elementos diferenciados de primer nivel, siendo uno de los ejemplosmás sólidos en la relación cliente-empresa, el B2C.

Page 50: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

28 CAPÍTULO 2. COMERCIO ELECTRÓNICO

2.7. Comercio Electrónico en la Sociedad del Cono-cimiento

A mediados de los noventa se inició la utilización de Internet con finescomerciales, en ese momento nadie pudo predecir su impacto en la economía.

Se puede afirmar que Internet no es solo un canal de transmisión o comuni-cación de información, sino que lleva implícito un cambio cultural importante.

Por lo tanto la trascendencia de la economía digital permite hablar de unnuevo marco de actuación, de una génesis parametral que traslada el desarrolloorganizativo a otro nivel. La economía digital es una economía de cambiosimportantes, tanto en la forma de entender la gestión dentro y fuera de lasempresas como en la ampliación más allá de los límites nacionales para eldesarrollo de su actividad.

Efectivamente, la personalización de la relación con el cliente como lanecesidad de ofrecer valor, interactividad y el trato directo e inmediato con-stituyen elementos diferenciados de primer nivel, siendo uno de los ejemplosmás sólidos en la relación cliente-empresa, el B2C.

2.8. Riesgos, Usos y Tecnología

2.8.1. Riegos

Como medio comercial el Web presenta las siguientes deficiencias, derivadastanto de su tecnología como de su naturaleza interactiva:

Entorno empresarial y tecnológico cambiante

Empresas y clientes desean tener flexibilidad para cambiar, según su vo-luntad, de socios comerciales, plataformas y redes. No es posible evaluar elcosto de esto, pues depende del nivel tecnológico de cada empresa, así comodel grado deseado de participación en el comercio electrónico. Como mínimouna empresa necesitará una computadora personal con sistema operativo Win-dows o Machintosh, un módem, una suscripción a un proveedor de serviciosde Internet, una línea telefónica. Una compañía que desee involucrarse más,

Page 51: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.8. RIESGOS, USOS Y TECNOLOGÍA 29

deberá prepararse para introducir el comercio electrónico en sus sistemas decompras, financieros y contables, lo cual implicará el uso de un sistema parael intercambio electrónico de datos con sus proveedores y/o una intranet consus diversas sedes.

Privacidad y seguridad

La mayoría de los usuarios no confía en el Web como canal de pago. Enla actualidad, las compras se realizan utilizando el número de la tarjeta decrédito, pero aún no es seguro introducirlo en Internet sin conocimiento al-guno. Cualquiera que transfiera datos de una tarjeta de crédito mediante elWeb, no puede estar seguro de la identidad del vendedor. Análogamente, ésteno lo está sobre la del comprador. Quien paga no puede asegurarse de quesu número de tarjeta de crédito no sea recogido y sea utilizado para algúnpropósito malicioso; por otra parte, el vendedor no puede asegurar que eldueño de la tarjeta de crédito rechace la adquisición. Resulta irónico que yaexistan y funcionen correctamente los sistemas de pago electrónico para lasgrandes operaciones comerciales, mientras que los problemas se centren en lasoperaciones pequeñas, que son mucho más frecuentes.

Cuestiones legales, políticas y sociales

Existen algunos aspectos abiertos en torno al comercio electrónico:

- Validez de la firma electrónica.

• No repudio.

• Legalidad de un contrato electrónico.

• Violaciones de marcas y derechos de autor.

• Pérdida de derechos sobre las marcas.

• Pérdida de derechos sobre secretos comerciales y responsabilidades.

• Por otra parte, deben considerarse las leyes, políticas económicas ycensura gubernamentales.

Page 52: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

30 CAPÍTULO 2. COMERCIO ELECTRÓNICO

2.8.2. Usos

El comercio electrónico puede utilizarse en cualquier entorno en el que seintercambien documentos entre empresas: compras o adquisiciones, finanzas,industria, transporte, salud, legislación y recolección de ingresos o impuestos.Ya existen compañías que utilizan el comercio electrónico para desarrollar losaspectos siguientes:

Creación de canales nuevos de mercadeo y ventas.

Acceso interactivo a catálogos de productos, listas de precios y folletospublicitarios.

Venta directa e interactiva de productos a los clientes.

Soporte técnico ininterrumpido, permitiendo que los clientes encuentrenpor sí mismos, y fácilmente, respuestas a sus problemas mediante laobtención de los archivos y programas necesarios para resolverlos.

Mediante el comercio electrónico se intercambian los documentos de lasactividades empresariales entre socios comerciales. Los beneficios que se ob-tienen en ello son: reducción del trabajo administrativo, transacciones comer-ciales más rápidas y precisas, acceso más fácil y rápido a la información, yreducción de la necesidad de reescribir la información en las computadoras.Los tipos de actividad empresarial que podrían beneficiarse mayormente de laincorporación del comercio electrónico, son:

Sistemas de reservas. Centenares de agencias dispersas utilizan una basede datos compartida para acordar transacciones.

Existencias comerciales. Aceleración a nivel mundial de los contactosentre mercados de existencias.

Elaboración de pedidos. Posibilidad de referencia a distancia o verifi-cación por parte de una entidad neutral.

Seguros. Facilita la captura de datos.

Empresas que suministran a fabricantes. Ahorro de grandes cantidadesde tiempo al comunicar y presentar inmediatamente la información queintercambian.

Page 53: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.9. TIPOS DE RELACIONES, CAMBIOS Y EFECTOS 31

2.8.3. Teconolgías que emplea

El comercio electrónico utiliza un amplio rango de tecnologías como son:

Intercambio Electrónico de Datos (Electronic Data Interchange).

Correo Electrónico (E-mail o Electronic Mail).

Transferencia Electrónica de Fondos (EFT- Electronic Funds Transfer) .

Aplicaciones Internet: Web, News, Gopher, Archie.

Aplicaciones de Voz: Buzones, Servidores.

Transferencia de Archivos.

Diseño y Fabricación por Computadora (CAD/CAM).

Multimedia.

Tableros Electrónicos de Publicidad.

Videoconferencia.

2.9. Tipos de Relaciones, Cambios y Efectos

2.9.1. Tipos de Relaciones que Pueden Presentarse

El comercio electrónico es un método contemporáneo para la transacciónempresarial que enfoca la necesidad percibida, tanto por las empresas comopor sus clientes, de disminuir los costos de los bienes y servicios, mantenien-do la cantidad e incrementando la velocidad de entrega. Las actividades demanejo de la información que se realizan en el comercio electrónico mediantetransacciones empresariales pueden clasificarse en las siguientes categorías:

Transacciones entre una empresa y sus clientes mediante una red públicade telecomunicaciones (teléfono + módem) con el propósito de realizarcompras desde el hogar (“home shopping”), o el banco en su casa (“homebanking”) utilizando técnicas de cifrado para manejar los aspectos deseguridad y dinero electrónico.

Page 54: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

32 CAPÍTULO 2. COMERCIO ELECTRÓNICO

Transacciones con socios comerciales usando EDI.

Transacciones para la obtención de información: investigación de merca-dos utilizando exploradores de códigos de barras, tratamiento de infor-mación para la toma de decisiones directivas o la solución de problemasorganizativos, y la manipulación de información para la organización deoperaciones, como la administración de la cadena de proveedores de unaempresa.

Transacciones para la distribución de información con clientes poten-ciales, tales como mercadeo, publicidad, y ventas interactivas.

La conectividad entre los participantes es una cuestión esencial para laviabilidad del comercio electrónico, 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 teleco-municaciones ha proporcionado los medios para el intercambio casi instantáneode los datos. El comercio electrónico hace uso de estos flujos de datos de unaforma eficaz. El intercambio eficiente de la información determina el éxito deuna empresa; cuando se logra asegurar que el personal de una compañía con-sume más tiempo en la producción o venta de productos y servicios, en lugarde reprocesar innecesariamente los datos, se puede decir que ha iniciado laoptimización 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 ubicacióngeográfica, lo que implica que la actividad empresarial puede realizarse concualquier persona y en cualquier parte del mundo de manera instantánea.Esto significa que las empresas deben replantear sus estrategias empresariales,sean cuales fueran sus objetivos: ampliación del mercado, obtención de bienespor parte de proveedores nuevos, externalización de servicios (“outsourcing”),o búsquedas de nuevas alianzas.

El comercio electrónico se introduce en las empresas en tres fases:

Sustitución de las operaciones manuales basadas en papel por alternati-vas electrónicas.

Page 55: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.9. TIPOS DE RELACIONES, CAMBIOS Y EFECTOS 33

Replanteamiento y simplificación de los flujos de información.

Uso novedoso y dinámico de los flujos de información.

La sustitución de los sistemas basados en papel, tanto dentro de una em-presa, como entre ellas, produce pocos beneficios reales. Es cierto que reducelos costos administrativos y mejora el nivel de precisión en el intercambio dedatos, pero no aborda las cuestiones relacionadas con que las actividades co-merciales se hagan eficientemente a la primera. Las aplicaciones del comercioelectrónico ayudan a reformar las maneras de realizar las actividades comer-ciales, y con frecuencia, actúan como un catalizador para que las empresasutilicen la reingeniería de procesos empresariales.

2.9.3. Efectos

A continuación se mencionan algunas consecuencias derivadas del desarro-llo del comercio electrónico:

Empresas virtuales.

Es la oportunidad para utilizar socios comerciales externos sin una ubi-cación física, pues se establece una relación basada en transacciones electróni-cas.

Los vendedores pequeños acceden al mercado global.

Tradicionalmente estos mercados que tan sólo han estado abiertos para lasmultinacionales, se vuelven accesibles a las compañías más pequeñas debido ala escasa cantidad de recursos necesarios para funcionar en el extranjero.

Transformación de tiendas de venta al menudeo.

El crecimiento de las compras desde el hogar y de la venta directa por partede los fabricantes provocará una disminución en los precios, y en consecuencia,una reducción de las comisiones.

Page 56: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

34 CAPÍTULO 2. COMERCIO ELECTRÓNICO

Presión sobre el servicio al cliente, el ciclo de desarrollo y los costos.

Aumentará la necesidad de la entrega rápida y directa. La cadena de valorserá cada vez menos tolerante con la necesidad de inventarios y almacenamien-to. Será inevitable el incremento de la competencia, así como de la necesidadde dinero electrónico.

2.10. Los Intermediarios

El advenimiento de infraestructuras ubicuas de información ha provoca-do predicciones respecto a que uno de los efectos de los mercados será laeliminación de los intermediarios, basándose en la capacidad de las redes detelecomunicaciones. Sin embargo, la realidad puede ser bien distinta puestoque las tecnologías de la información no sólo reforzarán la posición de los in-termediarios tradicionales, sino que además promoverán la aparición de nuevasgeneraciones de intermediarios. En un mercado tradicional puede considerarseque los intermediarios proporcionan un servicio de coordinación, sin embargo,es necesario definir con mayor precisión esta actividad para identificar cómoafectará Internet a esta tarea:

Búsqueda y Evaluación.

Un cliente que elige una tienda especializada sobre unos grandes almacenesescoge implícitamente entre dos alternativas de búsqueda y criterios de evalua-ción. En cualquier caso el cliente delega una parte del proceso de búsqueda delproducto en el intermediario, quien también suministra un control de calidady evaluación del producto.

Valoración de Necesidades y Emparejamiento de Necesidades.

En muchos casos no es razonable asumir que los clientes posean el cono-cimiento individual necesario para evaluar fidedignamente sus necesidades eidentificar los productos que las cumplirán eficazmente. Por lo tanto los in-termediarios pueden suministrar un servicio valioso ayudando a sus clientes adeterminar sus necesidades. Proporcionando información no sólo del produc-to, sino sobre su utilidad, e incluso proporcionando la asistencia explícita de

Page 57: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.10. LOS INTERMEDIARIOS 35

un experto para identificar las necesidades de los clientes, los intermediariosproporcionan a los clientes servicios sobre la evaluación de los productos.

Manejo de los Riesgos del Cliente.

Los clientes no siempre tienen la información perfecta y por tanto puedencomprar productos que no satisfagan sus necesidades, en consecuencia en cual-quier transacción al detalle el cliente se enfrenta con ciertos riesgos. Estospueden ser el resultado de una incertidumbre en las necesidades del cliente,un fallo en la comunicación con respecto a las características, o un fallo in-tencionado o accidental del fabricante al proporcionar un producto adecuado.Otro servicio que proporcionan muchos intermediarios está relacionado conel manejo de este riesgo, suministrando a los clientes la opción de devolverlos productos defectuosos o proporcionando garantías adicionales, los inter-mediarios reducen la exposición de los clientes a los riesgos asociados con loserrores de los fabricantes. Si el cliente tiene la opción de devolver los productospor cualquier motivo, el intermediario reduce más la exposición del cliente alos riesgos asociados con los fallos de los clientes para valorar las necesidadescon precisión y compararlas con las características del producto. Por lo tanto,eligiendo un intermediario que proporciona estos servicios, los clientes estáncomprando implícitamente al intermediario un seguro.

Distribución de Productos.

Muchos intermediarios juegan un papel importante en la producción, en-vasado y distribución de bienes. La distribución es un factor crítico en ladeterminación del valor de la mayoría de los bienes de consumo. Por ejemploun litro de gasolina a mil Km del hogar de un cliente frente al que está a unKm es significativamente diferente, debido principalmente a los servicios dedistribución proporcionados.

Difusión de Información sobre Productos.

Se trata de que el intermediario informe a los clientes sobre la existencia ylas características de los productos. Los fabricantes confían en una variedad deintermediarios, incluyendo a las tiendas de venta al menudeo, casas de ventaspor correo / catálogo, agencias de publicidad y puntos de venta para informara los clientes.

Page 58: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

36 CAPÍTULO 2. COMERCIO ELECTRÓNICO

Influencia sobre las Compras.

A fin de cuentas, a los fabricantes no sólo les interesa proporcionar in-formación a los clientes, sino vender productos. Además de los servicios deinformación, los fabricantes también valoran los servicios relacionados con lainfluencia en las elecciones de compra de los clientes: la colocación de losproductos por parte de los intermediarios puede influir en la elección de losmismos, como poder asesorarse explícitamente mediante un vendedor. Esque-mas para la compensación de comisiones, pagos por el espacio en estanteríasy descuentos especiales son formas en las que los fabricantes ofrecen serviciosde asesorías de compras a los intermediarios.

Suministro de Información.

Esta información que es recogida por intermediarios especializados comoempresas de investigación de mercados, es utilizada por los fabricantes paraevaluar nuevos productos y planificar la producción de los existentes.

Manejo de los Riesgos del Fabricante.

El fraude y robo realizado por los clientes es un problema que tradicional-mente ha sido tratado por los detallistas e intermediarios crediticios. En elpasado, estos intermediarios han proporcionado sistemas y políticas para limi-tar este riesgo. Cuando no podía eliminarse, eran los intermediarios quienesafrontaban la exposición a este riesgo.

Integración de las Necesidades de los Clientes y de los Fabri-cantes.

Los intermediarios deben ocuparse de problemas que surgen cuando lasnecesidades de los clientes chocan con las de los fabricantes. En un entornocompetitivo, un intermediario satisfactoriamente integrado proporciona un hazde servicios que equilibra las necesidades de los clientes y de los fabricantes deuna forma aceptable para ambos.

Page 59: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.10. LOS INTERMEDIARIOS 37

2.10.1. Tipos de Intermediarios

A continuación se identifican diversos tipos de intermediarios basados enInternet :

Directorios.

Ayudan a los clientes a encontrar productos clasificando instalaciones Weby proporcionando menús estructurados para facilitar la navegación. En la ac-tualidad son gratuitos, pero en el futuro podrían ser de pago. Existen trestipos de directorios:

- Generales:

• Como por ejemplo, Yahoo que proporciona un catálogo generalde una gran variedad de diferentes sitios Web. Habitualmente existeun esquema para organizar y elegir los sitios que serán incluidos.Estas instalaciones suelen soportar “browsing” así como búsquedadel catálogo mediante palabras clave.

• Comerciales:

Como El Indice que se centra en proporcionar catálogos de sitioscomerciales. No proporcionan infraestructura o servicios de desarrollopara los fabricantes, sino que tan sólo actúan como un directorio deinstalaciones existentes. También pueden suministrar información sobreuna área comercial específica, con frecuencia a empresas que no tienenWeb. Estos intermediarios son equivalentes a los editores de guías enpapel.

• Especializados:Están orientados a temas, y son incluso tan sencillos como

una página creada por una persona interesada en un tema. Estaspáginas pueden suministrar al cliente información sobre un bien ofabricante en particular.

Servicios de Búsqueda.

Similares a AltaVista, proporcionan a los usuarios capacidades para re-alizar búsquedas basadas en palabras clave sobre grandes bases de datos depáginas o instalaciones Web.

Page 60: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

38 CAPÍTULO 2. COMERCIO ELECTRÓNICO

Centros comerciales.

Son instalaciones que proporcionan una infraestructura al fabricante o aldetallista a cambio de una cuota. Pueden estar compuestos de una gran varie-dad de tiendas que venden múltiples productos.

Editoriales.

Son generadores de tráfico que ofrecen contenidos de interés para los clientes,que parecen periódicos o revistas interactivas. Las editoriales se convierten enintermediarios cuando ofrecen vínculos con los fabricantes a través de publici-dad o listas de productos relacionadas con sus contenidos.

Revendedores Virtuales.

Estos intermediarios existen para vender a los clientes centrándose en pro-ductos especializados que obtienen directamente de los fabricantes, quienespueden dudar en dirigirse directamente a los clientes por temor a alejar a losdetallistas de los que dependen.

Evaluadores de los sitios Web.

Los clientes pueden dirigirse a un fabricante a través de un sitio queofrece alguna forma de evaluación, lo que puede ayudar a reducir suriesgo. Algunas veces las evaluaciones se basan en la frecuencia de acceso,mientras que en otros casos son una revisión explícita de las instalaciones.

Auditores.

Tienen funciones similares a las de los servicios de medición de audiencia enmedios tradicionales. El comercio electrónico requiere de los mismos serviciosadicionales que facilitan el comercio tradicional. Los anunciantes requiereninformación sobre las tasas de uso asociadas con la publicidad en el Web, asícomo información fidedigna sobre las características de los clientes.

Foros, Clubes de Aficionados y Grupos de Usuarios.

Page 61: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

2.10. LOS INTERMEDIARIOS 39

Estos tipos de instalaciones no son necesariamente intermediarios directos,pero pueden jugar un gran papel al facilitar la retroalimentación entre clientesy fabricantes, así como soportar la investigación de mercados. Los mejoresejemplos de estos grupos son las listas relacionadas con productos que conectanal fabricante con los clientes.

Intermediarios Financieros.

Cualquier forma de comercio electrónico debe permitir alguna manera derealizar o autorizar pagos del comprador hacia el vendedor. Los sistemas depago podrán ser desde autorización de crédito, cheques electrónicos, pago enefectivo y envío de correo electrónico seguro para autorizar un pago.

Redes de Trueque.

Es posible que las personas cambien un bien o un servicio por otro, envez de pagarlo con dinero. Aparecerán intermediarios similares a las casas desubastas y bolsas de mercancías para capitalizar estas oportunidades.

Agentes Inteligentes.

Son programas que mediante un criterio preliminar de búsqueda propor-cionado por el usuario, facilitan la localización de recursos a través de Internet,aprendiendo de los comportamientos pasados para optimizar las búsquedas.Esto puede convertirse en un nuevo servicio de intermediación que los clientesadquieren cuando necesitan cierto bien o servicio.

Page 62: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 63: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 3

El Mundo Móvil

3.1. Evolución

En 1983, aparecieron en el mercado los primeros teléfonos celulares quepodían llevarse a todos lados. Desde esos comienzos, los teléfonos celulareso móviles han sido vistos como la comunicación del futuro. Se trataba deun equipo que permitía permanecer comunicado en todo momento y en todolugar, con amigos, familiares y con la empresa. Además cambiaba radicalmenteel modo de comunicarse: ya la comunicación no se realizaba con un lugar, sinodirectamente con una persona.

En seguida fue adoptado por empresarios, corredores de bolsa, transportis-tas, hasta llegar a la época actual donde prácticamente cada integrante de unafamilia puede llegar a tener su propio equipo celular.

La primera generación de teléfonos celulares comenzó en 1979 y se tratabade conexiones estrictamente de voz y analógicas. Estas conexiones no teníanseguridad y generaban muchos conflictos en las comunicaciones. La tecnologíaque ha permitido esta comunicación se llamó AMPS (Advanced Mobile PhoneSystem) y todavía sigue siendo utilizada en lugares rurales y ciudades alejadasde América.

Hacia 1990 la tecnología evolucionó a lo que se denominó 2G (SegundaGeneración) o PCS (Personal Communication Service). Esta etapa se car-acterizó por ser digital y utilizar algoritmos de compresión y seguridad mássofisticados en las comunicaciones. Sigue siendo la tecnología más utilizada

41

Page 64: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

42 CAPÍTULO 3. EL MUNDO MÓVIL

actualmente en las comunicaciones móviles del mundo.

En esta etapa, se encuentran predominantemente 3 tipos de tecnologíascompitiendo en el mercado: CDMA, TDMA y GSM .

GSM es la tecnología que más ha evolucionado en ésta generación y porello, actualmente, posee más del 70% del mercado mundial. Técnicamente esun derivado de la tecnología TDMA [7].

El sistema 2G trajo consigo nuevas aplicaciones de datos sobre la red celu-lar: fax, módem, SMS; aunque rápidamente su capacidad de ancho de bandaquedó limitada. Por esta limitación de la segunda generación (9,6 Kbps) y, aldarse cuenta que la próxima generación (la 3G) tardaría unos cuantos añosmás en venir, los fabricantes crearon un intermedio llamado 2.5G que permitíaconexiones de datos más veloces, como lo es el protocolo GPRS que permitevelocidades de 64 Kbps o superiores.

En pocos países del mundo ya está instalada la 3G (Tercera Generación) detelefonía celular. Esta tecnología tiene un mayor ancho de banda en las trans-misiones de datos que permite, por ejemplo, video streaming, videoconferenciasy otras aplicaciones de alta performance. Las velocidades son superiores a los144 Kbps.

Tres de las tecnologías más importantes en 3G al momento son: W-CDMA,TD-SCDMA y CDMA2000. Las velocidades de transmisión de estas tecnologíasvan de 384 Kbps a 4 Mbps, ya superan a conexiones de banda ancha hogareñasen ADSL que están entre 1 Mbp y 1 Gbps. Se debe recordar que estas veloci-dades se logran en forma inalámbrica y en constante movimiento del equipo(a mayor velocidad de movimiento, menor ancho de banda). También ya sehabla de una 4G que comenzaría a implementarse hacia 2010 y que traeríaaparejado velocidades de 100 Mbps, equiparables con las velocidades actualesde una red local.

3.2. Teléfonos Móviles de Primera Generación

El sistema más antiguo fue el de los radioteléfonos móviles que se utiliz-aban de forma esporádica para comunicación marítima y militar durante lasprimeras décadas del siglo XX. En 1946 se construyó el primer sistema deteléfonos instalado en autos. Este sistema utilizaba un solo transmisor grandecolocado en la parte superior de un edificio y tenía un sólo canal que servía

Page 65: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.2. TELÉFONOS MÓVILES DE PRIMERA GENERACIÓN 43

para enviar y recibir. Para hablar, el usuario tenía que oprimir un botón quehabilitaba el transmisor e inhabilitaba el receptor. Tales sistemas, conocidoscomo sistemas de oprimir para hablar, se instalaron en algunas ciudades desdefinales de la década de 1950.

En la década del 60 se instaló el IMTS (Sistema Mejorado de TelefoníaMóvil), también utilizaba un trasmisor de alta potencia (200 watts), en lacima de una colina, pero tenía dos frecuencias, una para enviar y la otra pararecibir, por lo que el botón de oprimir para hablar no era necesario.

IMTS manejaba 23 canales dispersos desde 150 hasta 450 Mhz. Debidoal número tan pequeño de canales, los usuarios a veces tenían que esperarbastante tiempo antes de obtener el tono de marcar.

3.2.1. Sistema Avanzado de Telefonía Móvil

La telefonía móvil terrestre utiliza estaciones terrestres. Éstas se encargande monitorizar la posición de cada terminal encendida, pasar el control de unallamada en curso a otra estación, enviar una llamada a un terminal. Cadaestación tiene un área de cobertura, zona dentro de la cuál la comunicaciónentre un terminal y ésta se puede hacer en buenas condiciones.

Las zonas de cobertura teóricamente son hexágonos regulares o celdas. Enla práctica, toman distintas formas, debido a la presencia de obstáculos y ala orografía cambiante de la celda como se puede apreciar en la fig. 3.1 de lapág. 44. Además se solapan unas con otras. Es por esto, que cuando un móvilestá cerca del límite entre dos celdas, puede pasar de una a otra, en funciónde cuál de las dos le ofrezca más nivel de señal, y esto puede suceder inclusodurante el transcurso de una llamada sin que se perciba nada.

En todos los sistemas de telefonía móvil , una región geográfica se divide enceldas, razón por la cuál los dispositivos se conocen como teléfonos celulares.

En AMPS (Sistema Avanzado de Telefonía Móvil, inventado por los lab-oratorios Bell e instalado por primera vez en los Estados Unidos) las celdasnormalmente tienen de 10 a 20 km de diámetro; en los sistemas digitales. Cadacelda utiliza un conjunto de frecuencias que no es utilizada por ninguna de susvecinas.

La idea clave que confiere a los sistemas celulares con más capacidad quetodos lo sistemas anteriores es el uso de celdas relativamente pequeñas y la

Page 66: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

44 CAPÍTULO 3. EL MUNDO MÓVIL

Figura 3.1: Sistema Telefónico Móvil

reutilización de las frecuencias de transmisión en celdas cercanas (pero noadyacentes).

Un sistema IMTS de 100 km de alcance puede tener una llamada en cadafrecuencia, un sistema AMPS podría tener 100 celdas de 10 km en la mismaárea con 5 a 10 llamadas en cada frecuencia en celdas muy separadas. El diseñocelular incrementa la capacidad del sistema en un orden de magnitud conformelas celdas se hacen más pequeñas en su área de cobertura. Además, al ser lasceldas más pequeñas se necesita menor potencia, lo cual conduce a dispositivosmás pequeños y económicos.

En el centro de cada celda se encuentra una estación base a la cuál trans-miten todos los teléfonos de la celda. La estación base consiste en una com-putadora y un transmisor / receptor conectado a una antena. En un sistemapequeño, todas las estaciones base se conectan a un mismo dispositivo llamadoMTSO (Oficina de Telefonía Móvil) o MSC (Centro de Conmutación Móvil).

En un sistema grande pueden ser necesarias varias MTSOs, las cuales seconectan a una MTSO de segundo nivel y así sucesivamente.

En cualquier instante cada teléfono móvil está en una celda específica ybajo el control de la estación base de esa celda. Cuando un teléfono móvil salede una celda, ésta le cede el control a otra estación circundante.

Cada estación trabaja con un rango de frecuencias, que delimita el númeromáximo de llamadas simultáneas que puede soportar, puesto que a cada lla-

Page 67: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.3. TELÉFONOS MÓVILES DE SEGUNDA GENERACIÓN 45

mada se le asigna un par de frecuencias diferentes: una para cada sentido dela comunicación. Esto se denomina FDM, o multiplexación por división en lafrecuencia. Las celdas colindantes no pueden utilizar las mismas frecuencias,para que no se produzcan interferencias.

Cada teléfono móvil en AMPS tiene un número de serie de 32 bits y unnúmero telefónico de 10 dígitos en su PROM. Cuando un teléfono se enciende,examina una lista preprogramada de 21 canales de control para encontrar laseñal más potente.

Luego el teléfono difunde su número de serie de 32 bits y su número deteléfono de 34 bits [17].

3.3. Teléfonos Móviles de Segunda Generación

La primera generación de teléfonos móviles fue analógica; la segunda fue di-gital. De igual manera que en la primera generación no hubo una estandarizaciónmundial de tecnologías, tampoco hubo en la segunda generación. Existen cu-atro sistemas en uso: D-AMPS; GSM; CDMA y PDC.

3.3.1. D-AMPS - El Sistema Avanzado de Telefonía Móvil Di-gital

D-AMPS se describe en el estándar internacional IS-54 y su sucesor IS-136. D-AMPS se diseñó con mucho cuidado para que pudiera coexistir conAMPS, a fin de que tanto teléfonos móviles de primera generación como losde segunda pudieran funcionar de manera simultánea en la misma celda.

D-AMPS utiliza los mismos canales de 30 KHz que AMPS y a las mismasfrecuencias a fin de que un canal pueda ser analógico y los adyacentes digitales.

Cuando D-AMPS se introdujo como un servicio, se puso disponible unanueva banda de frecuencia para manejar la carga esperada creciente. Loscanales ascendentes estaban en el rango de 1850-1910 MHz y los canales de-scendentes correspondientes estaban en el rango de 1930-1990 MHz.

En un teléfono móvil D-AMPS, la señal de voz capturada por el micró-fono se digitaliza y se comprime. La compresión se crea mediante un circuitollamado vocoder y se realiza en el teléfono en lugar de en la estación base o

Page 68: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

46 CAPÍTULO 3. EL MUNDO MÓVIL

la central, para reducir el número de bits que se envían a través del enlacede aire. Con la telefonía fija, no hay beneficio de hacer que la compresión serealice en el teléfono, debido a que la reducción del trafico en el circuito localno incrementa la capacidad del sistema.

Gracias a que la digitalización y compresión se realiza en el teléfono, tresusuarios pueden compartir un solo par de frecuencias que utilizan la multiplex-ión por división de tiempo. Cada par de frecuencias maneja 25 tramas / segde 40 mseg cada uno como se puede ver en la fig. 3.2 de la pág. 46. Ademáscada 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: configuración del sistema, control en tiemporeal, y en tiempo no real, localización, respuesta de acceso y mensajes cortos.

Cuando se enciende un teléfono móvil, hace contacto con la estación basepara anunciarse y después escucha un canal de control para llamadas entrantes.

La MTSO informa a la base doméstica del usuario dónde está, y las lla-madas se pueden enrutar en forma correcta.

3.3.2. GSM (Sistema Global Para Comunicaciones Móviles)

GSM es similar a D-AMPS. Los dos son sistemas celulares. En ambos seutiliza la multiplexación por división de frecuencia, en el que cada dispositivomóvil transmite en una frecuencia y recibe en una frecuencia mayor (80 MHzmás arriba para D-AMPS, 55 MHz más arriba para GSM).

Page 69: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.3. TELÉFONOS MÓVILES DE SEGUNDA GENERACIÓN 47

Ademá, en los dos sistemas, se utiliza multiplexión por división de tiempopara dividir un solo par de frecuencias en ranuras de tiempo compartidas pormúltiples teléfonos móviles. Sin embargo los canales GSM son mucho másanchos que los AMPS (200 KHz en comparación de 30 KHz) y almacenanrelativamente pocos usuarios (8 en comparación con 3), lo que le da a GSMuna tasa de datos mucho más grande por usuario que D-AMPS.

Cada banda de frecuencia tiene una longitud de 200 KHz. Un sistema GSMtiene 124 pares de canales simplex. Cada uno de ellos tiene una longitud de200 KHz y maneja ocho conexiones por separado, mediante la multiplexión pordivisión de tiempo. En cada celda se pueden manejar hasta 992 canales, aunquemuchos de ellos no están disponibles, para evitar conflictos de frecuencias conlas celdas vecinas.

La transmisión y la recepción no suceden en la misma ranura de tiempoporque los radios GSM no pueden transmitir y recibir al mismo tiempo.

Algunas de estas ranuras se utilizan para almacenar algunos canales decontrol utilizados para manejar el sistema.

El canal de control de difusión es flujo continuo de salida de la estaciónbase que contiene la identidad de la estación base, así como el estado del canal.Todas las estaciones móviles supervisan su fuerza de señal para ver cuándo sehan movido a una nueva celda.

El canal dedicado de control se utiliza para actualización de localización,registro y establecimiento de llamada. En particular, cada estación base mantieneuna base de datos de la estaciones móviles actualmente bajo su jurisdicción.La información necesaria para mantener esta base de datos se envía en el canaldedicado de control.

Hay un canal de control común, que se divide en tres subcanales lógicos.El primero de estos subcanales es el canal de localización, que la estación baseutiliza para anunciar llamadas entrantes. Cada estación móvil los supervisacontinuamente 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 mástarde. El tercer subcanal es el canal de otorgamiento de acceso [17].

Page 70: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

48 CAPÍTULO 3. EL MUNDO MÓVIL

3.3.3. CDMA (Acceso Múltiple por División de Código)

Se ve como la mejor solución técnica existente y como la base para lossistemas móviles de la tercera generación. También se utiliza ampliamente enlos Estados Unidos en los sistemas móviles de segunda generación y compitefrente a D-AMPS.

CDMA es completamente diferente de AMPS, D-AMPS y GSM. En lugarde dividir el rango de frecuencia permitida en algunos cientos de canales es-trechos, CDMA permite que cada estación transmita todo el tiempo a travésde todo el espectro de frecuencia. CDMA no supone que las tramas que coli-sionan son totalmente distorsionadas. Asume que se agregan múltiples señalesen forma lineal.

Se considera la siguiente analogía: Una sala de espera de un aeropuerto conmuchas parejas de personas conversando. TDM (multiplexión por división detiempo) se compara con todas las personas que están en medio de la salapero que esperan su turno para hablar. FDM (multiplexión por división defrecuencias) se compara con el hecho de que todas las personas que están engrupos separados ampliamente y cada grupo tiene su propia conversación almismo tiempo; aunque de manera independiente, que los otros.

CDMA se compara con el hecho de que todas las personas estén en mediode la sala hablando al mismo tiempo, pero cada pareja hablando en un lenguajediferente, la persona que habla francés se concentra con el francés, rechazandotodo lo que no se francés como si hubiera ruido. Por lo tanto la clave deCDMA es tener la capacidad de extraer la señal deseada y rechazar todo lodemás como ruido aleatorio.

A cada estación se le asigna un código único de m bits llamado secuenciade chip.

Cada estación utiliza completamente el megahertzio, por lo que la tasa dechips es de 1 megachip por segundo.

Cada estación tiene su propia y única secuencia de bits.

Funciona en una banda de 1.25 MHz, pero maneja muchos más usuariosen esa banda que cualquiera de los otros sistemas.

Page 71: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.4. TELÉFONOS MÓVILES DE TERCERA GENERACIÓN 49

3.4. Teléfonos Móviles de Tercera Generación

Algunos factores que están impulsando a la industria:

El tráfico de datos ya exede el tráfico de voz en la red fija y está creciendode manera exponencial.

La industria telefónica de entretenimiento y de cómputo han adoptadoformatos digitales y están convergiendo rápidamente.

La telefonía móvil de tercera generación trata de encontrar un dispositivoque sea portable y ligero que actúe como teléfono, reproductor de CDs, repro-ductor de DVDs, terminal de correo electrónico, interfaz para Web, máquinade juegos, procesador de texto, etc.

La ITU trató de concretar esto y creó un diseño para alcanzarlo, llamadoIMT-2000 (Telecomunicaciones Móviles Internacionales), pero no cumplió connada de lo anterior.

Luego, se realizaron varias propuestas, y después de varias selecciones,aparecieron las dos principales.

La primera, W-CDMA (CDMA de Banda Ancha), fue propuesta por Eric-sson. Este sistema utiliza espectro disperso de secuencia directa. Se ejecuta enuna banda ancha de 5 MHz y se ha diseñado para interactuar con redes GSMaunque no tiene compatibilidad hacia atrás con GSM.

Tiene la propiedad de que el invocador puede salir de una celdaW-CDMAy entrar a una celda GSM sin perder la llamada.

Este sistema se llamó UMTS (Sistema Universal de TelecomunicacionesMóviles).

El CDMA 2000, propuesto por Qualcomm, es un diseño de espectro disper-so de secuencia directa, básicamente una extensión de IS-95 y es compatiblehacia atrás con él.

Utiliza un ancho de banda de 5 MHz, pero no ha sido diseñado para inter-actuar con GSM y no puede entregar llamadas a una celda GSM (ni a unacelda D-AMPS).

Page 72: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

50 CAPÍTULO 3. EL MUNDO MÓVIL

Algunas de la diferencias técnicas con respecto a W-CDMA son las si-guientes: una tasa de chip diferente, un tiempo de trama diferente, se utilizaun espectro diferente y la sincronización de tiempo se realiza de una maneradiferente.

3.4.1. EDGE (Tasa de Datos Mejorada para la Evolución delGSM)

Mientras se espera la venida del 3G , algunos fabricantes dieron un pasointermedio que se llama 2.5G .

Uno de los sistemas es EDGE. Es simplemente GSM con más bits porbaudio. El problema es que más bits por baudio significan más errores porbaudio, por lo que EDGE tiene nueve esquemas diferentes para modulacióny corrección de errores, que difieren en la cantidad de ancho de banda que sededica a arreglar los errores introducidos por la velocidad más alta [17].

3.4.2. GPRS (Servicio de Radio de Paquetes Generales)

Es una red de paquetes superpuestos encima de D-AMPS o GSM. Permiteque las estaciones móviles envíen y reciban paquetes IP (protocolo de Internet)en una celda que se ejecuta en un sistema de voz.

Cuando GPRS está en operación, algunas ranuras de tiempo en algunasfrecuencias se reservan para el tráfico de paquetes.

La estación base puede manejar de manera dinámica el número y la ubi-cación de las ranuras de tiempo, dependiendo de la tasa de voz sobre el tráficode datos de la celda.

Las ranuras de tiempo disponibles se dividen en varios canales lógicos uti-lizados para propósitos diferentes.

La estación base determina qué canales lógicos se asignan en qué ranurasde tiempo.

Un canal lógico se utiliza para bajar paquetes de la estación base a algunasestaciones móviles, y cada paquete indica a quién va destinado.

Para enviar un paquete IP, una estación móvil solicita una o más ranuras

Page 73: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFÓNICAS 51

de tiempo enviando una petición a la estación base. Si la petición llega sindaño alguno, la estación base anuncia la frecuencia y las ranuras de tiempoasignadas al móvil para enviar el paquete. Una vez que el paquete llega a laestación base, se transfiere a Internet mediante una conexión de cable.

3.5. Servicios Adicionales de las Empresas Telefóni-cas

Los equipos celulares fueron pensados para transmitir voz. Lo primero quese piensa cuando se habla de teléfonos móviles es en la comunicación vocal,en comunicación a través de la voz de un punto a otro. Sin embargo, poco apoco, se fue conociendo cómo las empresas que proveían el servicio de telefoníacelular han ido incorporando servicios adicionales a lo largo del tiempo de vidade esta tecnología y, muchos de esos servicios se escapan del estricto uso de lavoz para la comunicación. Desde mensajería de texto, melodías personalizadas,hasta conexión a Internet. En los siguientes apartados se verá con detalle losservicios que los teléfonos celulares actuales pueden ofrecer.

3.5.1. Servicios Analógicos

En esta categoría ingresan todos los servicios adicionales que no requierenun equipo con capacidades digitales. Ni siquiera hace falta un teléfono conpantalla. Desde los viejos equipos Motorola, hasta los primeros modelos deteléfonos Motorota Startac (la línea 3000), las empresas de telefonía celularhan provisto de servicios adicionales al uso básico de la línea.

Estos servicios funcionaban a través de la red de voz, es decir la red analóg-ica que ya estaba instaurada. Entre ellos, se puede mencionar contestador au-tomático, alarmas, llamadas en conferencia, y servicios de información que seproveían (y todavía se proveen) comunicándose a un número particular queno pertenecía a la red fija de telefonía.

3.5.2. Recepción y Envío de Mensajes de Texto

Este servicio comenzó a funcionar en los años 90 y requería poseer equiposcon la capacidad de recepción de mensajes de texto en la pantalla del telé-

Page 74: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

52 CAPÍTULO 3. EL MUNDO MÓVIL

fono. Por ello, requieren equipos con pantalla alfanumérica y señal digital. Lasempresas permiten el envío de mensajes a un equipo celular a través de sussitios web, a través de una casilla de e-mail o desde otros equipos celulares. Elmensaje viaja por la red digital de la empresa y llega al equipo celular dondepodrá ser visualizado completamente en pantalla.

Estos mensajes tienen generalmente una longitud de 150 caracteres y sonconocidos también como SMS (Short Message System, Sistema de MensajesCortos). El mensaje es enviado al destinatario instantáneamente, salvo que elequipo receptor no esté encendido o esté fuera del área de cobertura. En estecaso, el mensaje queda latente, generalmente por unos días, para ser enviadoen el momento de restauración de la señal.

Con la gran aceptación que tuvo el Sistema de Mensajes Cortos comen-zaron a aparecer equipos con la posibilidad, no sólo de recibir mensajes, sinode emitirlos y así poder enviar mensajes a otros teléfonos, en un principio,entre dos teléfonos móviles que utilizaban una misma empresa proveedora.

Los mensajes son transferidos al nodo central de la empresa y de ahí di-rigidos al equipo destino. Es decir, la comunicación no se realiza teléfono ateléfono directamente.

A través de una pasarela, es común la posibilidad de enviar mensajes, no aotro teléfono, sino a una dirección de e-mail. Estas pasarelas son simplementenúmeros de destino donde el teléfono envía el mensaje y este equipo receptor(provisto por el proveedor del servicio) se encarga de redireccionar el mensajevía Internet utilizando el protocolo SMTP .

Con el tiempo este servicio se amplió y las empresas comenzaron a inter-conectar sus redes de mensajería corta y ya prácticamente, es posible enviar yrecibir mensajes cortos desde cualquier empresa proveedora a cualquier otradentro del mismo país y, a veces, a otros países.

3.5.3. Servicios de Información

Basados en el Servicio de Mensajería, las empresas proveedoras de la tele-fonía celular comenzaron a ofrecer servicios adicionales de información porese medio. Por ejemplo, es posible suscribirse a recibir información sobre: noti-cias, deportes, cotizaciones financieras, estados bancarios y otra informaciónque será enviada a todos los equipos celulares suscriptos.

Page 75: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFÓNICAS 53

Otra modalidad es el envío de información mediante SMS bajo demanda.Este servicio permite enviar cierto mensaje a un número predeterminado yrecibir a cambio alguna información de interés o solicitada. Estos servicios sonprovistos por las mismas empresas o por terceros con convenios especiales.

También han surgido salas de chat con la posibilidad de enviar y recibirmensajes a grupos de personas, comunicación con mensajeros instantáneos(como ser elMicrosoft Messenger o el Yahoo! Messenger) y juegos interactivosa través del Servicio de Mensajería. Algunos de estos servicios se ofrecen enforma gratuita [7].

3.5.4. Mensajes Multimedia

Los equipos móviles evolucionan a grandes pasos y debido a esto se puedenver equipos con capacidades multimedia. Por eso, se ha desarrollado una ex-tensión al servicio SMS, llamado MMS (Multimedia Messaging System).

Este sistema de intercambio de mensajes permite, además de texto (ampli-ado a 900 caracteres), adjuntar cualquier otro tipo de archivo digital, como serfotos, imágenes animadas, sonidos o videos. El equipo receptor deberá soportartambién esta tecnología y estar correctamente configurado en el equipo.

Esta tecnología generalmente trabaja enviando un mensaje de texto alteléfono receptor indicando una URL (dirección de la red) donde el equipopodrá descargar el contenido completo del mensaje. Estos mensajes no sonenviados en forma completa al equipo receptor. Es por eso por lo que, si elusuario no quiere recibir este tipo de mensajes puede configurar su equipo parano recoger automáticamente sus Mensajes Multimedia.

3.5.5. Juegos y Aplicaciones

Es una característica adicional provista por el fabricante del equipo. Gra-cias también al gran uso del SMS, los teléfonos comenzaron a ampliar eltamaño visual de sus pantallas. De esta forma, algunos equipos comenzarona incluir algunos pequeños juegos en sus modelos de celulares, como se puedeapreciar en la fig. 3.3 de la pág. 54.

Tampoco las aplicaciones se habían quedado atrás y ya comenzaban aaparecer en los equipos aplicaciones como calculadoras, agendas, calendarios,

Page 76: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

54 CAPÍTULO 3. EL MUNDO MÓVIL

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 selos veía como un mero aparato comunicacional, sino como una microcomputa-dora. Comenzaron a aprovecharse capacidades de procesamiento (mínimas,pero existentes) y, cuando esta capacidad de proceso se junta con la capaci-dad de conectividad de la red celular, se produce la revolución del softwaremóvil [7].

3.5.6. Internet Móvil

Internet Móvil es la capacidad que tiene un equipo celular de navegar porla red Internet. Si bien, con ciertas limitaciones, es posible leer e-mails, noticiasy ciertos sitios de Internet.

La tecnología que permite esta navegación por Internet es la llamadaWAP(Wireless Application Protocol) que hace de interfaz o pasarela entre la redInternet y el protocolo HTTP con el que se reciben las páginas web y la redcelular.

Este protocolo tenía una limitación y es que no soportaban páginas HTMLcomo sí lo soportan los navegadores para equipos estándar de computación, co-

Page 77: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFÓNICAS 55

mo Internet Explorer, Netscape u Opera. Los navegadoresWAP de los equiposcelulares soportan solamente páginas en formatoWML, que es una versión re-ducida de HTML y adaptada a las necesidades de contenido de un teléfonocelular.

El Fracaso y la Vuelta de Internet Móvil

El fracaso se debió a algunas razones, entre ellas:

Los proveedores de contenido no supieron adaptarse a las necesidadesde un navegante móvil. Sólo ofrecían una versión reducida de su mismocontenido web.

Las empresas de telefonía móvil facturaron este servicio por tiempo deaire consumido, lo que claramente era una bomba de tiempo para elusuario que se encontraba navegando, o intentándolo.

La experiencia de navegar por un celular ha sido muy frustrante paramuchos usuarios. Una vez que se lograba configurar correctamente elequipo, la navegabilidad de los equipos que, originalmente no estabanpreparados para tal fin (como ser ausencia de teclas, pantallas muy chi-cas), hicieron que los usuarios dejaran de lado esta tecnología.

No existieron gran cantidad de equipos con la capacidad de navegadorWAP.

La vuelta de Internet Móvil se debió a la aparición de nuevas tecnologíasque se ofrecen actualmente (como ser GSM, vía GPRS o CDMA2000x), ahoraes posible tarifar al usuario por información transferida y no por tiempo deaire, adicionando que los equipos tienen pantallas más grandes y con altasresoluciones de colores y sistemas de navegación e introducción de texto máscómodos [7].

Además de esta mejora tecnológica, el mercado ha ido evolucionando yya prácticamente todo equipo nuevo tiene navegador WAP y poco a poco,comenzaron a surgir nuevos serviciosWAP útiles para los usuarios, entre ellos:Clima, Información Geográfica, Guías Telefónicas para Turistas, Mapas deCalles y otra información que puede ser de suma utilidad para un usuario quese encuentra fuera del alcance de una PC con conexión a la web.

Page 78: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

56 CAPÍTULO 3. EL MUNDO MÓVIL

3.6. WAP

3.6.1. Introducción a WAP

Wireless Application Protocol o WAP (protocolo de aplicaciones inalám-bricas) es un estándar abierto internacional para aplicaciones que utilizan lascomunicaciones inalámbricas, por ejemplo acceso a servicios de Internet desdeun teléfono móvil.

Se trata de la especificación de un entorno de aplicación y de un conjunto deprotocolos de comunicaciones para normalizar el modo en que los dispositivosinalámbricos, se pueden utilizar para acceder a correo electrónico, grupo denoticias y otro tipo de aplicaciones disponibles desde Internet.

El organismo que se encarga de desarrollar el estándar WAP fue original-mente el WAP Forum, fundado por cuatro empresas del sector de las comuni-caciones móviles, Sony-Ericsson, Nokia, Motorola y Openwave (originalmenteUnwired Planet). Desde 2002 el WAP Forum es parte de la Open Mobile Al-liance (OMA), consorcio que se ocupa de la definición de diversas normasrelacionadas con las comunicaciones móviles, entre ellas las normas WAP.

La telefonía móvil e Internet se combinaron y ahora se puede tener Interneten un terminal móvil (teléfono celular) combinar la capacidad de Internet enun entorno donde el usuario puede moverse y disponer conexión las 24 horas deldía, en cualquier lugar. De esta idea surgeWAP, la arquitectura de protocolosTCP/IP (protocolo de Internet) presenta una serie de dificultades al momentode trabajar en entornos inalámbricos móviles.

Estos factores unidos al ancho de bandas limitados a la telefonía móvilcondicionan a los fabricantes mundiales a constituir el consorcio WAP Fo-rum para desarrollar una nueva pila de protocolos adecuada a los entornosinalámbricos con usuarios en movimientos [6].

Aunque WAP fue diseñado para utilizar cualquier tecnología móvil exis-tente, la más utilizada por WAP es GSM. GSM es una tecnología digital deacceso aéreo que incluye mecanismos de cifrado de comunicación entre terminalmóvil y la estación base.

Page 79: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.6. WAP 57

3.6.2. Motivación

Los terminales móviles son más potentes y livianos cada vez, permitiendoque la comunicación sea cada vez más eficaz. Su gran número y sus capacidadeshacen muy interesante para los proveedores de servicios y contenidos disponerde un entorno normalizado que permita ofrecer sus servicios a los usuarios delas redes móviles.

WAP define un entorno de aplicación y una pila de protocolos para apli-caciones y servicios accesibles a través de terminales móviles. Consiste en unconjunto de especificaciones, definidas por la Open Mobile Alliance / WAPForum, que permiten que los desarrolladores diseñen aplicaciones de inter-conexión para terminales móviles, típicamente teléfonos.

La tecnología WAP permite que los usuarios de estos dispositivos puedanacceder a servicios disponibles en Internet. Sin embargo, existen algunas con-sideraciones a tener en cuenta al diseñar estos servicios para usuarios móviles,fundamentalmente debidas a las características de los terminales: pantalla máspequeña que la de un ordenador personal, teclados más limitados que los de unordenador, limitaciones en la memoria disponible, tanto memoria RAM comomemoria para almacenamiento persistente, y limitaciones en la capacidad delprocesador, en comparación con la memoria y procesador de un ordenadorpersonal típico.

Las redes de telefonía móvil ofrecen también unas prestaciones por lo gener-al menores que los accesos a Internet, si bien con las redes de tercera generacióncomo UMTS las prestaciones mejoran de manera importante.

3.6.3. Modelo de WAP

El modelo de aplicaciónWAP como se puede ver en la fig. 3.4 de la pág. 58,es bastante similar alWWW, ya que todo el sistemaWAP está en el anterior.

Este parecido permite facilidades tales como un modelo de programaciónfamiliar, una arquitectura probada y la habilidad de utilizar herramientas ex-istentes (servidores web, herramientas XML, estándares de Internet) tambiéndebe indicarse que se ha intentado optimizar el modelo para un entorno in-alámbrico [6].

Como se puede desprender de la fig. 3.5 de la pág. 58, el modelo opera de

Page 80: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

58 CAPÍTULO 3. EL MUNDO MÓVIL

Figura 3.4: Modelo Wap.

Figura 3.5: Modelo de la Red Wap.

Page 81: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.6. WAP 59

la siguiente manera:

El usuario teclea la URL en su teléfono móvil.

El agente usuario envía la petición URL a la pasarela WAP mediante elprotocolo WAP.

La pasarela WAP genera una petición convencional HTTP para la URLpedida y la envía al servidor web.

El servidor web procesa la petición. Si es un fichero estático, toma elfichero y le añade una cabecera HTTP. Si es CGI ( Common GatewayInterface) u otra aplicación SCRIPT, lanza la aplicación.

El servidor Web devuelve la marca WML con la cabecera HTTP añadi-da, o la salida WML del CGI o SCRIPT.

La pasarela WAP verifica la cabecera HTTP y el contenido WML yla codifica a una forma binaria. Crea la respuesta WAP conteniendo elWML y lo envía al usuario.

El usuario recibe la respuesta WAP y muestra por pantalla el contenidoWML o SCRIPT.

El contenido se transporta usando la pila de protocolos. Además se disponede un Micro-navegador en el terminal móvil que hace de interfaz con el usuario.

WAP define un conjunto de componentes estándares que permiten la co-municación entre el cliente móvil y los servidores que deben incluir:

Modelo de nomenclatura: se utilizan los URLs estándar.

Representación del contenido: contenido consistente con el WWW.

Protocolo estándar: permiten la comunicación entre el navegador deldispositivo inalámbrico y el servidor.

WAP utiliza la tecnología Proxy para conectar el dominio inalámbrico ala Internet tradicional. Entre el terminal móvil y el servidor web existe unapasarela. En este nodo se traducen los datagrama del protocolo WAP al pro-tocolo HTTP- TCP/IP. Por tanto el cliente, desde su terminal con capacidadWAP ve esta pasarela como el extremo de la comunicación [6].

Page 82: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

60 CAPÍTULO 3. EL MUNDO MÓVIL

Entorno de Programación WAP

El cliente WAP se comunica con dos servidores en la red inalámbrica. Lapasarela WAP traduce las peticiones WAP en peticiones WWW y tambiénen dirección contraria (respuestas WWW en respuestas WAP).

Si el servidor web proporciona directamente contenido WAP (WML), lapasarela WAP lo toma directamente del servidor. Sin embargo si el servidorsólo proporciona contenidoWWW (HTML). Las marcasWML son codificadasWBXML antes de enviarlas al móvil WAP.

El servidor de Aplicación de Telefonía Inalámbrica WTA (Wirelees Tele-phony Application) es un ejemplo de servidor que responde peticiones direc-tamente del cliente WAP sin pasar por ningún tipo de intermediarios.

Se utiliza fundamentalmente para aplicaciones propias del entorno inalám-brico.

La Capa de Aplicación WAE

La capa de aplicación (Wireless Application Enviroment) es la capa depropósito general basada en una combinación de Word Wide Web (WWW)y las tecnologías de telefonía móvil. Su principal objetivo es establecer unentorno de interoperabilidad que permitirá a los usuarios y los proveedoresde contenido construir aplicaciones y servicios que puedan alcanzar una granvariedad de plataformas inalámbricas de manera eficiente y útil.

WAE incluye un mini-navegador que tiene las siguientes funcionalidades:

Wireless Mark-up Language (WML) un lenguaje liviano, similar aHTMLpero optimizado para terminales móviles. , (WBML) es la versión codi-ficada que se entrega a los dispositivos móviles para reducir el volumendel tráfico al teléfono móvil.

WMLScript, un lenguaje de script de baja carga, similar a Javascript.

Wireless Telephony Application (WTA-WTAI) servicios de telefonía einterfaces de programación.

Formatos de contenidos, un conjunto de formatos de datos bien definidos.

Page 83: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.6. WAP 61

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

3.6.4. Tecnología

En la versión 1 de WAP, definida en 1999, el lenguaje de presentación decontenidos es el WML, o Wireless Markup Language. La pila de protocolos deWAP 1 no es compatible directamente con la de Internet como se puede veren la fig. 3.6 de la pag. 61: WSP (Wireless Session Protocol), WTP (WirelessTransaction Protocol), WTLS (Wireless Transport Layer Security), y WDP(Wireless Datagram Protocol).

WDP corresponde a la capa de transporte, con funcionalidad equivalenteal protocolo UDP de Internet, y se apoya en los servicios de la “portadora”WAP, que depende de la red móvil que esté usando el terminal.WAP 1 ademásdefine la interfaz de acceso de las aplicaciones a las funciones de telefonía delterminal conWTAI (Wireless Telephony Application Interface), y también unsencillo lenguaje de “scripting”, WMLScript, basado en JavaScript.

La incompatibilidad que existe en la pila de protocolos WAP 1 con la deInternet exige la presencia de un nodo pasarela para hacer de intermediarioen la comunicación entre un terminal WAP y un servidor de contenidosWAPresidente en Internet.

Page 84: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

62 CAPÍTULO 3. EL MUNDO MÓVIL

WAP ha sido sujeto a diversas críticas en su implementación, como serel bajo soporte de gráficos en los terminales móviles, las diferencias de im-plantación en terminales móviles de distintos fabricantes y un problema muygrave en cuanto a seguridad debido a que la capa WTLS no es robusta yademás por no ser compatibles con los mecanismos de seguridad que brindaInternet.

La nueva versión deWAP,WAP 2.0, está presente en los teléfonos móvilesde nueva generación (a partir del 2004). Esta versión es una reingeniería deWAP que utiliza XHTML-MP (XHTML Mobile Profile), un subconjunto deXHTML que incluye el XHTML básico, yWCSS (WAP CSS), un subconjuntode CSS más ciertas extensiones específicas para móviles, como lenguajes parala presentación de contenidos mejorando, por ejemplo el soporte de los gráficos.De esta forma se consigue que el diseño de contenidos con WAP 2.0 sea muysimilar al diseño de contenidos para laWWW para navegadores en dispositivosno móviles.

En cuanto a los protocolos usados, en la capa de transporte se usa TCP yen la de aplicación, HTTP. Así pues, WAP 2.0 ha adoptado los protocolos deInternet. WAP 2.0 además especifica opciones tanto en TCP como en HTTPpara mejorar las prestaciones de dichos protocolos sobre redes de comunica-ciones móviles. Los mecanismos de seguridad usados ya son compatibles conlos de Internet por lo que los problemas de seguridad de WAP 1 se resuelven.La pasarelaWAP no es estrictamente necesaria enWAP 2.0, pero su presenciapuede tener funciones útiles, como cache web y para dar soporte a las opcionesde TCP y HTTP antes mencionadas.

3.6.5. WAP 2.0

WAP 2.0 es la próxima generación de un conjunto de especificaciones quea comparación de versiones previas, marca el actual esfuerzo de WAP Forumpara adoptar los más recientes protocolos y estándares de Internet. WAP 2.0optimiza el uso de grandes anchos de banda y conexiones basadas en paquetesen redes inalámbricas. Mientras utiliza y soporta el incremento en las capaci-dades de los últimos dispositivos inalámbricos, también provee compatibilidadhacia atrás a contenidos WAP existentes, aplicaciones y servicios que utilizanversiones previas de WAP.

Algunas características de WAP 2.0:

Page 85: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.6. WAP 63

Soporte de pila de protocolo: Además de la pila WAP introducida,WAP 2.0 añade soporte y servicios basados en la pila común de Internetincluyendo soporte para TCP, TLS y HTTP. En comparación con ambaspilas de protocolo, WAP 2.0 provee un modelo de conectividad en unamplio rango de redes y portadoras inalámbricas.

Ambiente de aplicación WAP: Normalmente visto como “Naveg-ador WAP”, el ambiente de aplicación de WAP 2.0 ha evolucionado paraaceptar el lenguaje de marca del navegador de Internet como estándar dedesarrollo. Esto ha llevado a la definición de un nuevo lenguaje llamado“XHTML-MP” . XHTML-MP está basado en la modularidad del marcode trabajo del eXtensible HyperText Markup (XHTML) lenguaje desar-rollado por la W3C para reemplazar e incrementar el lenguaje HTMLusado actualmente.

Capacidades y servicios adicionales: Con WAP 2.0 existe un incre-mento en el número de características disponibles para desarrolladores,operadores y usuarios.

Modelo de Programación WAP

El modelo de programación WAP está estrechamente alineado con el mo-delo de programación Web; ver fig. 3.6 de la pág. 61, usa el modelo Pull(donde el cliente requiere contenido desde un servidor). De igual modo, WAP2.0 extiende la arquitectura web añadiendo soporte a telefonía con WTA yhabilitando un modelo Push, donde el servidor puede enviar con iniciativacontenido 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 ori-gen. WAP proxy comunicado con el cliente usando los protocolos WAP queestán basados en gran parte en protocolos de comunicación de Internet, yeste comunicado con el servidor origen usando los protocolos estándares deInternet.

WAP 2.0 no requiere la utilización del WAP proxy puesto que la comuni-cación entre el cliente y el servidor origen puede ser conducido usando HTTP.De igual manera, colocando un WAP proxy se pueden optimizar los procesosde comunicación y pueden ofrecer incrementos en los servicios móviles; verfig. 3.8 de la pág. 64. Además, un servidor proxy es necesario para ofrecer

Page 86: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

64 CAPÍTULO 3. EL MUNDO MÓVIL

Figura 3.7: Modelo de Programación Wap.

funcionalidad Push.

Figura 3.8: Modelo Proxy para WAP 2.0.

Nuevas Características Añadidas y Servicios Mejorados

Además del ambiente de aplicación y el incremento de la capacidad delmicro-browser, WAP 2.0 también soporta otras características para mejorarla experiencia del usuario. Estas características amplían las capacidades delos dispositivos inalámbricos y mejoran la habilidad para entregar servicios yaplicaciones útiles [?]. Algunas de las características adicionales de WAP 2.0son las siguientes:

Page 87: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

3.6. WAP 65

WAP push: Este servicio permite enviar contenido a dispositivos me-diante aplicaciones basadas en servidor vía un push proxy. Esta funcio-nalidad ha sido mejorada por WAP 2.0. La funcionalidad de push esespecialmente relevante en aplicaciones de tiempo real que envían in-formación a sus usuarios, como ser mensajes, precio de stock, alertasactulizadas de tráfico.

User Agent Profile (UAProf): Este servicio provee la descripciónde las capacidades de los clientes y las preferencias de los usuarios aun servidor de aplicación. Mejorado por WAP 2.0, esto está basado enla combinación Capabilities / Preference Profiles (CC/PP) trabajo de laW3C, UAProf soporta el modelo de transacción cliente-servidor enviandola información del usuario a servidores con la petición. Esta informaciónpermite a los servidores adaptar su contenido y en consecuencia realizarla preparación de la respuesta.

Data Synchronization: En un enfoque que ayuda a asegurar una solu-ción común de marco de trabajo, elWAP Forum buscó una solución parala sincronización de datos. Como resultado de ello, WAP 2.0 reconocela labor de la SyncML mediante la adopción del lenguaje SyncML co-mo su opción para la solución de sincronización de datos. Los mensajesSyncML se apoyan tanto con los protocolos WSP y HTTP/1.1

Multimedia Messaging Service (MMS): Este servicio prevee el mar-co de trabajo para implementar una solución de envio de mensajes ric-as en características. MMS provee características y funcionalidades quepermiten repartir tipos variados de contenido. Dependiendo del modelode servicio, MMS permite un paradigma de entrega rápido (al igual queSMS) o un método de almacén y reenvío (parecido al correo electrónico)o debería permitir ambos modos para operar. Esta flexibilidad permitea operadores ajustar el resultado a la experiencia del usuario.

Page 88: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

66 CAPÍTULO 3. EL MUNDO MÓVIL

Page 89: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 4

Aplicaciones Móviles

4.1. Introducción

Los dispositivos de computación inalámbrica han crecido rápidamente, re-queriendo aplicaciones de software cada vez más potentes que puedan manejaresta nueva realidad. Los usuarios desean que las aplicaciones que corren en susdispositivos móviles tengan la misma funcionalidad estando conectados o de-sconectados de la red. Esperan aplicaciones que puedan soportar conexionesintermitentes, anchos de banda cambiantes y que manejen eficientementeel problema del roaming.

El rango de dispositivos móviles va desde dispositivos dedicados a tareasespecíficas, como los teléfonos celulares, hasta aquellos dispositivos de propósi-to general, como notebooks. Cada uno de ellos presenta diferentes conjuntosde desafíos para el diseño de aplicaciones móviles.

Algunos de estos desafíos compartidos por la mayoría de los dispositivosmóviles incluyen:

La ubicación física del dispositivo y la configuración pueden cambiaren cualquier momento a medida que el dispositivo está conectado o de-sconectado de la red o se mueve entre dos puntos de conexión. La ar-quitectura de aplicación móvil debe soportar una operación consistenteoperando tanto online como offline y proveer una conectividad continuamientas el dispositivo se mueve entre puntos de conexión.

67

Page 90: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

68 CAPÍTULO 4. APLICACIONES MÓVILES

Los dispositivos que se alimentan mediante el uso de baterías puedenoperar por un tiempo limitado sin recargar o reemplazar las mismas. Laarquitectura de una aplicación móvil debe se diseñada para administraresa energía limitada de las baterías, mediante el uso de estrategias queprologuen la vida útil al reducir el consumo sin sacrificar el rendimientodel sistema.

Una arquitectura de aplicaciones móviles debe proveer soporte para un am-plio rango de dispositivos. Debido a que los dispositivos pequeños de propósitoespecífico, tales como teléfonos celulares, poseen limitaciones de recursos co-mo el tamaño reducido de sus pantallas, limitado almacenamiento y poder decómputo [21].

4.2. Requerimientos Para Una Arquitectura de Apli-caciones Móviles

Una aplicación diseñada para ser usada en un dispositivo móvil debe cumplircon ciertos requerimientos, algunos son propios del ambiente móvil y otrospueden ser requerimientos de cualquier tipo de aplicación. A continuación sepresentan los más relevantes:

Operación consistente tanto online como offline: En varias arqui-tecturas, los datos son almacenados en un sistema compartido accesiblea través de la red, en forma de documentos, registros de datos o archivosbinarios, donde se tiene un acceso coordinado a una copia de la infor-mación. Una aplicación móvil debe ser diseñada de forma de que losusuarios puedan acceder a los datos sin importar si lo hacen en formaonline o en forma offline. Cuando se trabaja offline, el usuario percibeque la información compartida está disponible para lectura y escritura.Cuando la conectividad regresa, los cambios en la información local sonintegrados a la copia de red y viceversa.

Conectividad continua: Una aplicación diseñada para movilidad debetrabajar con un agente o servicio Proxy para permitir un manejo trans-parente de los cambios en la conectividad. La conectividad no tiene queser un requerimiento para la funcionalidad y cortes intermitentes e ines-perados en la conexión con la red deben poder ser manejados satisfacto-riamente. Así mismo este agente o servicio Proxy debe poder seleccionar

Page 91: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

4.2. ARQUITECTURA DE APLICACIONES MÓVILES 69

la red óptima de las disponibles en ese momento, y manejar las tareaspropias de la comunicación como autentificación segura o autorización ydireccionamiento lógico.

Clientes que soporten multiplataformas:Una aplicación móvil debeal menos ajustar su interacción y comportamiento al dispositivo en el quecorre, como por ejemplo tipo de entrada y salida, recursos disponibles ynivel de performance.

Administración de recursos: Un recurso como la energía, el ancho debanda o el espacio de almacenamiento puede ser consumido y existe enuna cantidad finita. La administración de recursos debe permitir el mon-itoreo de atributos como cantidad o tasa de uso, y soportar notificacionesbasadas en disparadores predefinidos por el usuario.

Administración del contexto: Contexto es cualquier información quepuede se usada para caracterizar la situación de una entidad. Donde unaentidad es una persona, lugar u objeto que es relevante para la interacciónentre un usuario y una aplicación, incluyendo al usuario y la aplicación.La administración del contexto debe permitir el monitoreo de atributoscomo ubicación actual o tipo de dispositivo, y proveer notificación decambios en el mismo.

Codificación: La codificación involucra la modificación de los datosy protocolo en función de los requerimientos del contexto y recursosdisponibles. Ejemplos de codificación son la encriptación, compresión ytranscodificación. Una implementación de la capacidad de codificaciónpermitirá la enumeración de los encoders y decoders disponibles. Luegocon ésta información disponible junto con la capacidad de administracióndel contexto, proveer la habilidad de negociar el uso de uno u otro métodode codificación.

Almacenamiento duradero: La capacidad de manejar un almace-namiento duradero permite la persistencia de datos de configuración oinformación estática.

Seguridad: Para evitar las consecuencias de ataques maliciosos, aplica-ciones con diseños pobres, y errores inadvertidos de usuarios, se debentomar ciertas medidas de seguridad como ser: Sistemas y usuarios debenser autenticados, autentificación de sistemas, usuarios y acciones debenser autorizados, y acciones e interacciones deben ser auditadas.

Page 92: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

70 CAPÍTULO 4. APLICACIONES MÓVILES

Se puede observar que los requerimientos planteados son en gran medidarequerimientos no funcionales, esto se debe a la naturaleza sumamente restric-tiva implicada en un escenario móvil, y relacionada especialmente con aspectode hardware.

4.3. Arquitectura de Portal Para AplicacionesMóviles

La función primaria de un portal es la de agregar e integrar diversas ydistribuidas fuentes de información, y presentar el resultado al usuario en unavista simple concisa y pertinente a través de un navegadorWeb oWeb Browser.

Un portal es típicamente dirigido a un grupo específico o tipo de usuario.Por ejemplo en la Intranet de una compañía, el sector de atención al clientepuede acceder a información relacionada con clientes (promociones vigentes,descuentos, etc.), pero no puede acceder a información financiera, ésta estaríasólo autorizada para los integrantes del sector de finanzas [21].

Los contenidos que puede tener un portal son:

Datos relativamente estáticos, como banners, gráficos y estructura gen-eral.

Contenido dinámico, información que cambia con cierta frecuencia, elcaso de las promociones vigentes para el sector de atención al clienteestaría dentro de este grupo.

Información nueva o trascendente, como notificaciones o información in-cremental. Por ejemplo una notificación para el grupo de ventas de undeterminado producto que indique que el stock se ha terminado.

La arquitectura de un portal abarca tres tipos de funciones:

Fuentes de Información: Las fuentes de información proveen de datos alportal. Las fuentes de información incluyen bases de datos, aplicacionesu otros portales externos al sistema.

Funciones del Portal: Las funciones de un portal son básicamente las deagregar y componer la información para luego ser entrada al usuario.

Page 93: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

4.3. PORTAL PARA APLICACIONES MÓVILES 71

Funciones Independientes: Son tecnologías 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 através de Internet, un protocolo Proxy soporta la comunicación con elusuario y con el portal HTTP y HTML comúnmente mejorado del ladodel cliente con el uso de lenguajes de scripting y/o código ubicado en elbrowser como ActiveX o controles Java.

Servidor de Presentación: Crea e integra vistas de contenido a través dela interacción con otros componentes.

Servidor de Aplicación: Ejecuta cualquier código que sea requerido dinámi-camente para extraer y reformatear información desde sistema no basa-dos en Web.

Administración de Contenido, búsqueda e indexación, y colaboración.

Servicios de Personalización: Disponible para que cada usuario puedaconfigurar la vista y el contenido que quiere tener cada vez que accedeal portal.

Seguridad: Un requerimiento para toda arquitectura de aplicaciones móviles,es el de asegurar la integridad de información sensible en sitios remotos.

Un portal Web es completamente dependiente de la conexión de red, yaque es una arquitectura centrada en el servidor y la conexión de red se haceun recurso imprescindible.

Una solución simple para aplicaciones móviles es la de permitir el acce-so offline a sitios Web, bases de datos y archivos que han sido previamentedescargados en el móvil. El usuario interactúa con los mismos y una vez que laconexión se reestablece, las copias locales y remotas se sincronican. Esta solu-ción es válida para aquellos portales simples, pero cuando las fuentes de datosvienen asociadas con otros sistemas o directamente no caben en el dispositivomóvil, no podrá ser aplicada.

Entonces, sin conexión de red, la creación de contenido dinámico desdeun portal y sus sistemas back-end en tiempo de ejecución es esencialmente

Page 94: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

72 CAPÍTULO 4. APLICACIONES MÓVILES

imposible. Sin embargo existen algunas aproximaciones que pueden ser usadaspara proveer una vista offline del contenido:

Prealmacenado del contenido generado en el portal.

Replicación en el sistema móvil de los datos y el código usado paragenerar el portal y su sistema back-end.

La apropiada estrategia a utilizar dependerá de factores como cantidad dedatos involucrados, la complejidad de la interacción del usuario con los datos,y la frecuencia necesaria de actualización de los mismos.

A continuación se presentará de que forma una arquitectura de portal móvilpuede cubrir los requerimientos planteados para caracterizar una aplicaciónmóvil:

Clientes que soporten multiplataformas: Los portales usualmentesoportan el acceso desde diferentes plataformas, manejan diferentes car-acterizaciones de dispositivos, y cualquier transcodificación de contenidorequerido. Como el contenido comúnmente es dinámico y el tipo de dis-positivo del cliente impredecible, estas actividades ocurren en tiempode ejecución. Una aplicación cliente que soporte movilidad no necesi-ta soportar transcodificación dinámica porque el tipo de dispositivo delcliente es estático. La aplicación no necesita manejar cambios dinámi-cos en la personalización del dispositivo offline, ya que se supone que elmismo será usado por una única persona.

Capacidad de trabajar offline:

• Prealmacenado de Contenido: involucra el prealmacenado del con-tenido provisto por un portal en respuesta a un requerimiento hechopor un cliente a través de una URL, como una página Web. El códi-go que genera el contenido no es prealmacenado. Por ejemplo unlink (enlace) puede ser referencia a un script JSP o ASP, el Serverde aplicación corre este script y devuelve al cliente streams HTML.Estos HTML son los que están prealmacenados, no los scripts. Nave-gar el portal, siguiendo cada link y almacenar la salida en el sis-tema local para luego disponer del mismo offline, es un mecanismocompletamente ineficiente. Además todas la páginas pueden no ser

Page 95: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

4.4. ARQUITECTURA DE BASES DE DATOS 73

requeridas, por lo tanto el prealmacenado de contenido debe re-alizarse bajo el control de la configuración local que especifique laspáginas de interés o provea un criterio de selección.

• Replicación de Código: permite que el contenido del portal sea másdinámico. El portal puede ejecutar código, por ejemplo JAVA, enel proceso de servir el contenido al usuario o en la recolección ymanejo de datos de otros sistemas. El código es replicado desde elservidor al cliente. Alguna replicación involucra componentes de lainterfase del usuario, la mayoría esta involucrado con la colección,manipulación y almacenamiento de datos.

• Replicación de Datos: los datos pueden ser replicados del portal alcliente, del cliente al portal o en ambas direcciones. Si los datossolo puede tener permiso de escritura en el lado del cliente, la im-plementación se vuelve más simple, sin embargo la implementaciónque permite esquemas de múltiples copias que pueden ser actual-izadas independientemente, se vuelve más compleja.

• Conectividad Continua: Dos áreas están incluidas dentro de conec-tividad continua, estas son administración de conectividad de redy la seguridad desde el punto de vista del usuario. Por ejemplo elusuario no tendrá físicamente que re-autenticarse cada vez que elsistema se reconecta. La conectividad continua puede ser soportadapor emulación, la cual provee la apariencia de que el recurso de redse encuentra disponible.

Una posible arquitectura de portal para aplicaciones móviles es la mostradaen la fig.

4.1 de la pág. 74, la cual refleja varios tipos de modificaciones: agregadode nuevos componentes (a los habituales de un portal no móvil).

4.4. Arquitectura de Bases de Datos Para Aplica-ciones Móviles

Los usuarios tradicionales de una base de datos acceden a los datos res-identes en el servidor de bases de datos desde sus equipos clientes conecta-dos físicamente a la red. Los datos se presentan en la máquina cliente como

Page 96: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

74 CAPÍTULO 4. APLICACIONES MÓVILES

Figura 4.1: Arquitectura de un Portal Móvil.

una simple vista de los datos residentes en el servidor. Esta particular ar-quitectura es segura pero al mismo tiempo limitada en el hecho de que losusuario no pueden ver o trabajar con los datos sin una conexión a la red. Todoprocesamiento tiene lugar en el servidor, construido específicamente para talpropósito.

Se puede afirmar que una base de datos es un archivo que contiene va-rios registros de datos. En un ambiente cliente / servidor tradicional, más deun usuario puede utilizar la misma base de datos simultáneamente. RDBMS(Sistemas Manegadores de Bases de Datos Relacionales) hace esto posible através del uso de mecanismo interno de locking que previenen que más de unusuario modifique un registro al mismo tiempo [21].

Una arquitectura de base de datos preparada para un ambiente móvil,permite a los usuarios acceder a la información en cualquier momento y desdecualquier lugar.

En un ambiente móvil, copias de los datos pueden existir en distintossistemas clientes. Dado que estos sistemas clientes no están continuamenteconectados a la base de datos central, el RDBMS de dicha base no es ca-paz de prevenir cambios simultáneos a los datos por más de un usuario. Por

Page 97: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

4.4. ARQUITECTURA DE BASES DE DATOS 75

otra parte, los datos locales en cada sistema cliente deben ser periódicamentesincronizados con los datos de la base master que reside en el servidor.

Algunos de los desafíos al diseñar una arquitectura de bases de datos sonlas siguientes:

Los datos en los sistemas cliente se desactualizan durante los periodosen que el cliente no está conectado. Los mensajes referentes a actu-alizaciones pendientes no estarán disponibles mientras el sistema estedesconectado, esto introducirá mas dudas sobre la valides de los datos.

La resolución de conflictos se volverán más desafiantes y ya no estaránbajo el control del RDBMS.

El poder de procesamiento local en los clientes puede ser limitado encomparación al poder de procesamiento disponible en el servidor.

Los datos propietarios, deben mantenerse seguros en las ubicaciones re-motas.

Un usuario móvil debe ser capaz de seleccionar los datos a replicar en elsistema cliente para su uso cuando el sistema este desconectado de la red. Lareplicación de la base de datos completa no debe ser permitida, se debe limitaral usuario aun arbitrario conjunto de datos.

Las desconexiones cliente / servidor deben ser transparentes al usuario.La aplicación cliente debe continuar teniendo un buen comportamiento y losdatos continuar disponibles para el usuario.

Un usuario necesita saber si los datos que va a utilizar en un ambienteoffline son viejos, irrelevantes o transitorios. El usuario debe ser capaz de basarsus decisiones en estos datos, pero los mismos deben ser marcados de formaque la decisión resultante pueda ser actualizada cuando los datos vuelvan aestar disponibles online nuevamente.

Una arquitectura de base de datos para aplicaciones móviles debe garan-tizar que las transacciones serán trasmitidas confiablemente. Durante unatransacción normal, una conexión de red es establecida entre el cliente y elservidor y la transferencia de datos es iniciada.

Cuando la transferencia de datos se completa, una notificación sobre si latransferencia fue realizada con éxito o no es enviada al que la inició. La falla

Page 98: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

76 CAPÍTULO 4. APLICACIONES MÓVILES

o el éxito de la transacción, no debe limitar el trabajo que el usuario puedehacer. Por ejemplo, si el dispositivo está conectado a la red y actualiza uncampo de datos, la transacción será trasmitida al servidor inmediatamente.Si la conexión se pierde durante la transmisión, la transacción será encoladapara ser transmitida cuando la conexión sea reestablecida. Mientras tanto elusuario debe poder ser capaz de hacer referencia a la actualización aunque latransmisión no se haya completado.

4.5. Aplicaciones Multiplataforma

Multiplataforma es un término usado para referirse a los programas, sis-temas operativos, lenguajes de programación, u otra clase de software, quepuedan funcionar en diversas plataformas. Por ejemplo, una aplicación multi-plataforma podría ejecutarse enWindows en un procesador x86, en GNU/Linuxen un procesador x86, y en Mac OS X en un x86, sin nungún tipo de problemas.

Una plataforma es una combinación de hardware y software usada paraejecutar aplicaciones, en su forma más simple consiste únicamente de un sis-tema operativo, una arquitectura, o una combinación de ambos. La plataformamás 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 caracterís-ticas de una plataforma particular; bien sea el hardware, sistema operativo, omáquina virtual en que se ejecuta. La plataforma Java es una máquina virtualmultiplataforma, tal vez la más conocida de este tipo, así como una plataformapopular para hacer software.

4.5.1. Java y Multiplataforma

Uno de los principales objetivos de los desarrolladores de software en losúltimos años ha sido conseguir programas portables, capaces de ser ejecutadosen diversas plataformas (Macintosh,PC, Unix, Windows), logrando la com-patibilidad total.

La aparición del lenguaje Java da la primera solución satisfactoria al prob-lema de la compatibilidad. La idea consiste en crear máquinas virtuales idénti-

Page 99: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

4.5. APLICACIONES MULTIPLATAFORMA 77

cas en cada una de las diferentes plataformas y encargarles a ellas la ejecuciónde programas, obteniendo así la compatibilidad total.

Con el desarrollo de estas máquinas virtuales anteriormente mencionadasse puede lograr que el mismo código binario ejecutable se pueda usar en todoslos sistemas compatibles con el software Java. Además la penetración de Javaen Internet, como lenguaje de acompañamiento al HTML, ha sido todo unéxito.

Page 100: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 101: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 5

Java

5.1. Introducción al Lenguaje

Java es un lenguaje orientado a objetos. Esto significa que posee ciertascaracterísticas estándares en los lenguajes OO:

Objetos.

Clases.

Métodos.

Subclases.

Herencia simple.

Enlace dinámico.

Encapsulamiento.

Java se volvió un lenguaje muy popular. Antes de que Java apareciera,por ejemplo, C era un lenguaje extremadamente popular entre los progra-madores y parecía que era el lenguaje de programación perfecto, combinandolos mejores elementos de los lenguajes de bajo y alto nivel en un lenguaje deprogramación que se ajustaba a la arquitectura del ordenador y que gustabaa los programadores.

79

Page 102: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

80 CAPÍTULO 5. JAVA

Sin embargo, el lenguaje C tenía limitaciones, al igual que los lenguajes deprogramación anteriores. Cuando los programas crecían, los programas C sehacían inmanejables porque no había una forma fácil de acortarlo. Esto quieredecir que el código de la primera línea de un programa largo podría interferircon el código de la última línea y el programador tendría que recordar todo elcódigo mientras programaba.

La programación orientada a objetos se hizo popular por ser capaz dedividir programas largos en unidades semi-autónomas. El lema de la progra-mación orientada a objetos es “divide y vencerás”.

Dicho en otras palabras, un programa se puede dividir en partes fácilmenteidentificables.

Por ejemplo, se supone que para mantener fresca la comida se utiliza unsistema complejo.

Debería comprobar la temperatura de la comida usando un termómetro ycuando la temperatura fuera lo suficientemente alta, se activaría un interruptorque arrancara el compresor e hiciera funcionar las válvulas para que el fríocirculara; luego arrancaría un ventilador que moviera el aire. Esa es una formade hacerlo. Sin embargo, otra consiste en coordinar todas esas operacionesde forma que sean automáticas, cubriendo todo con una unidad sencilla, unrefrigerador. Ahora las interioridades no se ven y lo único que hay que haceres introducir o sacar comida del frigorífico.

De esta forma es como funcionan los objetos, ocultan los detalles de laprogramación al resto del programa, reduciendo todas las interdependenciasque aparecen en un programa C e inicializando una interfaz bien definida ycontrolable que mantiene la conexión entre el objeto y el resto del código.

Resumiendo se puede decir que la programación orientada a objetos con-siste en la división de un problema en diferentes partes (objetos) donde:

Cada objeto posee una funcionalidad específica.

Los objetos interactúan entre sí enviando y recibiendo mensajes; verfigura 5.1 de la página 81.

La tarea del programador es coordinar las acciones de los objetos y lacomunicación entre los mismos.

Page 103: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.1. INTRODUCCIÓN AL LENGUAJE 81

Figura 5.1: Mecanismo de Mensajes

Para programar bajo el paradigma orientado a objetos es necesario primerodiseñar un conjunto de clases. La claridad, eficiencia y mantenibilidad delprograma resultante dependerá principalmente de la calidad del diseño declases. Un buen diseño de clases significará una gran economía en tiempo dedesarrollo y mantención.

Lamentablemente se necesita mucha habilidad y experiencia para logrardiseños de clases de calidad. Un mal diseño de clases puede llevar a programasOO de peor calidad y de más alto costo que el programa equivalente no OO[16].

Una gran ventaja de un lenguaje OO, son las bibliotecas de clases que sepueden construir para la aplicación [12]. Una biblioteca de clases cumple elmismo objetivo de una biblioteca de procedimientos en una lenguaje como C.Sin embargo:

Una biblioteca de clases es mucho más fácil de usar que una biblioteca deprocedimientos, incluso para programadores sin experiencia en orientación aobjetos. Esto se debe a que las clases ofrecen mecanismos de abstracción máseficaces que los procedimientos.

5.1.1. Bibliotecas de Clases Estándares de Java

Toda implementación de Java debe tener las siguientes bibliotecas declases:

Manejo de archivos.

Comunicación de datos.

Page 104: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

82 CAPÍTULO 5. JAVA

Acceso a la red Internet..

Acceso a bases de datos.

Interfaces gráficas.

La interfaz de programación de estas clases es estándar, esto quiere decirque en todas ellas las operaciones se invocan con el mismo nombre y los mismosargumentos.

5.1.2. Java es Multiplataforma

Los programas en Java pueden ejecutarse en cualquiera de las siguientesplataformas, 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 lasplataformas.

A nivel de bibliotecas: en todas las plataformas están presentes las mismasbibliotecas estándares.

A nivel del código compilado: el código intermedio que genera el compiladores el mismo para todas las plataformas. Lo que cambia es el intérprete delcódigo intermedio, la MVJ (Máquina Virtual Java).

Máquina Virtual Java

Es un programa (software) que maneja la interacción entre las aplicacionesJava y el Sistema operativo y hardware subyacentes.

Este programa interpreta los bytecodes generados por el compilador deJava durante la ejecución de un programa Java.

Page 105: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.1. INTRODUCCIÓN AL LENGUAJE 83

Figura 5.2: Proceso Compilación y Ejecución

El proceso de compilación y ejecución se pueden observar en la figura 5.2de la página 83.

5.1.3. Características 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 compilación (al igual queC). En una asignación entre punteros el compilador verifica que lostipos sean compatibles.

• Java realiza chequeo de tipos durante la ejecución (C y C++ no lohacen). Cuando un programa usa un cast para acceder a un objetocomo si fuese de un tipo específico, se verifica durante la ejecuciónque el objeto en cuestión sea compatible con el cast que se le apli-ca. Si el objeto no es compatible, entonces se lanza una excepcióninformando al programador la línea en donde está el error.

• Java posee un recolector de basuras que administra automática-mente la memoria. La MVJ lo ejecuta para limpiar o reasignarmemoria, se lo denomina “Garbage Collector”.

Page 106: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

84 CAPÍTULO 5. JAVA

Flexibilidad

Java combina flexibilidad, robustez y legibilidad gracias a una mezcla dechequeo de tipos durante la compilación y durante la ejecución. En Java sepueden tener punteros a objetos de un tipo específico y también se puedentener punteros a objetos de cualquier tipo. Estos punteros se pueden convertira punteros de un tipo específico aplicando un cast.

El programador usa entonces punteros de tipo específico en la mayoría delos casos con el fin de ganar legibilidad y en unos pocos casos usa punteros atipos desconocidos cuando necesita tener flexibilidad.

Administración Automática de la Memoria

En Java los programadores no necesitan preocuparse de liberar un trozode memoria cuando ya no lo necesitan. Es el garbage collector el que determinacuando se puede liberar la memoria ocupada por un objeto.

Un recolector de basuras es un gran aporte a la productividad. Se haestudiado en casos concretos que los programadores han dedicado un 40% deltiempo de desarrollo a determinar en qué momento se puede liberar un trozode memoria.

Además este porcentaje de tiempo aumenta a medida que aumenta lacomplejidad del software en desarrollo. Es relativamente sencillo liberar cor-rectamente la memoria en un programa de 1000 líneas. Sin embargo, es difícilhacerlo en un programa de 10000 líneas. Y se puede postular que es imposibleliberar correctamente la memoria en un programa de 100000 líneas.

5.2. Estructura de un Programa Java

En el siguiente ejemplo se presenta la estructura general de un programarealizado en cualquier lenguaje orientado a objetos u OOP (Object OrientedProgramming), y en particular en el lenguaje Java:

import java.awt.*;

import java.lang.String;

import java.lang.Integer;

Page 107: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.3. CONCEPTOS BÁSICOS 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(“Simulación de Redes”);

menus.setVisible(true);

}

}

Aparece una clase que contiene el programa principal Simu (aquel quecontiene la función main()) y algunas clases de usuario (las específicas de laaplicación que se está desarrollando) que son utilizadas por el programa prin-cipal. La aplicación se ejecuta por medio del nombre de la clase que contienela función main(). Las clases de Java se agrupan en packages, que son libre-rías de clases. Si las clases no se definen como pertenecientes a un package, seutiliza un package por defecto (default) que es el directorio activo.

5.3. Conceptos Básicos

5.3.1. Clases

Una clase es una plantilla desde la que se pueden crear objetos. La defini-ción de una clase incluye especificaciones formales para la clase y cualquierdato y métodos incluidos en ella. La programación orientada a objetos se basa

Page 108: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

86 CAPÍTULO 5. JAVA

en la programación de clases [2]. Un programa se construye a partir de unconjunto de clases.

Una vez definida e implementada una clase, es posible declarar elementosde esta clase. Los elementos declarados de una clase se denominan objetos dela clase. De una única clase se pueden declarar o crear numerosos objetos. Laclase es lo genérico: es el patrón o modelo para crear objetos.

Cada objeto tiene sus propias copias de las variables miembro, con suspropios valores, en general distintos de los demás 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 programación orientada a objetosque se ha definido formalmente. Utilizando la herencia, se puede crear unanueva clase a partir de otra, y la nueva heredará todos los métodos y miembrosde datos de la primera.

La clase nueva se llama subclase y la clase original, clase base o superclase.La idea es añadir lo que se quiera a la nueva clase para darle más funcionalidadque a la clase base.

La herencia es un tema importante en Java, ya que se puede usar la granlibrería de clases disponible, derivando de ellas nuestras clases propias.

En Java, a diferencia de otros lenguajes orientados a objetos, una clase sólopuede derivar de una única clase, con lo cual no es posible realizar herenciamúltiple en base a clases. Sin embargo es posible “simular” la herencia múltipleen base a las interfaces.

Page 109: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.3. CONCEPTOS BÁSICOS 87

5.3.3. Interfaces

Una interfaz es una clase abstracta que define métodos abstractos y con-stantes, pero no implementa los métodos. La clase que implemeta una interfazhereda los métodos y debe implementarlos, es decir se forma un contrato entrela Interfaz y la clase que implementa la Interfaz.

Una clase puede “implementar” más de una interface y una interface puedeser implementada por clases que no se encuentran relacionadas.

5.3.4. Package

Un package es una agrupación de clases. Existen una serie de packagesincluidos en el lenguaje.

Además el programador puede crear sus propios packages. Todas las clasesque formen parte de un package deben estar en el mismo directorio.

Los packages se utilizan con las siguientes finalidades:

1. Para agrupar clases relacionadas.

2. Para evitar conflictos de nombres. En caso de conflicto de nombres en-tre clases importadas, el compilador obliga a cualificar en el código losnombres 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 Diseño del Software desarrolla-do, se ha decido crear dos paquetes, calculos e interface, utilizando la sentenciapackage.

package myprojects.simu;

import myprojects.calculos.*;

import myprojects.interfase.*;

Page 110: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

88 CAPÍTULO 5. JAVA

5.4. Variables de Java

Una variable en Java es un identificador que representa una palabra dememoria que contiene información. El tipo de información almacenado en unavariable sólo puede ser del tipo con que se declaró esa variable. Los diferentestipos 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: Están definidas mediante un valor únicoy almacenan directamente ese valor siempre que pertenezca al rango deese tipo. Por ejemplo una variable int almacena un valor entero como 1,2, 0, -1, etc.

Variables referencia: Las variables referencia son referencias o nombresde una información más compleja: arrays u objetos de una determinadaclase. Una referencia a un objeto es la dirección de un área en memoriadestinada a representar ese objeto. El área de memoria se solicita conel operador new. Una variable de referencia también puede ser descriptacomo una referencia a una clase.

Por ejemplo si se define: Estudiante e1. e1 es una referencia a una ins-tancia de Estudiante.

Se puede decir que dentro de un programa las variables pueden ser:

Variables miembro de una clase: Se definen en una clase, fuera de cual-quier método; pueden ser tipos primitivos o referencias. Son tambiénllamadas atributos.

Variables locales: Se definen dentro de un método o más en general dentrode cualquier bloque entre llaves {}. Se crean en el interior del bloque y sedestruyen al finalizar dicho bloque. Pueden ser también tipos primitivoso referencias.

En la Tabla 5.1 de la página 89 se muestran las grandes categorías de tipospara las variables en Java:

En la Tabla 5.2 de la página 89 se indica para cada tipo primitivo el númerode bits que se emplea en su representación y el rango de valores que se puedealmacenar en las variables de estos tipos.

Page 111: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.4. VARIABLES DE JAVA 89

Tipos Primitivos Referencias a Objetosint, short, byte, long Strings

char, boolean Arreglosfloat, double otros objetos

Cuadro 5.1: Categorías de Variables.

Tipo Bits Rango Ejemplos

int 32 −231..231 − 1 0,1,5,-120,...short 16 −215.,215 − 1 0,1,5,-120,...byte 8 −27.,27 − 1 0,1,5,-120,...long 64 −263.,263 − 1 0,1,5,-120,...

boolean 1 n/a false, truechar 16 n/a ‘a’,‘A’,‘0’,‘*’,...float 32 IEEE 1.2double 64 IEEE 1.2

Cuadro 5.2: Tipos Primitivos de Datos

Page 112: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

90 CAPÍTULO 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, métodos.

Se inicializan con el valor por defecto dependiendo del tipo de dato de lavariable.

Cada tipo de dato tiene asociado un valor por defecto de inicialización:

Integrales (byte, short, int, long): Se inicializan en “0”.

Flotantes (float, 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 ejecución de un aplicación.

Representan datos que son compartidos por todas las instancias de unaclase y son cargados en memoria antes de que una instancia de la clase seacreada. Es decir antes de que se instancien nuevos objetos de la clase. Sedeclaran con la palabra reservada “static”.

Por ejemplo una variable de clase sería:

public static String mensaje.

Y un ejemplo de la declaración de un método de clase:

public static void leerURL().

Page 113: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.5. OPERADORES DEL LENGUAJE JAVA 91

5.5. Operadores del Lenguaje Java

5.5.1. Operadores Aritméticos

Son operadores binarios (requieren siempre dos operandos) que realizanlas operaciones aritméticas habituales: suma (+), resta (-), multiplicación (*),división (/) y resto de la división (%).

5.5.2. Operadores de Asignación

Los operadores de asignación permiten asignar un valor determinado a unavariable. El operador de asignación por excelencia es el operador igual (=). Laforma general de las sentencias de asignación con este operador es:

variable = expresión;

Java dispone de otros operadores de asignación. Se trata de versiones abre-viadas del operador (=) que realizan operaciones “acumulativas” sobre unavariable.

La siguiente Tabla 5.3 de la pág. 91, muestra estos operadores y su equi-

valencia con el uso del operador igual (=).

Operador Utilización ExpresiónEquivalente

+ = op1 + = op2 op1 = op1 + op2- = op1 - = op2 op1 = op1 - op2= * op1 * = op2 op1 = op1 * op2= / op1 / = op2 op1 = op1 / op2% = op1% = op2 op1 = op1% op2

Cuadro 5.3: Operadores de asignación.

5.5.3. Operadores Unarios

Los operadores unarios sirven para mantener o cambiar el signo de unavariable, constante o expresión numérica. Ellos son el más (+) y menos (-). Su

Page 114: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

92 CAPÍTULO 5. JAVA

uso en Java es el estándar de estos operadores.

5.5.4. Operador Instanceof

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

objectName instanceof className.

Devuelve true o false según el objeto pertenezca o no a la clase.

5.5.5. Operador Condicional

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

boolean expresion? res1: res2

donde se evalúa la expresion booleana y si es true devuelve res1, si es falsedevuelve 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 in-crementa la variable y luego se utiliza (ya incrementada) en la expresiónen la que aparece.

Después de la variable de la forma “i++”. En este caso primero se utilizala variable en la expresión (con el valor anterior) y luego se incrementa.

En muchos casos estos operadores se utilizan para incrementar una variablefuera de una expresión. En estos casos ambos operadores son equivalentes. Si

Page 115: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.5. OPERADORES DEL LENGUAJE JAVA 93

se utilizan en una expresión más complicada, el resultado de utilizar estosoperadores 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 relación de menor o mayor. El resultado de estos operadores essiempre un valor boolean (true o false) según se cumpla o no la relación consi-derada. La siguiente Tabla 5.4 de la pág. 93 muestra los operadores relacionalesde Java.

Operador Utilización El resultado es true

> op1 > op2 si op1 es mayor que op2> = op1 >= op2 si op1 es mayor o igual que op2< op1 < op2 si op1 es menor que op 2< = op1 <= op2 si op1 es menor o igual que op2= = op1 == op2 si op1 y op2 son iguales! = op1 != op2 sio p1 y op2 son diferentes

Cuadro 5.4: Operadores relacionales.

5.5.8. Operadores de Concatenación de Caracteres

El operador más (+) también se utiliza para concatenar cadenas de carac-teres. 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 sería:

“Mensaje: Datos ingresados correctamente”.

Page 116: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

94 CAPÍTULO 5. JAVA

5.6. Estructuras de Programación

Las estructuras de programación o estructuras de control permiten tomardecisiones y realizar un proceso repetidas veces. Son las denominadas bifurca-ciones y bucles. En la mayoría de los lenguajes de programación, este tipo deestructuras son comunes en cuanto a concepto, aunque su sintaxis varía de unlenguaje a otro. La sintaxis de Java coincide prácticamente con la utilizadaen C/C++, lo que hace que para un programador de C/C++ no suponganinguna dificultad adicional.

5.6.1. Sentencias o Expresiones

Una expresión es un conjunto variables unidas por operadores. Son órdenesque se le dan al computador para que realice una tarea determinada.

Una sentencia es una expresión que acaba en punto y coma (;). Se per-mite incluir varias sentencias en una línea, aunque lo habitual es utilizar unalínea para cada sentencia. A continuación se muestra un ejemplo de una líneacompuesta de tres sentencias:

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

donde lo habitual sería:

i = 0;

j = 5;

x = i + j;

5.6.2. Comentarios

Existen dos formas diferentes de introducir comentarios entre el código deJava (en realidad son tres, como pronto se verá). Son similares a la forma de re-alizar comentarios en el lenguaje C/C++. Los comentarios son tremendamenteútiles para poder entender el código utilizado, facilitando de ese modo futurasrevisiones y correcciones. Además permite que cualquier persona distinta alprogramador original pueda comprender el código escrito de una forma más

Page 117: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.6. ESTRUCTURAS DE PROGRAMACIÓN 95

rápida. Se recomienda acostumbrarse a comentar el código desarrollado. Deesta forma se simplifican también las tareas de estudio y revisión posteriores.

Java interpreta que todo lo que aparece a la derecha de dos barras “//” en una línea cualquiera del código es un comentario del programador y nolo tiene en cuenta. El comentario puede empezar al comienzo de la línea o acontinuación de una instrucción que debe ser ejecutada. La segunda forma deincluir comentarios consiste en escribir el texto entre los símbolos “ /* */ ”.Este segundo método es válido para comentar más de una línea de código. Porejemplo:

// Esta línea es un comentario de una sola línea

int a=1; // Comentario a la derecha de una sentencia

/* Este tipo de comentarios es para comentar más de una sóla línea,

sólo requiere modificar el comienzo y el final. */

En Java existe además una forma especial de introducir los comentarios(utilizando /***/ más algunos caracteres especiales) que permite generar au-tomáticamente la documentación sobre las clases y packages desarrollados porel programador. Una vez introducidos los comentarios, el programa javadoc.exe(incluido en el JDK) genera de forma automática la información de forma sim-ilar a la presentada en la propia documentación del JDK. La sintaxis de estoscomentarios y la forma de utilizar el programa javadoc.exe se puede encontraren la información que viene con el JDK.

5.6.3. Bifurcaciones

Las bifurcaciones permiten ejecutar una de entre varias acciones en funcióndel valor de una expresión lógica o relacional. Se tratan de estructuras muyimportantes ya que son las encargadas de controlar el flujo de ejecución de unprograma. Se exponen dos variantes del de tipo if.

Bifurcación if

Esta estructura permite ejecutar un conjunto de sentencias en función delvalor que tenga la expresión de comparación. Ejemplo: se ejecuta si la expresiónde comparación (error < errorMinimo) tiene valor true:

Page 118: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

96 CAPÍTULO 5. JAVA

numero = 58;

if (math.abs(numero) < 10){

System.out.println(“Número de 1 solo dígito”);

} /* fin del if */

Las llaves {} sirven para agrupar en un bloque las sentencias que se hande ejecutar, y no son necesarias si sólo hay una sentencia dentro del if.

Bifurcación if else

Análoga a la anterior, de la cual es una ampliación. Las sentencias incluidasen el else se ejecutan en el caso de no cumplirse la expresión de comparación(false),

Ejemplo:

numero = 58;

if (Math.abs(numero) < 10){

System.out.println(“Número de 1 solo dígito”);

}else{

System.out.println(“Número de 2 dígitos”);

}// fin del else

5.6.4. Bucles

Un bucle se utiliza para realizar un proceso repetidas veces. Se denominatambién lazo o loop. El código incluido entre las llaves {} (opcionales si elproceso repetitivo consta de una sola línea), se ejecutará mientras se cumplanunas determinadas condiciones. Hay que prestar especial atención a los buclesinfinitos, hecho que ocurre cuando la condición de finalizar el bucle (booleanEx-pression) no se llega a cumplir nunca. Se trata de un fallo muy típico, habitualsobre todo entre programadores poco experimentados.

Page 119: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.6. ESTRUCTURAS DE PROGRAMACIÓN 97

Bucle while

En el siguiente ejemplo se muestra que se ejecutará la sentencia fin++mientras la expresión (capas.charAt(fin)!=‘,’ && capas.charAt(fin)!=-1) sea ver-dadera.

for (int j=0; j < numeroCapas; j++){

int fin = principio;

try {

while (capas.charAt(fin) != ‘,’ && capas.charAt(fin) != -1){

fin++;

}

}

}

Bucle for

A continuación se podrá apreciar la utilización del bucle for:

/* calcular el nuevo vector de diseño */

for (int i = 0; i < vectorDis.length; i++){

vectorDis[i] = vectorDis[i] + learningRate * S[i];

}

La sentencia int i = 0 (inicialización) se ejecuta al comienzo del for, ei++ (incremento) después de vectorDis[i] = vectorDis[i] + learningRate * S[i](sentencia). La expresión booleana (vectorDis.length) se evalúa al comienzo decada iteración; el bucle termina cuando la expresión de comparación toma elvalor false.

Page 120: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

98 CAPÍTULO 5. JAVA

Bucle do while

Es similar al bucle while pero con la particularidad de que el control estáal final del bucle (lo que hace que el bucle se ejecute al menos una vez, in-dependientemente de que la condición se cumpla o no). Una vez ejecutadaslas sentencias, se evalúa la condición: si resulta true se vuelven a ejecutar lassentencias incluidas en el bucle, mientras que si la condición se evalúa a falsefinaliza el bucle.

do{

/* calcular el gradiente del vector fijar el vector de diseño */

problema.fijoVector(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 número de iteraciones pasado como argumento */

problema.fijoVector(vectorDis);

Bloque try{...} catch{...} finally{...}

Java incorpora en el propio lenguaje la gestión de errores. El mejor mo-mento para detectar los errores es durante la compilación. Sin embargo prácti-camente sólo los errores de sintaxis son detectados en esta operación. El restode los problemas surgen durante la ejecución de los programas.

En el lenguaje Java, una Exception es un cierto tipo de error o una condi-ción anormal que se ha producido durante la ejecución de un programa. Algu-nas excepciones son fatales y provocan que se deba finalizar la ejecución delprograma. En este caso conviene terminar ordenadamente y dar un mensajeexplicando el tipo de error que se ha producido. Otras excepciones, como porejemplo no encontrar un fichero en el que hay que leer o escribir algo, pueden

Page 121: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.7. SERVLETS 99

ser recuperables. En este caso el programa debe dar al usuario la oportunidadde corregir el error (dando por ejemplo un nuevo path del fichero no encon-trado).

Los errores se representan mediante clases derivadas de la clase Throw-able, pero los que tiene que chequear un programador derivan de Exception(java.lang.Exception que a su vez deriva de Throwable). Existen algunos tiposde excepciones que Java obliga a tener en cuenta. Esto se hace mediante eluso de bloques try, catch y finally.

El código dentro del bloque try está “vigilado”: Si se produce una situaciónanormal y se lanza como consecuencia una excepción, el control pasa al bloquecatch que se hace cargo de la situación y decide lo que hay que hacer. Se puedenincluir tantos bloques catch como se desee, cada uno de los cuales tratará untipo de excepción. Finalmente, si está presente, se ejecuta el bloque finally,que es opcional, pero que en caso de existir se ejecuta siempre, sea cual sea eltipo de error.

En el caso en que el código de un método pueda generar una Exceptiony no se desee incluir en dicho método la gestión del error (es decir los buclestry/catch correspondientes), es necesario que el método pase la Exception almétodo desde el que ha sido llamado. Esto se consigue mediante la adición dela palabra throws seguida del nombre de la Exception concreta, después de lalista de argumentos del método. A su vez el método superior deberá incluirlos bloques try/catch o volver a pasar la Exception. De esta forma se puede irpasando la Exception de un método a otro hasta llegar al último método delprograma, el método main().

5.7. Servlets

Los servlets son programas de Java que construyen respuestas dinámicaspara el cliente, tal como páginas Web. Los servlets reciben y responden a lasdemandas de los clientes Web, normalmente por HTTP.

Además los servlets son escalables, dando soporte para unamulti-aplicaciónde configuración del servidor. [10]

Permiten utilizar datos caché, acceso a información de base de datos, ycompartir datos con otros servlets, archivos JSP y (en algunos ambientes) conlos bean empresariales.

Page 122: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

100 CAPÍTULO 5. JAVA

Poseen algunas ventajas respecto a los tradicionales programas CGI:

Independencia de la plataforma. Esto proporciona un menor esfuerzo decodificación con respecto a soluciones dependientes del servidor web yde la plataforma.

Ejecución en paralelo de múltiples peticiones por una sola instancia delservlet.Tradicionalmente en los programas CGI se ejecuta un procesodistinto para cada petición, lo que conlleva una gradual degradación delrendimiento y una necesidad de recursos muy elevada. En un servlettodas las peticiones se atienden en el mismo proceso por distintos hilosy una vez que se ha cargado el servlet este permanece en memoria hastaque se reinicie el servidor.

5.7.1. Estructura de un Servlet

El API Servlet consiste básicamente en dos paquetes:

javax.servlet

javax.servlet.http

Todas las clases e interfaces que hay que utilizar en la programación deservlets están en estos dos paquetes.

Vision General del API de Servlet

La relación entre las clases e interfaces de Java, muy determinada por elconcepto de herencia, tal como puede verse en la figura 5.3 de la página 101,se representan con letra normal las clases y las interfaces con cursiva.

La clase GenericServlet es una clase abstracta puesto que su método ser-vice() es abstracto. Esta implementa dos interfaces, de las cuales la más im-portante es la interface Servlet.

La interface Servlet declara métodos más importantes de cara a la vida deun servlet: init() que se ejecuta sólo al arrancar el servlet; destroy() que se

Page 123: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.7. SERVLETS 101

Figura 5.3: Jerarquía y Métodos de las Principales Clases para Crear Servlets.

Page 124: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

102 CAPÍTULO 5. JAVA

ejecuta cuando va a ser destruido y service() que se ejecutará cada vez que elservlet debe atender una solicitud de servicio.

Cualquier clase que derive de GenericServlet deberá definir el método ser-vice(). Este método tiene en su definición dos argumentos correspondientes alas interfaces ServletRequest y ServletResponse. La primera referencia a un ob-jeto que describe por completo la solicitud de servicio que se le envía al servlet.Si la solicitud de servicio viene de un formulairo HTML, a través de ese objetose puede acceder a los nombres de los campos y a los valores introducidos porel usuario. El segundo argumento es un objeto con la referencia a la interfaceServletResponse que constituye el camino mediante el cual el método 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 implementacióno definición del método service(). Dicha implementación detecta el tipo deservicio o método HTTP que le ha sido solicitado desde el browser y llamaal método adecuado de esa misma clase (doPost(), doGet(), etc.), tambiénaparecen otras interfaces como ser:

La interfaz ServletConfig define métodos que permiten pasar al servletinformación sobre sus parametros de inicialización.

La interface ServletContext permite a los servlets acceder a informaciónsobre el entorno en que se estan ejecutando.

Principios de Codificación de Servlet

Para crear un servlet de HTTP, es necesario extender las clases:

javax.servlet.HttpServlet y sustituir cualquier método que se desee imple-mentar en el servlet. Por ejemplo, un servlet reemplaza el método doGet paramanejar las demandas Get de los clientes.

El HttpServletRequest representa los requerimientos de un cliente. Esteobjeto da acceso al servlet, a la información incluida como datos en formatoHTML, encabezados HTTP, etc.

El HttpServletResponse representa la respuesta del servlet.

El servlet usa este objeto para devolverle datos al cliente como erroresde HTTP (200, 404, y otros), encabezados de respuesta (Content-Type, Set-

Page 125: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.7. SERVLETS 103

Cookie, y otros), y datos de salida para escribir cadenas de salida de respuestao salida impresa.

El principio de un servlet podría 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 servletes cargado e inicializado, como recibe y responde a las peticiones y como salefuera de servicio.

Las clases javax.servlet.http.HttpServlet definen métodos tales como:

Iniciar un servlet.

Solicitar servicios.

Quitar un servlet del servidor.

Éstos son conocidos como métodos del ciclo de vida y son llamados en lasiguiente secuencia:

Se construye el servlet.

Se inicializa con el método init().

Se manejan llamadas de los clientes al método de servicio.

Se saca el servlet de servicio.

Se destruye con el método destruir.

Page 126: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

104 CAPÍTULO 5. JAVA

Se finaliza el servlet y la basura es recolectada.

El ciclo de vida de un Servlet se puede apreciar en la figura 5.4 de la página104.

Figura 5.4: Ciclo de Vida de un Servlet.

5.7.2. Instanciación e Inicialización

El motor del servlet (la función del Servidor de Aplicaciones que procesaservlets, archivos JSP, y otros tipos de server-side incluyendo codificación) crea

Page 127: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.7. SERVLETS 105

una instancia del servlet. El motor del servlet crea el objeto de configuracióndel servlet y lo usa para pasar los parámetros de inicialización del servletal método init(). La inicialización de los parámetros persiste hasta que elservlet se destruye y es aplicada a todas las invocaciones de ese servlet hastadestruirse.

Si la inicialización tiene éxito, el servlet está disponible para el servicio. Sila inicialización falla, el motor del servlet descarga el servlet. El administradorpuede inhabilitar una aplicación y el servlet para el servicio. En tales casos,la aplicación y el servlet permanecen inhabilitados hasta que el administradorlos habilite.

5.7.3. Servicio de Demanda

Una demanda del cliente llega al servidor de aplicaciones. El motor delservlet crea un objeto demanda y un objeto respuesta. El motor del servletinvoca al método de servicio del servlet, procesa el requerimiento y usa métodosdel objeto respuesta para crear la respuesta para el cliente.

El método de servicio recibe información sobre el requerimiento del objetodemanda, procesa el requerimiento, y usa los métodos del objeto respuestapara crear la contestación para el cliente. El método de servicio puede invocarotros métodos para procesar el requerimiento, tales como doGet (), doPost (),o métodos del usuario.

5.7.4. Terminación

El motor del servlet invoca al método destroy () del servlet cuando apropiay descarga el servlet. La Máquina Virtual de Java realiza la recolección debasura después de la destrucción del servlet.

Cuando el contenedor Web ya no necesita que el servlet o una nueva ins-tancia del servlet se recarguen, invoca al método destroy() del servlet. El con-tenedor Web también puede llamar al método destroy() si el motor necesitaconservar recursos o una llamada pendiente a un método service() del servletexcediendo el timeout. La Máquina Virtual de Java realiza recolección de ba-sura después del destroy.

Page 128: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

106 CAPÍTULO 5. JAVA

5.7.5. Java Server Faces

Java Server Pages (JSP) combinan HTML con fragmentos de Java paraproducir páginas web dinámicas.

Cada página es automáticamente compilada a servlet por el motor de JSP, en primer lugar es recogida y a continuación ejecutada. JSP tiene gran va-riedad de formas para comunicarse con las clases de Java, servlets, applets yel servidor web; por esto se puede aplicar una funcionalidad a nuestra web abase de componentes.

Una página JSP es un archivo de texto simple que consiste en contenidoHTML o XML con elementos JSP. Cuando un cliente pide una página JSPdel sitio web y no se ha ejecutado antes, la página es inicialmente pasada almotor de JSP, el cual compila la página convirtiéndola en Servlet, la ejecutay devuelve el contenido de los resultados al cliente.

El código fuente de una página JSP incluye:

Directivas: Dan información global de la página, por ejemplo, importaciónde estamentos, página que majena los errores o cuando la página formaparte de una sesión.

Declaraciones: Sirven para declarar métodos y variables.

Scripts de JSP: Es el código Java embebido en la página.

Expresiones de JSP: Formatea las expresiones como cadenas para in-cluirlas en la página de salida.

Directivas

Una directiva de JSP es un estamento que proporciona la información delmotor de JSP para la página que la pide. Su sintaxis general es <%@ directiva{atributo =“valor”}%> dónde la directiva debe tener un número de atributos.

Algunos ejemplos son:

• Page: Información para la página.

• Include: Incluye archivos completos palabra por palabra.

• Taglib: La dirección de la librería de tags que se usará en la página.

Page 129: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.7. SERVLETS 107

La directiva Page posee varios atributos:

• language=“java”: Comunica al servidor el lenguaje que va a ser uti-lizado en el archivo. Java es el único posible en esta especificación.

• extends=“package.class”: La variale extends, define la clase padredel servlet generado. Normalmente no es necesario utilizar otrasque no sean las clases base del proveedor.

• import=“package.*, package.class”: Sirve para especificar los pa-quetes y clases que se quieran utilizar.

• session=“true|false”: Por defecto session vale true, manteniendo losdatos de las sesión para la página.

• isThreadSafe=“true|false”: Por defecto vale true, le hace señales almotor de JSP para que múltiples pedidos del cliente puedan sertomados como uno.

• info=“text”: Información en la página a la que puede accederse através del método Servlet.getServletInfo().

• errorPage=”pagina_error”: Página que manejará las excepcionesde errores.

Declaraciones

Una declaración de JSP, puede definirse como una definición de variablesy métodos a nivel de clase que son usadas en la página.

Un bloque de declaraciones típico sería <%! declaración%>

Un ejemplo de declaración de script sería el siguiente:

<HTML>

<HEAD>

<TITLE>Página simple JSP</TITLE>

</HEAD>

<BODY>

<%!

String strCadena = ”x”;

Page 130: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

108 CAPÍTULO 5. JAVA

int intContador = 0;

%>

</BODY>

</HTML>

Scripts de JSP

Los Scripts son bloques de código Java residentes entre los tags <% y%>.

Estos bloques de código estarán dentro del servlet generado incluídos en elmétodo _jspService(). Los Scripts pueden acceder a cualquier variable o Beanque haya sido declarado. También hay algunos objetos implícitos disponiblespara los Scripts desde entorno del Servlet.

Algunos de ellos pueden verse a continuación:

request: Es la petición del cliente. Es normalmente una subclase de laclase HttpServletRequest.

response: Es la página JSP de respuesta y es una subclase de HttpServle-tResponse. Los atributos de la página y los objetos implícitos necesitanser accesibles a través de API, para permitir al motor de JSP compilarla página. Pero cada servidor tiene implementaciones específicas de cadauno de esos atributos y objetos.

pageContext: Esta clase PageContext es inicializada con los objetos re-sponse y request y algunos atributos de la directiva de la página (er-ropage, session, buffer and autoflush) y facilita los otros objetos implíc-itos para la página de petición.

session: El objeto de sesión HTTP asociado a la petición.

application: Lo que devuelve el servlet cuando se llama a getServletCon-fig().getContext().

page: Es la forma que tiene la página para referirse a si misma. Se usacomo alternativa al objeto this.

El siguiente fragmento de código muestra como obtener el valor de unparámetro mediante el objeto request, y como pasarlo a una cadena paramostrarlo en pantalla.

Page 131: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.7. SERVLETS 109

<%

String strNombre = request.getParameter(“nombre”);

out.println(strNombre);

%>

Expresiones JSP

Las expresiones son una magnífica herramienta para insertar código em-bebido dentro de la página HTML. Cualquier cosa que esté entre los tags<%= y%> será evaluado, convertido a cadena y posteriormente mostrado enpantalla. La conversión desde el tipo inicial a String es manejada autómatica-mente.

Es importante remarcar que la expresión no termina en punto y coma (;). Esto es así porque el motor de JSP, pondrá la expresión automáticamenteentre out.println().

Las expresiones JSP permiten parametrizar las páginas HTML (es pare-cido a cuando se parametriza una consulta SQL pero difieren la forma de losvalores).

Una y otra vez , en el código de la página HTML, ser verán bucles o condi-ciones usando código Java, simplemente empezando y acabando las condicioneso bucles entre los tags <% y%>.

Un ejemplo sería:

<% 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 envía un requerimiento para los archivos JSP.

Page 132: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

110 CAPÍTULO 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 generancontenido dinámico para ser enviado al browser como se muestra en la figura5.5 de la página 110.

Cuando el servidor Web recibe un requerimiento para un archivo JSP, elservidor envía ese requerimiento al servidor de aplicaciones. El servidor deaplicaciones analiza el archivo JSP y genera código fuente de Java que secompila y se ejecuta como un servlet.

El requerimiento se envía a un servlet que genera contenido dinámico yllama a un archivo JSP para enviar el contenido a un browser, como se muestraen la figura 5.6 de la página 110.

Page 133: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

5.7. SERVLETS 111

Este modelo de acceso facilita la generación de contenido separado deldespliegue de contenido.

El servidor de aplicaciones proporciona un juego de métodos en el objetoHttpServiceRequest object y el objeto HttpServiceResponse. Estos métodospermiten una invocación de servlet para colocar un objeto (normalmente unbean) en un objeto demanda y pasa ese requerimiento a otra página (nor-malmente un archivo JSP) para el despliegue. La página invocada recupera elbeans del objeto demanda y genera el HTML que recibe el cliente.

5.7.6. Desarrollando Aplicaciones

Para WebSphere Application Server, las aplicaciones son combinacionesde bloques que trabajan conjuntamente para el logro de una función de lalógica comercial. Las aplicaciones Web son grupos de uno o más servlets, másel contenido estático.

Aplicaciones Web = servlets + archivos JSP + archivos XML + archivosHTML + gráficos.

El modelo de programación de WebSphere Application Server está basadoen la plataforma Java de Sun (J2SE). El ambiente J2SE soporta la base paraconstruir redes centrales de aplicaciones empresariales para correr sobre unavariedad de sistemas. El software J2SE consiste en los Java SDK StandardEdition y el Java Runtime Environment (JRE) Standard Edition.

Page 134: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 135: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 6

Java 2 Micro Edition

6.1. Introducción

Para empezar se puede decir que Java 2 Micro Edition o J2ME es la versióndel lenguaje Java que está orientada al desarrollo de aplicaciones para dispo-sitivos pequeños con capacidades restringidas tanto en pantalla gráfica, comode procesamiento y memoria (teléfonos móviles, PDA‘s, Handhelds, Pagers,etc.).

Esta versión de Java fue presentada en 1999 por Sun Microsystems con elpropósito de habilitar aplicaciones Java para pequeños dispositivos. En estapresentación lo que realmente se mostró fue una nueva máquina virtual Javao JVM (Java Virtual Machine) que podía ejecutarse en dispositivos Palm.

La tardía aparición de esta tecnología puede ser debido a que las necesi-dades de los usuarios de telefonía móvil han cambiado mucho en estos últimosaños y cada vez demandan más servicios y prestaciones por parte tanto de losterminales como de las compañías. Además el uso de esta tecnología dependedel asentamiento en el mercado de otras, como GPRS, íntimamente asociadaa J2ME y que no ha estado al alcance hasta hace poco. J2ME es la tecnologíadel futuro para la industria de los dispositivos móviles.

113

Page 136: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

114 CAPÍTULO 6. JAVA 2 MICRO EDITION

6.1.1. Comparación de Versiones

Sun Microsystems, con el objetivo de cubrir las necesidades de todos losusuarios creó distintas versiones de Java de acuerdo a las necesidades de cadauno, por lo cual existe el paquete Java 2 que se puede dividir en 3 edicionesdistintas:

J2SE (Java Standard Edition) orientada al desarrollo de aplicacionesindependientes de la plataforma.

J2EE (Java Enterprise Edition) orientada al entorno empresarial.

J2ME(Java Micro Edition) orientada a dispositivos con capacidades re-stringidas.

Algunas de las características de cada una de las versiones son:

1. Java 2 Platform, Standard Edition (J2SE): Esta edición de Java es laque en cierta forma recoge la iniciativa original del lenguaje Java. Tienelas siguientes Características:

Inspirado inicialmente en el lenguaje C++, pero con componentesde alto nivel, como soporte nativo de strings y recolector de basura(garbage colector).

Código independiente de la plataforma, precompilado a bytecodesintermedio y ejecutado en el cliente por una JVM (Java VirtualMachine).

Modelo de seguridad tipo sandbox proporcionado por la JVM.

Abstracción del sistema operativo subyacente mediante un juegocompleto de APIs de programación.

Contiene el conjunto básico de herramientas usadas para desarrol-lar Java Applets, así cómo las APIs orientadas a la programaciónde aplicaciones de usuario final: Interfaz gráfica de usuario, multi-media, redes de comunicación.

2. Java 2 Platform, Enterprise Edition (J2EE): Esta versión está orientadaal entorno empresarial. El software empresarial tiene unas característicaspropias marcadas:

Page 137: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.1. INTRODUCCIÓN 115

Está pensado no para ser ejecutado en un equipo, sino para ejecu-tarse sobre una red de ordenadores de manera distribuida y remotamediante EJBs (Enterprise Java Beans).

Esta edición está orientada especialmente al desarrollo de serviciosweb, servicios de nombres, persistencia de objetos, XML, autenti-cación, APIs para la gestión de transacciones, etc.

El cometido de esta especificación es ampliar la J2SE para darsoporte a los requisitos de las aplicaciones de empresa.

3. Java 2 Platform, Micro Edition (J2ME): Esta versión de Java está en-focada a la aplicación de la tecnología Java en dispositivos electrónicoscon capacidades computacionales y gráficas muy reducidas, tales comoteléfonos móviles, PDAs o electrodomésticos inteligentes:

Esta edición tiene unos componentes básicos que la diferencian delas otras versiones, como el uso de una máquina virtual denominadaKVM (Kilo Virtual Machine, debido a que requiere sólo unos pocosKilobytes de memoria para funcionar) en vez del uso de la JVMclásica.

Figura 6.1: Arquitectura de la Plataforma Java 2 de Sun

La fig. 10.1 de la pág. 234 muestra la arquitectura de Java2.

Page 138: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

116 CAPÍTULO 6. JAVA 2 MICRO EDITION

En la actualidad se puede decir que Java no es sólo un simple lenguaje deprogramación sino un conjunto de tecnologías que engloba a todos los aspectosde la computación con dos elementos en común:

El código fuente en lenguaje Java es compilado a código intermediointerpretado por una Java Virtual Machine (JVM ), por lo que el códigoya compilado es independiente de la plataforma.

Todas las tecnologías comparten un conjunto más o menos amplio deAPIs básicas del lenguaje, agrupadas principalmente en los paquetesjava.lang y java.io.

Debido a que la edición estándar de APIs de Java ocupa 20 MB aproxi-madamente y los dispositivos pequeños disponen de una cantidad de memoriamucho más reducida, J2ME contiene una mínima parte de las APIs de Java.Concretamente, J2ME usa 37 clases de la plataforma J2SE provenientes delos paquetes java.lang, java.io, java.util. Esta parte de la API que se mantienefija forma parte de lo que se denomina “configuración” [14].

Otra diferencia con la plataforma J2SE viene dada por el uso de unamáquina virtual distinta de la clásica JVM denominada KVM. Esta KVMtiene unas restricciones que hacen que no posea todas las capacidades incluidasen la JVM clásica.

J2ME representa una versión simplificada de J2SE. Sun separó estas dosversiones ya que J2ME está pensada para dispositivos con limitaciones deproceso y capacidad gráfica. También separó J2SE de J2EE porque este últimoexigía unas características muy pesadas o especializadas de E/S, trabajo enred, etc. Por tanto, separó ambos productos por razones de eficiencia.

Hoy, J2EE es un superconjunto de J2SE pues contiene toda la funcionali-dad de éste y más características, así como J2ME es un subconjunto de J2SE(excepto por el paquete javax.microedition) ya que contiene varias limitacionescon respecto a J2SE.

Sólo de manera muy simplista se puede considerar a J2ME y J2EE comoversiones reducidas y ampliadas de J2SE respectivamente (ver fig. 6.2 de lapág. 117): en realidad cada una de las ediciones está enfocada a ámbitos deaplicación muy distintos [14].

Page 139: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.1. INTRODUCCIÓN 117

Figura 6.2: Ubicación de las Tecnologías Java

6.1.2. Algunas Consideraciones al Desarrollar en J2ME

Algunas consideraciones son las siguientes:

1. Prácticamente los dispositivos móviles y más aún los nuevos teléfonoscelulares ya poseen capacidad de ejecución de aplicaciones desarrolladasen J2ME. Existen algunas ventajas y restricciones o desventajas respectoa otras tecnologías.

Algunas ventajas en comparación de J2ME con respecto al lengua-je C son:

• Multiplataforma: Significa 1 programa - se puede ejecutar en nmóviles.

• Seguridad: El usuario está protegido.• Descarga OTA (Over The Air).• Desarrollo rápido.

Inconveniente:

• Alejamiento del hardware. No puede accederse a ciertos recur-sos del teléfono si éste no incorpora el API correspondiente.

2. Las aplicaciones móviles que poseen conectividad a Internet pueden uti-lizar la tecnología GPRS, en la cual se tarifa al usuario por Kbytesrecibidos y enviados, es por esto que es importante minimizar la canti-dad de información intercambiada. Las relaciones que existen de acuerdo

Page 140: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

118 CAPÍTULO 6. JAVA 2 MICRO EDITION

al tipo de información intercambiada y el volumen de la misma son lassiguientes:

Página html - 10-100Kb.

Página wml 1-10Kb.

Información “pura” - 0.1 - 1kb.

3. ¿Cuándo interesa desarrollar en J2ME?:

Cuando no hay tráfico de información, por ejemplo: juegos, conver-sores de unidades.

Cuando el tráfico de información puede minimizarse con J2ME .

Cuando pueden almacenarse datos localmente en el móvil y sólotransferir algunos otros como los resultados [8].

6.2. Componentes de J2ME

Los componentes que forman parte de la tecnología J2ME son:

Máquina virtual: Existe una serie de máquinas virtuales java con diferen-tes requisitos, cada una para diferentes tipos de pequeños dispositivos.

Configuraciones: Son un conjunto de clases básicas orientadas a confor-mar el corazón de las implementaciones para dispositivos de caracterís-ticas específicas:

• Connected Limited Device Configuration (CLDC) enfocada a dis-positivos con restricciones de procesamiento y memoria.

• Connected Device Configuration (CDC) enfocada a dispositivos conmás recursos [8].

Perfiles: Son unas bibliotecas Java de clases específicas orientadas aimplementar funcionalidades de más alto nivel para familias específicasde dispositivos.

Page 141: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.2. COMPONENTES DE J2ME 119

6.2.1. Máquinas Virtuales J2ME

Una máquina virtual de Java (JVM ) es un programa encargado de inter-pretar código intermedio (bytecode) de los programas Java precompilados acódigo máquina ejecutable por la plataforma, efectuar las llamadas pertinentesal sistema operativo subyacente y observar las reglas de seguridad y correcciónde código definidas para el lenguaje Java. De esta forma, la JVM proporcionaal programa Java independencia de la plataforma con respecto al hardware yal sistema operativo subyacente.

Las implementaciones tradicionales de JVM son, en general, muy pesadasen cuanto a memoria ocupada y requerimientos computacionales. J2ME definevarias JVMs de referencia adecuadas al ámbito de los dispositivos electrónicosque, en algunos casos, suprimen algunas características con el fin de obteneruna implementación menos exigente.

La tecnología J2ME ha definido dos configuraciones, CDC y CLDC, cadauna de ellas con características propias, en consecuencia para cada tipo de con-figuración se definió una máquina virtual distinta. La VM (Virtual Machine)correspondiente a CLDC se denomina KVM y la de la configuración CDC sedenomina CVM.

A continuación se detallan las principales características de cada una deellas:

KVM

Se corresponde con la máquina virtual más pequeña. Su nombre KVMproviene de Kilobyte (que hace referencia a la baja ocupación de memoria).Se trata de una implementación de máquina virtual reducida y especialmenteorientada a dispositivos con bajas capacidades computacionales y de memoria,como ser los teléfonos celulares.

La KVM está escrita en el lenguaje de programación C y posee algunascaracterísticas particulares como:

Pequeña, con una carga de memoria entre los 40Kb y los 80 Kb, depen-diendo de la plataforma y las opciones de compilación.

Alta portabilidad.

Modulable.

Page 142: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

120 CAPÍTULO 6. JAVA 2 MICRO EDITION

Lo más completa y rápida posible y sin sacrificar características para lasque fue diseñada.

Sin embargo, existen algunas limitaciones debido a su bajo consumo dememoria respecto la maquina virtual clásica:

No hay soporte para tipos en coma flotante. Esta limitación está pre-sente porque los dispositivos carecen del hardware necesario para estasoperaciones.

No existe soporte para JNI (Java Native Interface) debido a los recursoslimitados de memoria.

No existen cargadores de clases (class loaders) definidos por el usuario.

No se permiten los grupos de hilos o hilos daemon. Si se necesita lautilización de grupos de hilos se tendrán que utilizar los objetos colecciónpara almacenar cada hilo.

No existe la finalización de instancias de clases. No existe el métodoObject.finalize().

Limitada capacidad para el manejo de excepciones debido a que el mane-jo de éstas depende en gran parte de las APIs de cada dispositivo por loque son éstos los que controlan la mayoría de las excepciones.

Otro tema en cuestión que se puede encontrar en ésta maquina virtual máspequeña es la verificación de clases. El verificador de clases estándar de Java esdemasiado grande para la KVM, De hecho es más grande que la propia KVMy el consumo de memoria es excesivo, más de 100Kb para las aplicacionestípicas.

Este verificador de clases es el encargado de rechazar las clases no válidasen tiempo de ejecución. Este mecanismo verifica los bytecodes de las clasesJava realizando las siguientes comprobaciones:

Ver que el código no sobrepase los límites de la pila de la VM.

Comprobar que no se utilizan las variables locales antes de ser iniciali-zadas.

Page 143: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.2. COMPONENTES DE J2ME 121

Comprobar que se respetan los campos, métodos y los modificadores decontrol de acceso a clases.

Por esta razón los dispositivos que usen la configuración CLDC y KVMintroducen un algoritmo de verificación de clases en dos pasos. Este procesopuede apreciarse gráficamente en la fig. 6.3 de la pág. 121.

Figura 6.3: Proceso de Verificación

CVM

La CVM (Compact Virtual Machine) ha sido tomada como máquinavirtual

Java de referencia para la configuración CDC y soporta las mismas ca-racterísticas que la máquina virtual clásica. Está orientada a dispositivos elec-trónicos con procesadores de 32 bits de gama alta y en torno a 2 Mb o más dememoria RAM.

Las características que presenta ésta máquina virtual son:

1. Sistema de memoria avanzado.

Page 144: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

122 CAPÍTULO 6. JAVA 2 MICRO EDITION

2. Tiempo de espera bajo para el recolector de basura.

3. Separación completa de la VM del sistema de memoria.

4. Recolector de basura modularizado.

5. Portabilidad.

6. Rápida sincronización.

7. Ejecución de las clases Java fuera de la memoria de sólo lectura (ROM).

8. Soporte nativo de hilos.

9. Baja ocupación en memoria de las clases.

10. Proporciona soporte e interfaces para servicios en sistemas operativos detiempo real.

11. Conversión de hilos Java a hilos nativos.

12. Soporte para todas las características de Java2 v1.3 y librerías de se-guridad, referencias débiles, Interfaz Nativa de Java (JNI ), invocaciónremota de métodos (RMI ), Interfaz de depuración de la máquina virtual(JVMDI).

6.2.2. Configuraciones

Una configuración es el conjunto mínimo de APIs Java que permiten de-sarrollar aplicaciones para un grupo de dispositivos. Estas APIs describen lascaracterísticas básicas, comunes a todos los dispositivos:

Características soportadas del lenguaje de programación Java.

Características soportadas por la máquina virtual Java.

Bibliotecas básicas de Java y APIs soportadas.

Como se ha mencionado con anterioridad, existen dos configuraciones, laque está orientada a dispositivos con limitaciones computacionales y de memo-ria que se denomina CLDC y la configuración que se encuentra orientada

Page 145: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.2. COMPONENTES DE J2ME 123

a dispositivos con menos restricciones en cuanto a capacidad de cómputo ymemoria, la cual se denomina CDC .

A continuación se presentan las características más relevantes de cada una:

Configuración de dispositivos con conexión, CDC (Conected Device Con-figuration):

• La CDC está orientada a dispositivos con cierta capacidad com-putacional y de memoria. Por ejemplo, decodificadores de televisióndigital, televisores con Internet, algunos electrodomésticos y sis-temas de navegación en automóviles.

• CDC usa una máquina virtual Java similar en sus característicasa una de J2SE, pero con limitaciones en el apartado gráfico y dememoria del dispositivo.

• La CDC está enfocada a dispositivos con las siguientes capacidades:

◦ Procesador de 32 bits.

◦ 2 Mb o más de memoria total, incluyendo memoria RAM yROM.

◦ Conectividad a algún tipo de red.◦ Poseer la funcionalidad completa de la Máquina Virtual Java2.

La CDC está basada en J2SE v1.3 e incluye varios paquetes Java de laedición estándar. Las peculiaridades de la CDC están contenidas prin-cipalmente en el paquete javax.microedition.io, que incluye soporte paracomunicaciones http y basadas en datagramas [14].

La tabla 6.1 de la pág. 124 muestra las librerías incluidas en la CDC.

Configuracion de dispositivos limitados con conexión, CLDC (ConectedLimited Device Configuration):

• La CLDC está orientada a dispositivos dotados de conexión y conlimitaciones en cuanto a capacidad gráfica, cómputo y memoria. Co-mo por ejemplo teléfonos móviles, buscapersonas (Pagers), PDAs,organizadores personales, etc.

Page 146: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

124 CAPÍTULO 6. JAVA 2 MICRO EDITION

Nombre del paquete DescripciónCDC

java.io Clases y paquetes estándar de E/Sjava.lang Clases e interfaces de la máquina virtualjava.lang.ref Clases de referencia

java.lang.reflect Clases e interfaces de reflectiónjava.math Paquete de matemáticasjava.net Clases e interfaces de red

java.security Clases e interfaces de seguridadjava.security.cert Clases de certificados de seguridad

java.text Paquete de textojava.util Clases de utilidades estándar

java.util.jar Clases y utilidades para archivos JARjava.util.zip Clases y utilidades para archivos

ZIP y comprimidosjavax.microedition.io Clases e interfaces para conexión genérica CDC

Cuadro 6.1: Librerías de configuración CDC

• Las restricciones que contiene la configuración CLDC vienen dadaspor la utilización de la máquina virtual o KVM.

• Los dispositivos que usan CLDC deben cumplir los siguientes re-quisitos:

◦ Disponer entre 160 Kb y 512 Kb de memoria total disponible.Como mínimo se debe disponer de 128 Kb de memoria novolátil para la máquina virtual Java y las bibliotecas CLDC, y32 Kb de memoria volátil para la máquina virtual en tiempode ejecución.

◦ Procesador de 16 o 32 bits con al menos 25 Mhz de velocidad.◦ Tener conexión a algún tipo de red, normalmente sin cable, conconexión intermitente y ancho de banda limitado.

◦ Ofrecer bajo consumo, debido a que éstos dispositivos traba-jan con suministro de energía limitado, normalmente bateríasrecargables.

• La CLDC aporta las siguientes funcionalidades a los dispositivos:

◦ Un subconjunto del lenguaje Java y todas las restricciones desu máquina virtual (KVM ).

Page 147: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.2. COMPONENTES DE J2ME 125

◦ Un subconjunto de las bibliotecas del núcleo de Java.

◦ Soporte para acceso a redes.

◦ Soporte para E/S básica.

◦ Seguridad.

La tabla 6.2 de la pág. 125 muestra las librerías incluidas en la CLDC.

Nombre del paquete DescripciónCLDC

java.io Clases y paquetes estándar de E/Sjava.lang Clases e interfaces de la máquina virtualjava.util Clases e interfaces, utilidades estándar

javax.microedition.io Clases e interfaces de conexión genérica

Cuadro 6.2: Librerías de configuración CLDC

6.2.3. Perfiles

Un perfil es el que define las APIs que controlan el ciclo de vida de laaplicación, interfaz de usuario, etc. Concretamente, un perfil es un conjuntode APIs orientado a un ámbito de aplicación determinado.

Los perfiles identifican un grupo de dispositivos por la funcionalidad queproporcionan (ya sean electrodomésticos, teléfonos móviles, etc.) y el tipo deaplicaciones que se ejecutarán en ellos.

Las librerías de la interfaz gráfica son un componente muy importante enla definición de un perfil. Se pueden encontrar grandes diferencias entre lasinterfaces, desde el menú textual de los teléfonos móviles hasta los táctiles delos PDAs.

El perfil establece unas APIs que definen las características de un disposi-tivo, mientras que la configuración hace lo propio con una familia de ellos.

Esto hace que a la hora de construir una aplicación se cuente tanto con lasAPIs del perfil como de la configuración.

Page 148: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

126 CAPÍTULO 6. JAVA 2 MICRO EDITION

Anteriormente se mencionó que para una configuración determinada seusaba una Máquina Virtual Java específica. Teníamos que con la configuraciónCDC se utilizaba la CVM y que con la configuración CLDC se utilizaba laKVM. Con los perfiles ocurre lo mismo. Existen unos perfiles que se construiránsobre la configuración CDC y otros que se construirán sobre la CLDC.

Figura 6.4: Entorno de Ejecución de J2ME

Para la configuración CDC se encuentran los siguientes perfiles:

Fundation Profile.

Personal Profile.

RMI Profile.

Y para la configuración CLDC se encuentran los siguientes:

PDA Profile.

Mobile Information Device Profile (MIDP).

En la fig. 6.4 de la pág. 126 se puede ver cómo quedaría el esquema delentorno de ejecución al completo.

Page 149: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.2. COMPONENTES DE J2ME 127

A continuación se describirá con más detenimiento cada uno de estos per-files:

Foundation Profile: Este perfil define una serie de APIs sobre la CDCorientadas a dispositivos que carecen de interfaz gráfica como, por ejemplo,decodificadores de televisión digital [14].

Este perfil incluye gran parte de los paquetes de la J2SE, pero excluyetotalmente los paquetes que conforman la interfaz gráfica de usuario (GUI )de J2SE, concretamente los paquetes “java.awt” Abstract Windows Toolkit(AWT ) y “java.swing”.

Los paquetes que forman parte del Foundation Profile se muestran en latabla 6.3 de la pág. 127.

Paq. del Fundation Profile Descripciónjava.lang Soporte del lenguaje Javajava.util Añade soporte completo para

zip y otras funcionalidadesjava.net Incluye sockets TCP/IP

y conexiones HTTPjava.io Clases Reader y Writer de J2SEjava.text Incluye soporte para internacionalización

java.segurity Incluye códigos y certificados

Cuadro 6.3: Librerías del Fondation Profile

Personal Profile: Es un subconjunto de la plataforma J2SE versión 1.3,proporciona un completo soporte gráfico AWT .

El objetivo es el de dotar a la configuración CDC de una interfaz gráficacompleta, con capacidades web y soporte de applets Java.

Este perfil requiere una implementación del perfil Foundation Profile.

La tabla 6.4 de la pág. 128 muestra los paquete que conforman el perfil.

RMI Profile: Este perfil requiere una implementación del FoundationProfile. El perfil RMI soporta un subconjunto de las APIs J2SE v1.3 RMI.Algunas características de estas APIs se han eliminado del perfil RMI debidoa las limitaciones de cómputo y memoria de los dispositivos.

Page 150: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

128 CAPÍTULO 6. JAVA 2 MICRO EDITION

Paq. del Personal DescripciónProfile

java.applet Clases necesarias para crear appletsjava.awt Clases para crear GUIs con AWT

java.awt.datatransfer Clases e interfaces para transmitirdatos entre aplicaciones

java.awt.event Clases e interfaces para manejareventos AWT

java.awt.font Clases e interfaces para lamanipulación de fuentes

java.awt.im Clases e interfaces para definirmétodos editores de entrada

java.awt.im.spi Interfaces que añ aden el desarrollo de métodoseditores de entrada para cualquier entorno

de ejecución Javajava.awt.image Clases para crear y modificar imágenesjava.beans Clases que soportan JavaBeans

javax.microedition.xlet Interfaces que usa el Personal Profilepara la comunicación

Cuadro 6.4: Librerías del Personal Profile

Page 151: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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.packagePrefix.

Java.rmi.registry.packagePrefix.

Java.rmi.server.packagePrefix

PDA Profile: Está construido sobre CLDC. Pretende abarcar PDAs degama baja, tipo Palm, con una pantalla y algún tipo de puntero (ratón o lápiz)y una resolución de al menos 20000 pixeles.

En este momento este perfil se encuentra en fase de definición.

Mobile Information Device Profile (MIDP): Este perfil está constru-ido sobre la configuración CLDC. MIDP fue el primer perfil definido para estaplataforma.

Este perfil está orientado para dispositivos con las siguientes característi-cas:

Reducida capacidad computacional y de memoria.

Conectividad limitada (en torno a 9600 bps).

Capacidad gráfica muy reducida (mínimo un display de 96x54 pixels).

Entrada de datos alfanumérica reducida.

128 Kb de memoria no volátil para componentes MIDP.

8 Kb de memoria no volátil para datos persistentes de aplicaciones.

32 Kb de memoria volátil en tiempo de ejecución para la pila Java.

Los tipos de dispositivos que se adaptan a estas características son: telé-fonos móviles, buscapersonas (pagers) o PDAs de gama baja con conectividad.

El perfil MIDP especifica las APIs relacionadas con:

Page 152: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

130 CAPÍTULO 6. JAVA 2 MICRO EDITION

La aplicación (semántica y control de la aplicación MIDP).

Interfaz de usuario.

Almacenamiento persistente.

Trabajo en red.

Temporizadores.

Las aplicaciones realizadas utilizando MIDP reciben el nombre de MIDlets(por simpatía con APPlets). Se puede decir que un MIDlet es una aplicaciónJava realizada con el perfil MIDP sobre la configuración CLDC.

En la tabla 6.5 de la pág. 130 se pueden apreciar cuáles son los paquetesque están incluidos en el perfil MIDP.

Paq. del MIDP Descripciónjavax.microedition.lcdui Clases e interfaces para GUIsjavax.microedition.rms Soporte para el almacenamiento

persistente del dispositivojavax.microedition.midlet Clases de definición de la aplicaciónjavax.microedition.io Clases e interfaces de conexión genérica

java.io Clases e interfaces de E/S básicajava.lang Clases e interfaces de la máquina virtualjava.util Clases e interfaces de utilidades estándar

Cuadro 6.5: Librerías del MIDP Profile

6.3. Requerimientos Funcionales para Detectar unaAplicación J2ME

Los dispositivos deben proporcionar mecanismos mediante los cuales sepuedan encontrar los MIDlets que se desean descargar. En algunos casos, sepueden encontrar los MIDlets a través de un navegador WAP o a través deuna aplicación residente escrita específicamente para identificar MIDlets.

Page 153: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.4. LOS MIDLETS 131

Otros mecanismos como Bluetooth, cable serie, etc, pueden ser soportadospor 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 MI-Dlets en el dispositivo se llama Gestor de Aplicaciones o AMS (ApplicationManagement

Software).

Un dispositivo que posea la especificación 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 servidorusando el protocolo HTTP 1.1 u otro que posea su funcionalidad.

Enviar el nombre de usuario y contraseña cuando se produzca una res-puesta HTTP por parte del servidor 401 (Unauthorized) o 407 (ProxyAuthentication Required).

Instalar el MIDlet en el dispositivo.

Ejecutar MIDlets.

Permitir al usuario borrar MIDlets instalados.

6.4. Los MIDlets

LosMIDlets son aplicaciones creadas usando la especificaciónMIDP. Estándiseñados para ser ejecutados en dispositivos con poca capacidad gráfica, decómputo y de memoria.

Las clases de un MIDLet, son almacenadas en bytecodes Java, dentro deun fichero .class. Estas clases deben ser verificadas antes de su “puesta enmarcha”, para garantizar que no realizan ninguna operación no permitida.Este preverificación, se debe hacer debido a las limitaciones de la máquinavirtual usada en estos dispositivos.

Para mantener a la máquina virtual lo más sencilla y pequeña posible, seelimina esta verificación, y se realiza antes de la entrada en producción.

Page 154: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

132 CAPÍTULO 6. JAVA 2 MICRO EDITION

La preverificación se realiza después de la compilación, y el resultado esuna nueva clase, lista para ser puesta en producción.

Los MIDLets son empaquetados en ficheros “.jar”.

Existen 2 ficheros que contienen información extra dentro del “.jar” parala puesta en marcha de la aplicación, el fichero “manifiesto”, con extensión“.mf ” y un fichero “descriptor”, con extensión “.jad”.

Un fichero “.jar” típico, por tanto, se compondrá de:

Clases del MIDLet.

Clases de soporte.

Recursos (imágenes, sonidos, etc.).

Manifiesto (fichero “.mf”).

Descriptor (fichero “.jad”).

6.4.1. El Gestor de Aplicaciones

El gestor de aplicaciones o AMS (Application Management System) esel software encargado de gestionar los MIDlets. Este software reside en eldispositivo 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 elMIDlet mientras está en ejecución.

6.4.2. Ciclo de Vida de un MIDlet

Como puede ilustrarse en la fig. 6.5 de la pág. 133 el ciclo de vida deun MIDlet pasa por cinco fases: Descubrimiento o localización; instalación;ejecución; actualización y borrado.

El AMS es el encargado de gestionar cada una de estas fases de la siguientemanera:

Page 155: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.4. LOS MIDLETS 133

Figura 6.5: Ciclo Vida de un MIDlet.

1. Localización: Esta fase es la etapa previa a la instalación del MIDlet yes donde se selecciona a través del gestor de aplicaciones la aplicación a

descargar. Por tanto, el gestor de aplicaciones tiene que proporcionar los

mecanismos necesarios para realizar la elección del MIDlet a descargar. El

AMS puede ser capaz de realizar la descarga de aplicaciones de diferentes

maneras, dependiendo de las capacidades del dispositivo. Por ejemplo, esta

descarga se debe poder realizar mediante un cable conectado a un orde-nador o

mediante una conexión inalámbrica.

1. Instalación: En esta fase el gestor de aplicaciones controla todo el

proceso de instalación del MIDlet informando al usuario tanto de la evolu-ción de la

Page 156: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

134 CAPÍTULO 6. JAVA 2 MICRO EDITION

instalación como de si existiese algún problema durante ésta.

1. Ejecución: Mediante el gestor de aplicaciones se va a poder iniciar laejecución de los MIDlets. En esta fase, el AMS tiene la función de ges-tionar los estados del MIDlet en función de los eventos que se produzcandurante esta ejecución.

2. Actualización: El AMS tiene que tener la capacidad de detectar si el MI-Dlet a instalar es una actualización de alguno ya existente, en cuyo casodeberá informar de la situación y permitir la actualización del MIDlet.

3. Borrado: Una vez instalado el MIDlet en el dispositivo, este permanecealmacenado en la memoria persistente todo el tiempo hasta que el usuariodecida borrarlo.

El AMS es el encargado de eliminar el MIDlet pidiendo una confirmacióndel proceso

antes de continuar.

6.4.3. Estados de un MIDlet

Además de gestionar el ciclo de vida de los MIDlets, el AMS es el encar-gado de controlar los estados del MIDlet durante su ejecución. Durante éstael MIDlet es cargado en la memoria del dispositivo y es aquí donde puedetransitar entre 3 estados diferentes: activo, en pausa y destruido como puedeapreciarse en la fig. 6.6 de la pág. 135.

Como se puede ver en la fig. 6.6 de la pág. 6.6, un MIDlet puede cam-biar de estado mediante una llamada a los métodos MIDlet.startApp(), MI-Dlet.pauseApp() o MIDlet.destroyApp(). El gestor de aplicaciones cambia elestado de los MIDlets haciendo una llamada a cualquiera de los métodos an-teriores.

Un MIDlet también puede cambiar de estado por sí mismo.

6.4.4. El Paquete javax.microedition.midlet

El paquete javax.microedition.midlet define las aplicaciones MIDP y sucomportamiento con respecto al entorno de ejecución.

Page 157: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.4. LOS MIDLETS 135

Figura 6.6: Estados de un MIDlet.

En la tabla 6.6 de la pág. 135 se puede apreciar cuáles son las clases queestán incluidas en este paquete.

Clases Descripción

MIDlet Aplicación MIDPMIDletstateChangeException 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 aplicaciónrealizada usando el perfil MIDP.

La aplicación desarrollada debe extender o heredar de esta clase para queel gestor de aplicaciones o AMS pueda gestionar sus estados y tener acceso asus propiedades.

Los métodos de los que dispone esta clase son los siguientes:

protected MIDlet()

Constructor de clase sin argumentos. Si la llamada a este constructor falla,

Page 158: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

136 CAPÍTULO 6. JAVA 2 MICRO EDITION

se lanzaría la excepción SecurityException.

public final int checkPermission(String permiso)

Con este método se consigue un número que determina el permiso especifi-cado. Este permiso está descrito en el atributo MIDlet-Permission del archivoJAD.

Los valores que puede arrojar este método 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 MIDlet-stateChangeException

Indica la terminación del MIDlet y su paso al estado de “Destruido”. Enel estado de “Destruido” el MIDlet debe liberar todos los recursos y salvarcualquier dato en el almacenamiento persistente que deba ser guardado. Estemétodo puede ser llamado desde los estados “Pausa” o “Activo”.

public final String getAppProperty(String key)

Este método proporciona alMIDlet un mecanismo que le permite recuperarel valor de las propiedades desde el AMS. Las propiedades se consiguen pormedio de los archivos manifest y JAD. El nombre de la propiedad a recuperardebe ir indicado en el parámetro key.

public final void notifyDestroyed()

Con este método se notifica al AMS que el MIDlet no quiere estar “Activo”y que ha entrado en el estado de “Pausa”. Este método sólo debe ser invocadocuando el MIDlet esté en el estado “Activo”.

Si la aplicación es pausada por sí misma, es necesario llamar al métodoMIDlet.resumeRequest() para volver al estado “Activo”.

Page 159: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.4. LOS MIDLETS 137

protected abstract void pauseApp()

Indica al MIDlet que entre en el estado de “Pausa”. Este método sólo debeser llamado cuándo el MIDlet esté en estado “Activo”.

public final boolean platformRequest(String url)

Establece una conexión entre el MIDlet y la dirección URL. Dependiendodel contenido de la URL, el dispositivo ejecutará una determinada aplicaciónque sea capaz de leer el contenido y dejar al usuario que interactúe con él.

protected abstract void startApp() throws MIDletstateChangeException

Este método indica al MIDlet que ha entrado en el estado “Activo”. Estemétodo sólo puede ser invocado cuándo el MIDlet está en el estado de “Pausa”.En el caso de que el MIDlet no pueda pasar al estado “Activo” en este mo-mento pero sí pueda hacerlo en un momento posterior, se lanzaría la excepciónMIDletstateChangeException.

Los métodos anteriormente mencionados se utilizan para la comunicaciónentre el MIDlet y el AMS. Por un lado se tiene que los métodos startApp(),pauseApp() y destroyApp() los utiliza el AMS para comunicarse con elMIDlet,mientras que los métodos 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 lafunción main().

Aunque existiese dicha función, el gestor de aplicaciones la ignoraría porcompleto. Un MIDlet tampoco puede realizar una llamada a System.exit().Una llamada a este método lanzaría la excepción SecurityException.

Los MIDlets tienen la siguiente estructura:

import javax.microedition.midlet.*;

public class MiMidlet extends MIDlet{

Page 160: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

138 CAPÍTULO 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 código que el

* MIDlet ejecute cuándo se active.

*/

}

public pauseApp(){

/* Aquí se puede incluir el código que el

* MIDlet ejecute cuándo entre en el estado de pausa

* es opcional

*/

}

public destroyApp(){

/* Aquí se puede incluir el código que el

* MIDlet ejecute cuándo sea destruido. Normalmente

* aquí se liberaran los recursos ocupados por el

* MIDlet como memoria, etc.

* es opcional

*/

}

}// fin de la clase MiMidlet

Un pequeño ejemplo de una aplicación simple se puede apreciar a conti-nuación.

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class HolaMundo extends MIDlet{

Page 161: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.5. INTERFACES GRÁFICAS 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 métodos son los que obligatoriamente tienen que poseer todos losMIDlets ya que, como se ha visto, la clase que se ha creado tiene que heredar dela clase MIDlet y ésta posee tres métodos abstractos: startApp(), pauseApp()y destroyApp() que han de ser implementados por cualquier MIDlet.

6.5. Interfaces Gráficas de Usuario

Teniendo en cuenta la diversidad de aplicaciones que se pueden realizarpara los dispositivos MID y los elementos que proporcionan tanto la configu-ración CLDC como el perfil MIDP se pueden clasificar a los elementos en dosgrandes grupos:

Por un lado existen los elementos que corresponden a la interfaz deusuario de alto nivel. Esta interfaz usa componentes tales como botones,

Page 162: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

140 CAPÍTULO 6. JAVA 2 MICRO EDITION

Figura 6.7: Jerarquía de Clases.

cajas de texto, formularios, etc. La finalidad de usar estas APIs de altonivel es su portabilidad. Al utilizar esta interfaz de usuario se pierde elcontrol del aspecto de las aplicaciones desarrolladas, ya que la estéticadepende exclusivamente del dispositivo donde se ejecute. La ventaja de lautilización de esta interfaz de usuario de alto nivel es la gran portabilidadque se consigue. Generalmente esta interfaz es utilizada para la creaciónde aplicaciones de negocios.

Por otro lado existen los elementos que forman parte de la interfaz deusuario de bajo nivel. Al utilizar las APIs de bajo nivel se puede tenerun control total de todo lo que está dibujado en la pantalla, ademásse pueden manejar eventos de bajo nivel, tales como pulsaciones de lasteclas. Esta interfaz es más adecuada para el desarrollo de juegos. Elpaquete javax.microedition.lcdui definido en el perfil MIDP incluye lasclases necesarias para crear interfaces de usuario, tanto de alto nivelcomo de bajo nivel. En la fig. 6.7 de la pág. 140se puede apreciar laorganización de estas clases.

Page 163: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.5. INTERFACES GRÁFICAS DE USUARIO 141

6.5.1. La Clase Display

La clase Display representa el manejador de la pantalla y los dispositivosde entrada. Todo MIDlet debe poseer por lo menos un objeto Display. En esteobjeto Display se puede incluir tantos objetos Displayable como se desee. Laclase Display puede obtener información sobre las características de la pantalladel dispositivo donde se ejecute el MIDlet.

En la tabla 6.7 de la pág. 142 se puede ver los métodos incluidos en estaclase.

6.5.2. La Clase Displayable

La clase Displayable representa a las pantallas de la aplicación.

Como se mencionó anteriormente, cada objeto Display puede contener tan-tos objetos displayables como se desee.

Mediante los métodos getCurrent y setCurrent se controlan las pantallaspara que sean visibles y accesibles en cada momento.

La clase abstracta Displayable incluye los métodos encargados de manejarlos eventos de pantalla y añadir o eliminar comandos.

Estos métodos aparecen en la tabla 6.8 de la pág. 143.

6.5.3. Las Clases Command y CommandListener

Un objeto de la clase Command mantiene información sobre un evento.

Por establecer una analogía se puede pensar a un objeto Command comoun botón de Windows.

Se implementan en los MIDlets para poder detectar y ejecutar una acciónsimple.

Existen tres parámetros que hay que definir al constuir un Command :

Etiqueta: La etiqueta es la cadena de texto que aparecerá en la pantalladel dispositivo que identificará a el Command.

Page 164: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

142 CAPÍTULO 6. JAVA 2 MICRO EDITION

Métodos Descripción

void callSerially Retrasa la ejecución del método run()(Runnable r) del objeto r

boolean flashBacklight Provoca un efecto de flash(int duracion) en la pantalla

int getBestImageHeight Devuelve el mejor alto(int imagen) de imagen

int getBestImageWidth Devuelve el mejor ancho(int imagen) de imagen

int getBorderStyle Devuelve el estilo de(bolean luminosidad) borde actual

int getColor Devuelve un color basado en el(int color) parámetro pasado

Displayable getCurrent() Devuelve la pantalla actualstatic Display getDisplay Devuelve una referencia a la pantalla

(MIDlet m) del MIDlet mboolean isColor() Devuelve true o false si la pantalla

es de color o b/nint numAlphaLevels() Devuelve el número de niveles

alpha soportadosint numColors() Devuelve el número de coloresvoid setCurrent Establece la pantalla d

(Alert a, Displayable d) despues de la alerta avoid setCurrent Establece la pantalla actual(Displayable d)void setCurrent Establece en la pantalla(Item item) al item

boolean vibrate Realiza la operación de(int duracion) vibración del dispositivo

Cuadro 6.7: Métodos de la Clase Display

Page 165: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.5. INTERFACES GRÁFICAS DE USUARIO 143

Métodos Descripción

void addCommand añade el Command cmd(Command cmd)int getHeight() Devuelve el alto de la pantallaTicker getTicker() Devuelve el Ticker asignado a la pantallaString getTitle() Devuelve el título de la pantallaint getWidth() Devuelve el ancho de la pantallabolean isShown() Devuelve true si la pantalla está activa

void removeCommand Elimina el Commando cmd(Command cmd) de la pantalla

void setCommandListener Establece un Listener para la(CommandListener l) captura de eventos

protected void sizeChanged El AMS llama a este método(int w, int h) cuándo el área disponible

para el objeto Displayable es modificadavoid setTicker(Ticker ticker) Establece un Ticker a la pantallavoid setTitle(String title) Establece un título a la pantalla

Cuadro 6.8: Métodos de la Clase Displayable

Page 166: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

144 CAPÍTULO 6. JAVA 2 MICRO EDITION

Tipo: La declaración del tipo sirve para que el dispositivo identifiqueel Command y le dé una apariencia específica acorde con el resto deaplicaciones existentes en el dispositivo.

Prioridades: Esto puede servirle al AMS para establecer un orden deaparición de los Command en pantalla. A mayor número, menor priori-dad.

Los tipos que se pueden asignar aparecen en la tabla 6.9de la pág 144.

Tipo Descripción

BACK Petición para volver a la pantalla anteriorCANCEL Petición para cancelar la acción en cursoEXIT Petición para salir de la aplicaciónHELP Petición para mostrar información de ayudaITEM Petición para introducir el comando en

un Item en la pantallaOK Aceptación de una acción por parte del usuario

SCREEN Para comandos de propósito más generalSTOP Petición para parar una operación

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 pág. 144 muestra los métodos de la clase Command.

Método Devuelve el tipo del Command

public int getCommandType() Petición para volver a la pantalla anteriorpublic String getLabel() Devuelva la etiqueta del Command

public String getLongLabel() Devuelve la etiqueta larga del Commandpublic int getPriority() Devuelve la prioridad del Command

Cuadro 6.10: Métodos de la Clase Command

Page 167: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.5. INTERFACES GRÁFICAS DE USUARIO 145

No solo basta con crear objetos Command, para poder controlar algún even-to de la aplicación. Otra tarea pendiente es implementar la interfaz Comman-dListener, la cual define un método abstracto llamadoCommandAction(Commandd, Displayable d), donde debe ser implentado dicho método, ya que una inter-faz sólo define métodos abstractos, es tarea de la clase que implementa dichainterfaz tener que implementar los métodos definidos.

A través de la implementación del método CommandAction se podránmanejar los eventos que lanza el Command c que se encuentran en el objetoDisplayable d.

6.5.4. Interfaz de Usuario de Alto Nivel

Para comenzar se verá la clase Screen que es la superclase de todas lasclases que conforman la interfaz de usuario de alto nivel:

public abstract class Screen extends Displayable

En la especificación MIDP 1.0 esta clase contenía cuatro métodos que lepermitían definir y obtener el título y el ticker: setTitle(String s), getTitle(),setTicker(Ticket ticker) y getTicker(). El ticker es una cadena de texto quese desplaza por la pantalla de derecha a izquierda. En la especificación MIDP2.0, que es la más reciente, estos cuatro métodos han sido incluidos en la claseDisplayable.

La Clase Alert

El objeto Alert representa una pantalla de aviso. Normalmente se usacuando se quiere avisar al usuario de una situación 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:

Page 168: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

146 CAPÍTULO 6. JAVA 2 MICRO EDITION

1. Modal : Este tipo de alerta permanece un tiempo indeterminado en lapantalla hasta que el usuario la cancela. Se obtiene llamando al métodoAlert. setTimeOut (Alert. FOREVER).

2. No modal : Este tipo de alerta permanecerá por un tiempo definido por elusuario y luego desaparecerá. Para ello se indica el tiempo en el métodosetTimeOut(tiempo), el tiempo expresado en milisegundos.

También se puede elegir el tipo de alerta que se va a mostrar. Cada tipode alerta tiene asociado un sonido. Los tipos que se pueden definir aparecenen la tabla 6.11 de la pág. 146.

Método Devuelve el tipo del Command

ALARM Aviso de una Petición previaCONFIRMATION Indica la aceptació de una acció

ERROR Indica que ha ocurrido un errorINFO Indica algún tipo de información

WARNING Indica que puede ocurrir algún problema

Cuadro 6.11: Tipos de Alerta

La Clase List

La clase List hereda de la clase Screen, pero presenta una funcionalidadmás amplia que la clase Alert. La clase List proporciona una pantalla quecontiene una lista de elementos sobre los que el usuario puede seleccionar.Esta clase implementa la interfaz Choice, que define constantes que describentres tipos básicos de listas de opciones:

EXCLUSIVE: Una lista que permite seleccionar un solo elemento a lavez.

IMPLICIT: Un lista en la que la selección de un elemento provoca unevento (se adapta para la creación de menús).

MÚLTIPLE: Una lista que permite seleccionar uno o más elementos ala vez.

Page 169: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.5. INTERFACES GRÁFICAS DE USUARIO 147

Existen dos constructores que permiten construir listas: el primero de elloscrea una lista vacía y el segundo proporciona una lista con un conjunto inicialde opciones y de imágenes asociadas:

List(String titulo, int listType).

List(String titulo, int listType, String[] elementos, Image[] imagenes).

En la siguiente tabla 6.12 de la pág. 148 se puede observar los distintosmétodos de la clase List.

La Clase TextBox

La clase TextBox implementa un componente de edición de texto, queocupa toda la pantalla.

El constructor de la clase es:

TextBox(String title, String text, int maxSize, int constraints)

El parámetro title es un texto que aparecerá en la parte superior de lapantalla, mientras que el parámetro text es usado para inicializar el texto quecontendrá el TextBox.

El parámetro maxSize especifica el número máximo de caracteres de textoque pueden ser introducidos en el TextBox.

Por último el parámetro constraints describe las limitaciones a aplicarsobre el texto.

Estas limitaciones son especificadas según las constantes definidas en laclase TextField :

ANY: No hay limitaciones en el texto.

EMAILADDR: Sólo se puede introducir una dirección de correo elec-trónico.

NUMERIC: Sólo se puede introducir un valor numérico.

PASSWORD: El texto es protegido para que no sea visible.

Page 170: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

148 CAPÍTULO 6. JAVA 2 MICRO EDITION

Métodos Descripción

int append(String texto, Añade un elemento al final de la listaImage imagen)

void delete(int posición) Elimina el elemento de la posición especificadavoid deleteAll() Elimina todas las entradas de la lista

void insert(int pos, Inserta un elemento en laString texto, Image im) posición especificadaint getFitPolicy() Devuelve el modo en el que se muestran las

entradas de la lista por pantallaFont getFont(int pos) Devuelve la fuente del elemento posImage getImage(int pos) Obtiene la imagen de una posición determinadaint getSelectedFlags Almacena el estado de selección(bolean[] array) en un array

int getSelectedIndex() Obtiene el ndice del elemento seleccionadoString getString(int pos) Obtiene el texto del elemento indicado por posboolean isSelected(int pos) Determina si est seleccionado el elementovoid removeCommand Elimina el comando cmd(Command cmd)void set(int pos, Reemplaza el elemento de la

String texto, Image im) posición posvoid setFitPolicy(int modo) Establece el modo de posicionar las

entradas de la lista por pantallavoid setFont(int pos, Establece la fuente de la entrada

Font fuente) indicada en posvoid setSelectCommand Selecciona el Command a usar

(Command cmd)int setSelectedFlags Reemplaza el estado de selección(bolean[] array) por el de array

int setSelectedIndex(int pos, Reemplaza el estado de la selecciónboolean selec)int size() Obtiene el número de elementos

Cuadro 6.12: Métodos de la Clase List

Page 171: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.5. INTERFACES GRÁFICAS DE USUARIO 149

PHONENUMBER: Sólo se puede introducir un número de teléfono.

URL: Sólo se puede introducir una URL.

Un ejemplo de uso sería:

TextBox box = new TextBox(“NOTAS”, “Nota:” , 256, TextField.ANY).

La Clase Form

Un formulario (clase Form) es un componente que actúa como contenedorde un número indeterminado de objetos. Todos los objetos que puede contenerun formulario derivan de la clase Item.

El número de objetos que se pueden insertar en un formulario es varia-ble pero, teniendo en cuenta el tamaño de las pantallas de los dispositivosMID, se recomienda que el número sea pequeño para evitar así el scroll que seproduciría si se insertan demasiados objetos en un formulario.

Un mismo Item no puede estar en más de un formulario a la vez. Si, porejemplo, se desea usar una misma imagen en más de un formulario, se debeborrar esa imagen de un formulario antes de insertarla en el que se va a mostrarpor pantalla.

Si no se cumple esta regla, se lanzaría la excepción IllegalStateException.

La tabla 6.13 de la pág.150 muestra los métodos de la clase Form.

Manejo de Eventos

Elmanejo de eventos en un formulario es muy similar almanejo de eventosde los Command vistos anteriormente. Nada más que para un formulario setiene que implementar la interfaz ItemStateListener que contiene un métodoabstracto llamado itemStateChanged(Item item).

Cuando se realiza algún tipo de acción en el algún ítem del formulario seejecuta el código asociado del método itemStateChanged(Item item).

Un ejemplo de su utilización se puede observar a continuación:

import javax.microedition.midlet.*;

Page 172: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

150 CAPÍTULO 6. JAVA 2 MICRO EDITION

Métodos Descripción

int append(Image imagen) Añade una imagen al formularioint append(Item item) Añade un item al formularioint append(String texto) Añade un String al formulariovoid delete(int num) Elimina el Item que ocupa lo posición numvoid deleteAll() Elimina todos los Items del formularioItem get(int num) Devuelve el Item que se encuentra en

la posición numint getHeight() Devuelve la altura del área

disponible para los Itemsint getWidth() Devuelve la anchura del área disponible

para los Itemsvoid insert(int num, Inserta un Item justo antes del que ocupa

Item item) la posición numvoid set(int num, Item item) Reemplaza el Item que ocupa la posici n numboolean isSelected(int pos) Determina si est seleccionado el elementovoid setItemStateListener Establece un listener p/ capturar eventos(ItemStateLis tener listener

int size() Devuelve el número de Items del formulario

Cuadro 6.13: Métodos de la Clase Form

Page 173: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.5. INTERFACES GRÁFICAS DE USUARIO 151

import javax.microedition.lcdui.*;

public class ManejoItems extends MIDlet implements ItemStateListener, Com-mandListener{

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”);

}

}

}

Page 174: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

152 CAPÍTULO 6. JAVA 2 MICRO EDITION

La Clase StringItem

La clase StringItem es la clase más simple que deriva de Item. Es unacadena no modificable de texto, es decir, una cadena de texto con la que elusuario no puede interactuar de ninguna manera.

Para construir un StringItem se hace uso de cualquiera de sus dos con-structores:

StringItem(String etiqueta, String texto).

StringItem(String etiqueta, String texto, int apariencia).

Los parámetros:

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 métodos que posee la clase StringItem aparecen en la tabla 6.14 de lapág. 152

Métodos Descripción

int getAppearanceMode() devuelve la apariencia del textoFont getFont() devuelve la Fuente del textoString getText() devuelve el texto del StringItem

void setFont(Font fuente) Establece la Fuente del textovoid setText(String texto) Establece el texto del StringItem

Cuadro 6.14: Métodos de la Clase StringItem

La Clase ImageItem

La clase ImageItem brinda la posibilidad de incluir imágenes en un formu-lario.

Page 175: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.5. INTERFACES GRÁFICAS DE USUARIO 153

Al igual que la clase StringItem, el usuario no podrá interactuar con laimagen.

Para crear un objeto ImageItem se pueden usar uno de sus dos construc-tores:

ImageItem(String etiqueta, Image imagen, int layout, String textoalt).

ImageItem(String etiqueta, Image imagen, int layout, String textoalt, intapariencia).

El parámetro textoalt especifica una cadena de texto alternativa a la im-agen en caso de que ésta exceda la capacidad de la pantalla. Por su parte, elparámetro layout indica la posición de la imagen en la pantalla. Los valoresque puede tomar son:

LAYOUT_LEFT: Imagen posicionada a la izquierda.

LAYOUT_RIGHT: Imagen posicionada a la derecha.

LAYOUT_CENTER: Imagen centrada.

LAYOUT_DEFAULT : Posición por defecto.

LAYOUT_NEWLINE_AFTER: Imagen posicionada tras un salto delínea.

LAYOUT_NEWLINE_BEFORE: Imagen posicionada antes de un saltode línea.

Los métodos de la clase ImageItem se pueden ver en la tabla 6.15 de lapág. 154.

La Clase TextField

Un texfield es un campo de texto que puede ser insertado en un formularioy en el cuál se puede editar texto. Tiene similitud con la clase TextBox. Susdiferencias son:

Page 176: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

154 CAPÍTULO 6. JAVA 2 MICRO EDITION

Métodos Descripción

String getAltText() devuelve la cadena de texto alternativaInt getAppearanceMode() devuelve la apariencia

Image getImage() devuelve la imagenInt getLayout() devuelve el posicionado de la imagen

void setAltText(String textoalt) Establece un texto alternativovoid setImage(Image imagen) Establece una nueva imagenvoid setLayout(int layout) Establece un nuevo posicionado en pantalla

Cuadro 6.15: Métodos de la Clase ImageItem

Un texfield tiene que ser insertado en un formulario, a diferencia de untextbox puede existir por sí mismo.

TextField deriva de la clase Item, mientras que TextBox deriva directa-mente de Screen, y sus eventos se controlan a través de Commands. Poresta razón, los eventos que produce un TextField se controlan a travésdel método itemStateChanged(Item item), mientras que en un TextBoxse controlan en el método commandAction(Command c, Displayable d).

Sin embargo ambas clases (TextBox y TextField) comparten las mismasrestricciones de edición que se vieron anteriormente.

Para crear un TextField sólo hay que invocar al constructor con los si-guientes parámetros:

TextField(String etiqueta, String texto, int capacidad, int restricciones).

Otros métodos de esta clase pueden verse en la tabla 6.16 de la pág. 155

6.6. RMS (Record Management System)

El sistema de gestión de registros (Record Management System, RMS) secompone de una serie de clases e interfaces que proporcionan soporte a unsistema simple de base de datos que es usado para almacenar información.

El objetivo del RMS es almacenar datos de tal forma que estén disponiblesuna vez que el MIDlet pare su ejecución.

Page 177: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.6. RMS (RECORD MANAGEMENT SYSTEM) 155

Métodos Descripción

void delete(int desplazamiento, Borra caracteres del TextFieldint longitud)

int getCaretPosition() Devuelve la posici n del cursoren pantalla

Image getImage() devuelve la imagenint getChars(char[] datos) Copia el contenido del TextField

en datosint getConstraints() Devuelve las restricciones de entradaint getMaxSize() Devuelve el tamaño máximo

del TextField.String getString() Devuelve el contenido del TextField

void insert(char[] datos, Inserta un subrango de caracteresint des, int long, int pos) de datos en el TextFieldvoid insert(char[] datos, Inserta la cadena de caracteres datos

int pos) en una posición determinadavoid setChars(char[] datos, Reemplaza el contenido del TextField

int des, int long) por un subconjunto decaracteres de datos

void setConstraints Establece las restricciones(int restricciones) de entrada

void setInitialInputMode Establece un tipo(String caracteres) de entrada inicialint setMaxSize Establece el tamaño máximo(int capacidad) del TextField

void setString(String texto) Establece el contenido del TextFieldvoid setString(String texto) Establece el contenido del TextField

int size() Devuelve el número de caracteres

Cuadro 6.16: Métodos de la Clase TextField

Page 178: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

156 CAPÍTULO 6. JAVA 2 MICRO EDITION

La unidad básica de almacenamiento es el registro (record) que será alma-cenado en un base de datos especial, denominada almacén de registros (recordstore ).

Cuando un MIDlet usa un almacén de registros, primero debe crearlo yluego añadir los registros. Cuando un registro es añadido a un almacén deregistros, se le asigna un identificador único (id).

6.6.1. Modelo de Datos

Como ya se ha dicho, el RMS está implementado en una base de datosbasada en registros; ver fig. 6.8 de la pág. 156.

Figura 6.8: Un MIDlet y el RMS

Los MIDlets son los encargados de crear los Record Stores para poder co-municarse con ellos. Estos Record Stores quedan almacenados en el dispositivoy pueden ser accedidos por cualquier MIDlet que pertenezca a la misma suite,es decir pertenezcan al mismo grupo, como se puede ver en la fig. 6.9 de lapág 157.

Page 179: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.6. RMS (RECORD MANAGEMENT SYSTEM) 157

Figura 6.9: Acceso a Un RMS a Través 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 más registros.

2. El nombre puede tener un máximo de 32 caracteres.

3. Si una suite es borrada, todos los Record Store también 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 deuna MIDlet suite.

Entonces se puede decir que un Record Store es un almacén de registros,donde éstos registros son la unidad básica de información.

Cada uno de estos registros está formado por dos unidades:

Page 180: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

158 CAPÍTULO 6. JAVA 2 MICRO EDITION

Figura 6.10: Estructura de Un Record Store

Un número identificador de registro (Record ID) que es un valor enteroque realiza la función de clave primaria en la base de datos.

Un array de bytes destinados a almacenar la información deseada.

En la fig. 6.10 de la pág. 158 se ilustra la estructura de un Record Store.

6.6.3. Creación de un Record Store

ElAPI deMIDP incluye un paquete para el RMS , llamado javax.microedition.rms.Este paquete incluye clases e interfaces que proporcionan un marco de trabajopara los registros, los almacenes y otras características.

Básicamente se dispone de:

Capacidad para añadir y borrar registros de un almacén.

Capacidad para compartir almacenes por parte de todos los MIDlets deuna MIDlet suite.

La clase RecordStore no dispone de ningún constructor, pero posee el méto-do

estático:

static RecordStore openRecordStore(String name, Boolean createIfNeccesary).

Este método permite la apertura de un Record Store existente o bien lacreación de un almacén si el parámetro createIfNeccesary tiene el valor true.

También existen otras dos alternativas de este método:

Page 181: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.6. RMS (RECORD MANAGEMENT SYSTEM) 159

static RecordStore openRecordStore(String name, boolean createIfNeccesary,int autorización, boolean writable).

static RecordStore openRecordStore(String name, String vendorName, StringsuiteName).

El primero de ello usa los siguientes parámetros:

autorización:

• AUTHMODE_PRIVATE : Sólo permite el acceso al Record Storea la MIDlet suite que lo creó

• AUTHMODE_ANY : Permite el acceso a cualquier MIDlet del dis-positivo.

writable: Este modo especifica si el Record Store puede ser modificadopor cualquier MIDlet que pueda acceder a el.

El segundo método se utiliza para abrir un Record Store que está asociado aalgunaMIDlet suite especificada por los parámetros vendorName y suiteName.

El acceso vendrá limitado por el tipo de autorización del Record Storecuando fue creado.

Al finalizar con el uso de un determinado Record Store hay que cerrar lacomunicación con él. Para ello se utiliza el siguiente método:

public void closeRecordStore() throws RecordStoreNotFoundException, Record-StoreException.

En la tabla 6.17 de la pág. 160 se pueden apreciar los métodos que pro-porcionan operaciones con los Record Stores.

6.6.4. Manipulación de Registros

Una vez creado o abierta la comunicación con el Record Store, se puedeleer, escribir, modificar o borrar registros como se desee. Para ello, se usan losmétodos de la clase RecordStore que se ven en la tabla 6.18 de la pág.161.

Page 182: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

160 CAPÍTULO 6. JAVA 2 MICRO EDITION

Métodos DescripciónString getName() Devuelve el nombre del Record Storeint getVersion() Devuelve la versi n del Record Store

long getLastModified() Devuelve la marca temporalint getNumRecords() Devuelve el número de registros

int getSize() Devuelve el número de bytesocupado por el Record Store

int getSizeAvailable() Devuelve el tama o disponiblepara añadir registros

String[] listRecordStores() Devuelve una lista con los nombresde los Record Stores

void deleteRecordStore(String name) Elimina del dispositivo alRecord Store especificado por

el parámetro nameRecordEnumeration enumerateRecords devuelve un objeto(RecordFilter filter, RecordComparator RecordEnumerationcomparator, boolean actualizado)

void addRecordListener Añade un listener para(RecordListener listener) detectar cambios en el Record Storevoid removeRecordListener Elimina un listener(RecordListener listener)

Cuadro 6.17: Métodos Generales de la Clase RecordStore

Page 183: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.6. RMS (RECORD MANAGEMENT SYSTEM) 161

Métodos Descripción

int addRecord(byte[] datos, Añade un registroint offset, int numBytes) al Record Storevoid deleteRecord(int id) Borra el registro id del Record StoreInt getNextRecordId() Devuelve el siguiente id del registro

que se vaya a insertarbyte[] getRecord(int id) Devuelve el registro con identificador idint getRecord(int id, Devuelve el registro con identificadorbyte[] buffer,int offset) id en buffer a partir de offsetint getRecordSize(int id) Devuelve el tama o del registro idvoid setRecord(int id,byte[] Sustituye el registro iddatonuevo, int offset, con el valor de datonuevo

int tamaño)

Cuadro 6.18: Métodos Para Manejo de Registros

A continuación se mostrará un ejemplo que utiliza un Record Store dejugadores, 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;

Page 184: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

162 CAPÍTULO 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 flag) throws MIDletStateChangeExcep-tion {

}

// este método 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);

Page 185: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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();

}

Page 186: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

164 CAPÍTULO 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

Page 187: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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);

Page 188: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

166 CAPÍTULO 6. JAVA 2 MICRO EDITION

dos.flush();

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”);

Page 189: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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(){

Page 190: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

168 CAPÍTULO 6. JAVA 2 MICRO EDITION

d.setCurrent(getForm2());

}

}

En la fig. 6.11 de la pág. 168 se puede apreciar las pantallas del ejemploen 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 recorrerlos distintos registros del Record Store. El bucle es el siguiente:

for (int i=1;i<=rs.getNumRecords();i++){

longitud = rs.getRecordSize(i);

Page 191: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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 RecordEnumer-ation que facilita ésta tarea.

Utilizando esta interfaz se puede sustituir el bucle anterior por el siguientecódigo:

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 navegación por los registros usando RecordEnumer-ation es mucho más intuitiva y permite realizar acciones como mover haciadelante o hacia atrás de una manera muy sencilla.

6.6.6. Búsqueda de Registros

Para realizar una búsqueda eficiente de registros, se debe implementar lainterfaz RecordFilter, esta interfaz se encarga de devolver sólo los registros quecoincidan con el patrón de búsqueda especificado.

Para usar esta interfaz se debe implementar necesariamente el método:

public boolean matches(byte [] candidato), el cual se encarga de comparar elregistro candidato pasado como parámetro con el valor que se quiere buscar ydevolverá true en caso de que coincidan.

Page 192: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

170 CAPÍTULO 6. JAVA 2 MICRO EDITION

6.7. Comunicaciones en J2ME

A pesar de la cantidad de restricciones que soportan los dispositivos MIDy también restricciones propias del lenguaje Java, la gran ventaja que poseeeste tipo de dispositivos es la posibilidad de estar siempre “conectados”. Laposibilidad de llevar un dispositivo con poco tamaño y que permita comuni-carse en cualquier momento y lugar abre un abanico de posibilidades en eldesarrollo de aplicaciones.

Las aplicaciones MIDP para trabajar en red utilizan las clases contenidasen los paquetes javax.microedition.io y java.io de la siguiente manera:

El primer paquete contiene numerosas clases que permitirán crear ymanejar diferentes conexiones de red. Estas conexiones podrán usar di-ferentes formas de comunicación: HTTP, datagramas, sockets, etc.

El paquete java.io se encargará de proporcionar las clases necesariaspara leer y escribir en estas conexiones.

En la fig. 6.12 de la pág. 171 puede verse la jerarquía de clases que recibenel nombre de Generic Framework Conection (GFC).

En la raíz del árbol se encuentra la interfaz Connection que representa laconexión más genérica y abstracta que se puede crear. El resto de interfacesque derivan de Connection representan los distintos tipos de conexiones quese pueden crear.

6.7.1. Clases y Conexiones del Generic Connection Framework

Lo que proporciona el Generic Connection Framework es una sola claseConnector que esconde los detalles de la conexión.

Esta clase puede por sí misma crear cualquier tipo de conexión: Archivos,Http, socket,etc.

Clase Connector

Como se he dicho anteriormente, el GCF proporciona la clase Connectorque esconde los detalles de la conexión. De esta forma se pueden realizar

Page 193: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.7. COMUNICACIONES EN J2ME 171

Figura 6.12: Jerarquía de Interfaces

cualquier tipo de conexión usando sólo esta clase y sin preocuparnos de cómose implementa el protocolo requerido.

La conexión se realiza de la siguiente manera:

Connector.open(“protocolo:dirección;parámetros”);

Algunos ejemplo de invocación son:

Connector.open(“http://direccionquesea.es”);

Connector.open(“file://autoexec.bat”);

Connector.open(“socket://direccion:0000”);

La clase Connector se encarga de buscar la clase específica que implementeel protocolo requerido. Si esta clase se encuentra, el método open() devuelveun objeto que implementa la interfaz Connection.

En la tabla 6.19 de la pág. 172 se puede apreciar los métodos de la claseConnector.

Page 194: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

172 CAPÍTULO 6. JAVA 2 MICRO EDITION

Métodos Descripción

public static Connection Crea y abre una conexiónopen(String dir)

public static Connection Crea y abre unaopen(String dir,int modo) conexión con permisos

public static Connection open( Crea y abre una conexiónString dir, int mode, especificando el permisoboolean tespera) y tiempo de espera

public static DataInputStream Crea y abre una conexión deopenDataInputStream(String dir) entrada devolviendo para

ello un DataInputStreampublic static DataOutputStream Crea y abre una conexión deopenDataOutputStream(String dir) salida a través de un

DataOutputStreampublic static InputStream Crea y abre una conexión deopenInputStream(String dir) entrada usando un InputStreampublic static OutputStream Crea y abre una conexión deopenOutputStream(String dir) salida devolviendo para

ello un OutputStream

Cuadro 6.19: Métodos de la Clase Connector

Page 195: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.7. COMUNICACIONES EN J2ME 173

Los tipos de permisos se pueden ver en la tabla 6.20 de la pág 173.

Modo Descripción

READ Permiso de solo lecturaREAD_WRITE Permiso de lectura y escritura

WRITE Permiso de solo escritura

Cuadro 6.20: Tipos de Permisos

La Interfaz Connection

La interfaz Connection se encuentra en lo más alto de la jerarquía de in-terfaces del Generic Connection Framework, por lo que cualquier otra interfazderiva de ésta.

Una conexión de tipo Connection se crea después de que un objeto Con-nector invoque al método open(). Como se dijo anteriormente, esta interfazrepresenta la conexión más genérica posible por lo que define un sólo método:

public void close(), que realiza el cierre de la conexión.

Interfaz InputConnection

La interfaz InputConnection representa una conexión basada en streams deentrada. Esta interfaz sólo posee dos métodos que devuelven objetos de tipoInputStreams (ver Tabla).

En el siguiente ejemplo se ilustra cómo podría utilizarse este tipo de cone-xión:

String url = “www.midireccion.com”;

InputConnection conexión = (InputConnection)Connector.open(url);

DataInputStream dis = conexion.openDataInputStream();

Page 196: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

174 CAPÍTULO 6. JAVA 2 MICRO EDITION

Interfaz OutputConnection

La interfaz OutputConnection representa una conexión basada en streamsde salida. Esta interfaz sólo posee dos métodos que devuelven objetos de tipoOutputStreams (ver Tabla).

La conexión a través de esta interfaz se realiza de la misma forma a lainterfaz

InputConnection.

Interfaz StreamConnection

Esta interfaz representa una conexión basada en streams tanto de entradacomo de salida. No añade ningún método nuevo, si no que hereda los métodosde los interfaces que están por encima de él. Su única misión en la jerarquíadel GCF es representar un tipo de conexión cuyos datos pueden ser tratadoscomo streams de bytes y en la que es posible leer y escribir.

A continuación un ejemplo de cómo podría utilizarse esta conexión:

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 petición / respuesta. El fun-cionamiento de este protocolo es el siguiente: El cliente realiza una peticiónal servidor y espera a que éste le envíe una respuesta. Normalmente, esta co-municación es la que suele realizarse entre un navegador web (cliente) y un

Page 197: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.7. COMUNICACIONES EN J2ME 175

Establecimiento

de

conexión

Sin

ConexiónConectado

Establecimiento

de

conexión

Sin

ConexiónConectado

Figura 6.13: Estados de una Conexión HTTP

servidor web (servidor). En este caso la comunicación se realiza a través de unMIDlet(cliente) y un Servlet(servidor) que recibirá peticiones y devolverá losresultados.

Una conexión HTTP pasa por tres estados que se pueden ver en la fig.6.13de la pág 175.

Establecimiento de la Conexón

En este estado es donde se van a establecer los parámetros de la comuni-cación.

El cliente prepara la petición que va a realizar al servidor, además denegociar con él una serie de parámetros como el formato, idioma, etc.

Existen dos métodos que pueden ser invocados. En la tabla 6.21 de la pág.

Page 198: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

176 CAPÍTULO 6. JAVA 2 MICRO EDITION

176 se pueden apreciar estos métodos.

Método Descripciónpublic void setRequestMethod(String tipo) Establece el tipo de peticiónpublic void setRequestProperty(String clave Establece una propiedad de la

String valor) petición

Cuadro 6.21: Métodos en la Etapa de Establecimiento

El primer método establece el tipo de petición que se va a realizar. Estapetición puede ser de los tipos indicados en la tabla 6.22 de la pág. 6.22.

Tipo DescripciónGET Petición de información en la que

los datos se envían como parte del URLPOST Petición de información en la que

los datos se envían aparte en un streamHEAD Petición de metainformación

Cuadro 6.22: Tipos de peticiones

El segundo método permite negociar entre el cliente y el servidor detallesde la petición como, por ejemplo, idioma, formato, etc. Estos campos formanparte de la cabecera de la petición. En la tabla 6.23 de la pág. 177 se puedenver algunos de los más importantes.

Peticiones GET

A continuación se muestra un ejemplo en el que se prepara una conexiónmediante la interfaz HttpConnection usando una petición de tipo GET.

//se crea la conexión

String url = http://www.midireccion.com/local?opcion=1&us=usuario&pass=1234;

HttpConnection hc = (HttpConnection)Connector.open(url);

//se informa el tipo de conexión a realizar

Page 199: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.7. COMUNICACIONES EN J2ME 177

Campo Descripción

public void setRequestMethod Establece el tipo de petición(String tipo)User-Agent Tipo de contenido que devuelveUser-Agent el servidor

Content-Language Pais e idioma que usa el clienteContent-Length) Longitud de la petici n

Accept Formatos que acepta el clienteConnection Indica al servidor si se quiere cerrar

la conexión después de la peticiónse quiere dejar abierta

Cache-Control Sirve para controlar el almacenamientode información

Expires Tiempo m ximo para respuestadel servidor

If-Modified-Since Pregunta si el contenido solicitado se hamodificado desde una fecha dada

Cuadro 6.23: Campos de la Cabecera

Page 200: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

178 CAPÍTULO 6. JAVA 2 MICRO EDITION

hc.setRequestMethod(HttpConnection.GET);

// se establece algunos campos en la cabezera

hc.setRequestProperty(“User-Agent”,“Profile/MIDP-2.0

Configuration/CLDC-1.0”);

hc.setRequestProperty(“Content-Language”,“es-ES”);

Como puede apreciarse, la información sobre la petición va incluida en lacabecera de la dirección URL. El cuerpo de la petición lo forma la cadena:

“opcion=1&us=usuario&pass=1234”.

Esta información va detrás del símbolo “?” situado al final de la direcciónURL. Cada parámetro de la petición va separado del siguiente por el símbolo“&”.

Peticiones POST

En este tipo de conexión, el cuerpo de la petición se envía en un streamdespués de iniciar la conexión. El siguiente ejemplo muestra cómo se realiza elenvío del cuerpo de la petición:

//se crea la conexión

String url = http://www.midireccion.com;

HttpConnection hc = (HttpConnection)Connector.open(url);

// se informa el tipo de petición a realizar

hc.setRequestMethod(HttpConnection.POST);

//se establece algunos campos de la cabezera

hc.setRequestProperty(“User-Agent”,“Profile/MIDP-2.0

Configuration/CLDC-1.0”);

hc.setRequestProperty(“Content-Language”,“es-ES”);

// se envia el cuerpo de la petición

OutputStream os = hc.openOutputStream();

Page 201: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

6.7. COMUNICACIONES EN J2ME 179

os.write(opcion=1.getBytes());

os.write(&us=usuario.getBytes());

os.write(&pass=1234.getBytes());

os.flush();

Estado de la Conexión

En este estado se realiza el intercambio de información entre el cliente y elservidor. En los ejemplos anteriores se ha visto la manera de enviar la peticiónal servidor. Ahora se verá cómo se realiza la respuesta del servidor hacia elcliente.

Respuesta del Servidor

Al igual que la petición del cliente posee distintas partes, la respuesta delservidor se compone de:

Línea de estado.

Cabecera.

Cuerpo de la respuesta.

Para conocer la respuesta del servidor, la interfaz HttpConnection propor-ciona diversos métodos que permiten conocer las distintas partes de ésta.

La interfaz HttpConnection dispone de treinta y cinco códigos de estadodiferentes.

Básicamente se pueden dividir en cinco clases de la siguiente manera:

1xx: Código de información.

2xx: Código de éxito.

3xx: Código de redirección.

4xx: Código de error del cliente.

Page 202: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

180 CAPÍTULO 6. JAVA 2 MICRO EDITION

5xx: Código de error del servidor.

Por ejemplo, el código 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 código de estadoy de un mensaje de respuesta. Este mensaje es devuelto al invocar el métodogetResponseMessage().

Estado de Cierre

La conexión entra en este estado una vez que se termina la comunicaciónentre el cliente y el servidor invocando al método close().

A continuacion se verá un ejemplo donde se produce una petición medianteuna petición POST, se describirán tanto el codigo delMIDlet como del Servletque 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;

Page 203: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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...”);

Page 204: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

182 CAPÍTULO 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 conexión 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”,”ProfileMIDP-2.0 Configuration/CLDC-1.0”);

hc.setRequestProperty(”Content-Type”,”application/octect-stream”);

os = hc.openOutputStream();

os.write(”usuario=qm”.getBytes());

os.write(”&clave=hi”.getBytes());

os.flush();

// se toma la respuesta.

in = hc.openInputStream();

Page 205: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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()));

}

finally {

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 {

Page 206: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

184 CAPÍTULO 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.”);

}

}

}

Page 207: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 7

Introducción al DB2

7.1. Bases de Datos

La necesidad de mejorar la manera de acceder y manejar los datos haevolucionado con el transcurso del tiempo hasta llegar a la generación de lossistemas de administración de bases de datos relacionales (RDBMS).

En los últimos tiempos ha surgido una nueva base de datos llamada “Uni-versal”, la cuál es capaz de almacenar y hacer búsquedas no solamente dedatos alfanuméricos sino también de imágenes, audio, video y otros objetos.

Esta ventaja de las bases de datos universales abre un gran número deoportunidades que permiten mejorar tanto los servicios como las aplicaciones.

Se puede definir una Base de Datos como una serie de datos organizados yrelacionados entre sí, y un conjunto de programas que permitan a los usuariosacceder y modificar esos datos [15].

Mientras que un archivo normalmente contiene datos acerca de un tipo deentidad (ej.: personal, órdenes, clientes, ventas), una base de datos contienedatos acerca de muchos tipos de entidades e información acerca de cómo lasentidades están lógicamente relacionadas entre sí.

Las bases son cualquier conjunto de datos organizados para su almace-namiento en la memoria de un ordenador, diseñado para facilitar su manteni-miento y acceso de una manera estándar. Los datos suelen aparecer en forma

185

Page 208: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

186 CAPÍTULO 7. INTRODUCCIÓN AL DB2

de texto, números o gráficos.

Otra definición más completa de bases de datos afirma que es un “conjuntoexhaustivo, no redundante, de datos estructurados, organizados independiente-mente de su utilización y su implementación en máquina, accesibles en tiemporeal y compatibles con usuarios concurrentes con necesidad de informacióndiferente y no predecible en el tiempo, donde la información se encuentra al-macenada en una memoria auxiliar que permite el acceso directo a un conjuntode programas que manipulan esos datos” [19].

7.1.1. Objetivos de las Bases de Datos

Automatización de:

El mantenimiento.

Cualquier generación de información.

Cualquier consulta sobre dicha información.

7.1.2. Ventajas de las Bases de Datos

Algunas ventajas de las bases de datos se describen a continuación:

Ahorro de Espacio: No hacen falta archivos de papeles que pudieranocupar mucho espacio.

Velocidad: Con la utilización de las bases de datos se pueden modificar,consultar datos con una velocidad mucho mayor que realizándolo manual-mente.

Ahorro de trabajo: ya que las máquinas son encargadas de manejar estasbases y no se necesitan manejar archivos a mano, existe un ahorro de trabajohumano.

Actualización: Se dispone en cualquier momento de información precisay al día.

Comodidad: Al tener la información en un mismo sitio, se ahorrará tiem-po y trabajo.

Page 209: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

7.2. SISTEMA DE ADMINISTRACIÓN DE BASES DE DATOS 187

Disminución de la Redundancia: La duplicación de los datos implicamayor trabajo en el mantenimiento. Gracias a que las bases de datos dismi-nuyen la redundancia también se disminuye el trabajo.

Compartición de Datos: Se trata de datos actuales, ya que al estarcentralizados, se puede tener acceso a los datos actualizados en prácticamentetiempo real.

Restricciones de Seguridad: Para mantener la seguridad acerca delmantenimiento de los datos, los administradores de la Base de Datos, creanun nivel de acceso, que permitirá o prohibirá a los usuarios hacer una u otraacción sobre dicha base de datos.

Posibilidad de Mantener la Integridad: En una base de datos se debemantener una coherencia.

Esto se controlará mediante:

Máscaras.

Reglas de validación.

7.2. Sistema de Administración de Bases de Datos

Una base de datos es una colección de tablas y objetos relacionados entre síy organizados como un grupo. La estructura de una base de datos se muestraen la figura 7.1 de la página 188.

Un DBMS es un conjunto de programas que maneja todos los accesos alas bases de datos; ver figura 7.2 de la página 188.

Funciones de un DBMS:

• Definición de datos.

• Manipulación de datos.

• Seguridad e integridad de los datos.

• Recuperación y concurrencia de los datos.

• Diccionario de datos.

• Desempeño.

Page 210: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

188 CAPÍTULO 7. INTRODUCCIÓN AL DB2

Figura 7.1: Estructura de Una Base de Datos

Figura 7.2: Sistema de Administración de Bases de Datos

Page 211: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

7.3. ORGANIZACIÓN DE BASES DE DATOS 189

7.3. Organización de Bases de Datos

Los modelos más comunes de organización de Bases de Datos son:

Jerárquico.

En Red.

Relacional.

Orientado a Objetos.

7.3.1. Bases de Datos Jerárquicas

Estructura los campos en nodos en una estructura jerárquica. Los nodosson puntos conectados entre sí formando una especie de árbol invertido. Cadaentrada tiene un nodo padre, que puede tener varios nodos hijos; esto sueledenominarse relación uno a muchos. Los nodos inferiores se subordinan a losque se hallan a su nivel inmediato superior.

Un nodo que no tiene padre es llamado raíz, en tanto que los que notienen hijos son conocidos como hojas. Cuando se desea hallar un campo enparticular, se empieza por el tope, con un nodo padre, descendiendo por elárbol en dirección a un nodo hijo.

Por Ejemplo: Un Sistema de Reservaciones de una Línea Aérea (ver figura7.3 de la página 190).

El Nodo Padre es la Ciudad de Salida en este caso es (Caracas), NodosHijos representando las Ciudades Destino que tiene a su vez Nodos Hijos,que son el Número de Vuelo. El Número de Vuelo tendrá también NodosHijos, que son los Pasajeros.

Limitaciones de las Base de Datos Jerárquicas

Al borrar un nodo padre, desaparecen también sus nodos subordinados.

Sólo podrá añadirse un nodo hijo, si existe el nodo padre.

Pero lo más significativo es la rigidez de su estructura: sólo un padre porhijo y ausencia de relaciones entre los nodos hijos.

Page 212: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

190 CAPÍTULO 7. INTRODUCCIÓN AL DB2

Figura 7.3: Modelo de Bases de Datos Jerárquica.

7.3.2. Bases de Datos en Red

Se trata también de una organización jerárquica de nodos, pero un nodohijo puede tener más de un solo nodo padre (relación muchos a muchos).Existen los punteros, que son conexiones adicionales entre nodos padres ynodos hijos, que permiten acceder a un nodo por vías distintas accediendo almismo en dirección descendente por las diversas ramas.

Representa una mejora al modelo jerárquico.

Por ejemplo:Los vendedores destacados para distribuir determinados pro-ductos en algunas ciudades pueden ilustrar este modelo (ver figura 7.4 de lapágina 191).

Cada Producto puede ser distribuido por más de un Vendedor, así mismocada Vendedor puede encargarse de diferentes Ciudades.

7.3.3. Bases de Datos Relacional

Esta organización ofrece la mayor flexibilidad ya que los datos se almacenanen Tablas diferentes, conformadas así mismo por Filas y Columnas. Una tablase denomina relación. En una Tabla las Filas contienen los Registros. Las

Page 213: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

7.3. ORGANIZACIÓN DE BASES DE DATOS 191

Figura 7.4: Modelo de Bases de Datos en Red.

Columnas representan los Campos. Las Tablas relacionadas poseen un campocomún, el Campo Clave, mediante el cual la información almacenada en unatabla puede enlazarse con la información almacenada en otra.

El acceso a los datos se realiza mediante consultas escritas en SQL (Struc-tured Query Language). La Organización de Bases de Datos Relacional es lamás difundida en la actualidad debido a su sencillez para realizar operacionesde adición, eliminación y modificación en contraste con la mayor rigidez de lasOrganizaciones Jerárquicas y de Red.

Por ejemplo: En un pequeño negocio, se puede contar con una Tabla deClientes y Tabla de Pedidos (ver figura 7.5 de la página 192).

Las órdenes que pertenecen a un determinado cliente son identificadascolocando el campo de identificación del cliente en la orden (campo clave dela tabla de clientes), lo cual permite enlazar las dos tablas.

Limitaciones de las Bases de Datos Relacionales

Estructuras muy simples.

Poca riqueza semántica.

No soporta tipos definidos por el ususarios (sólo Dominios).

Page 214: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

192 CAPÍTULO 7. INTRODUCCIÓN AL DB2

Figura 7.5: Modelo de Bases de Datos Relacional.

No soporta Recursividad.

Falta de Procesamiento/Disparadores.

No admite Herencia.

7.4. Introducción a DB2 UDB

DB2 UDB Universal Database es una Base de Datos Universal. Es com-pletamente escalable, veloz y confiable.

Corre en modo nativo en casi todas las plataformas como ser: WindowsVista, NT, Sun Solaris, HP-UX, AIX U, OS/2 entre otros.

DB2 es un software de base de datos relacional. Es completamente mul-timedia, disponible para su uso en la Web, muy bueno para satisfacer lasdemandas de las grandes corporaciones y bastante flexible para servir a losmedianos y pequeños negocios.

DB2 UDB es un sistema manejador de base de datos relacional fuertemente

Page 215: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

7.4. INTRODUCCIÓN A DB2 UDB 193

escalable. Es suficientemente flexible para atender estructuras e inestructurasmanejadoras de datos necesarias para usuarios simples de grandes empresas.Es conveniente para una gama amplia de aplicaciones de los clientes, quienespueden desplegar una variedad de plataformas de hardware y software desdedispositivos manuales a los sistemas multiprocesador paralelos masivos.

7.4.1. Características Generales del DB2 UDB

DB2 UDB es el producto principal de la estrategia de Data Managementde IBM.

DB2 UDB es un sistema para administración de Bases de Datos Rela-cionales (RDBMS). Es multiplataforma, especialmente diseñada para ambi-entes distribuidos, permitiendo que los usuarios locales compartan informacióncon los recursos centrales. Es el sistema de gestión de datos que entrega unaplataforma de base de datos flexible y rentable para construir un sistema ro-busto para aplicaciones de gestión.

DB2 UDB libera los recursos con amplio apoyo al open source (fuenteabierta) y plataformas de desarrollo populares como J2EE y Microsoft .NET.

Integridad

El DB2 UDB incluye características de Integridad, asegurando la protec-ción de los datos aún en caso de que los sistemas sufran un colapso, y deSeguridad permitiendo realizar respaldos en línea con distintos grados de gran-ularidad, sin que esto afecte la disponibilidad de acceso a los datos por partede los usuarios.

Múltiples Usos

Provee la capacidad de hacer frente a múltiples necesidades, desde Proce-samiento Transaccional de Misión Crítica (OLTP), hasta análisis exhaustivode los datos para el soporte a la toma de decisiones (OLAP).

Page 216: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

194 CAPÍTULO 7. INTRODUCCIÓN AL DB2

Escalabilidad

Sus características distintivas de Escalabilidad le permiten almacenar in-formación en un amplio rango de equipos, desde un PC portátil hasta uncomplejo ambiente de mainframes procesando en paralelo.

Web Enabled Para e-Business

Incluye tecnología basada en Web que permite generar aplicaciones en lasIntranets y responder a las oportunidades de negocios disponibles en Internet.

Facilidad de Instalación y Uso

La primera versión de DB2 para NT fue reconocida en el mercado comouna base de datos muy poderosa, pero difícil de instalar y usar.

Universalidad

DB2 UDB es, además, la única base de datos realmente universal; es mul-tiplataforma (16 plataformas - de las cuales 10 no son de IBM), brinda soportea un amplio rango de clientes, soporta el acceso de los datos desde Internet ypermite almacenar todo tipo de datos:

Texto, Audio, Imágenes y Video (AIV Extender) (ver figura 7.6 de lapágina 195) .

Documentos XML ( XML Extender) (ver figura 7.7 de la página 195).

Funciones Complementarias del DB2 UDB

Conectividad

Las herramientas de conectividad permiten acceder a los datos más alláde donde ellos se encuentren. El slogan cualquier cliente, a cualquier servidor,

Page 217: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

7.4. INTRODUCCIÓN A DB2 UDB 195

Figura 7.6: AIV Extender.

Figura 7.7: XML Extender.

Page 218: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

196 CAPÍTULO 7. INTRODUCCIÓN AL DB2

en cualquier red está completamente sustentado por la funcionalidad que susherramientas ofrecen.

DB2 permite acceder a los datos de DB2 en mainframe o AS/400, des-de Windows Vista, NT, Windows 95/98, OS/2 o cualquiera de los Unix so-portados. Además, el producto Datajoiner posibilita acceder de forma únicay transparente a los datos residentes en Oracle, Sybase, Informix, MicrosoftSQL Server, IMS, VSAM y otros.

7.5. DB2 Express-C

Es una edición de la comunidad sin costo del servidor de datos DB2. Esideal para las pequeñas empresas y empresas con múltiples sucursales, así co-mo los desarrolladores y socios de negocios que sirven a estos clientes. DB2Express-C se puede configurar rápidamente, es fácil de usar, e incluye ca-pacidades de auto-gestión. También incorpora la totalidad de las principalescaracterísticas de las ediciones de DB2 más escalable, incluyendo la revolu-cionaria tecnología pureXML para la alimentación de una nueva generaciónde la Web 2.0 y las soluciones basadas en SOA.

DB2 Express-C está disponible para su descarga e instalación sin cargo.Está disponible para los usuarios que requieren apoyo técnico o funcionalidadesadicionales, tales como clustering de alta disponibilidad y replicación de datos.La suscripción anual para DB2 Express (Licencia de Plazo Fijo) está disponiblecon un precio por servidor métricas. [13]

7.5.1. Información Técnica

Recursos:

Se limite la utilización de recursos totales de la siguiente manera:

• Procesador: 2 núcleos.

• Memoria: 2 GB.

Sistemas operativos:

• Linux (32 bits, 64 bits, POWER).

Page 219: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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 Características yBeneficios

Autónomas

El costo de administración de base de datos puede ser de gran supere elcoste de la base de datos de software y hardware por lo que es fundamentalque el tiempo que el administrador de base de datos se utilizan con eficaciay eficiencia. DB2 incluye numerosas características autónomas, como el Ad-ministrador de memoria de ajuste automático, sin que los administradores debases de datos de muchas tareas comunes de administración. Como resultado,los administradores de base de datos pueden dedicar menos tiempo a la gestióndel sistema y más tiempo a centrarse en otras actividades que beneficien a laempresa.

Compresión de Datos

Las empresas con grandes volúmenes de datos sabe lo caro de almace-namiento puede ser. DB2 puede reducir ese costo con la industria líder entecnologías de compresión de datos que comprimen filas, índices, tablas tem-porales, LDN, XML, y los datos de back-up con tasas de compresión quepuede alcanzar más del 80%. Por otra parte, debido a la compresión permitea DB2 para mantener más y datos en la memoria, evitando así el rendimien-to robando / S de disco, el rendimiento de base de datos puede aumentarconsiderablemente.

Rendimiento

DB2 ha dominado los puntos de referencia clave de rendimiento en muchasocasiones en los últimos años, tanto en línea de procesamiento de transacciones(OLTP) y On-Line Analytical Processing (OLAP) puntos de referencia. Lo queesto significa que el rendimiento de clase mundial para empresas con base dedatos es que pueden hacer más trabajo con su hardware existente, a fin deevitar o retrasar las costosas actualizaciones del servidor.

Page 220: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

198 CAPÍTULO 7. INTRODUCCIÓN AL DB2

Escalabilidad

DB2 pureScale utiliza un cluster basado en la arquitectura de disco compar-tido para ofrecer una fácil escalabilidad y alta disponibilidad. DB2 pureScaleevita muchos de los inconvenientes de las soluciones de disco compartido basa-do en clusters de otros proveedores. Otras soluciones de incurrir en una çabezade racimo", que limita su capacidad de escalar más allá de unos pocos nodos,mientras que DB2 pureScale crece con una eficiencia casi lineal. Otras solu-ciones tardar minutos en reanudar el proceso después de un fallo del nodo,mientras que DB2 pureScale sigue funcionando sin degradación del rendimien-to. Adición de servidores a otras soluciones de sintonización complejo y re-quiere cambios a código de la aplicación, mientras que DB2 pureScale permiteampliar la base de datos sin ajuste del sistema y requiere cambios mínimos enel código de aplicación.

Seguridad

Acceso no autorizado de datos es una amenaza siempre presente de quepuede terminar costando sumas considerables de dinero de negocios, su rep-utación, o ambos. DB2 ofrece un conjunto completo de funciones de seguridadque con eficacia y decisión minimizar esta amenaza. DB2 proporciona mayortranquilidad con el mecanismo ligero de auditoría de seguridad que se puedenutilizar para comprobar que no ha habido acceso a datos no autorizados.

Fiabilidad

Para muchas empresas, el tiempo de inactividad de base de datos es iguala dinero y la oportunidad perdida. DB2 puede reducir al mínimo el tiempo deinactividad asociado con muchas actividades previstas - como la modificaciónde una tabla - y muchos eventos no planificados - por ejemplo un corte deenergía - ya sea eliminando el tiempo de inactividad total o reducir su duracióna unos pocos segundos.

XML Puro

XML puede reducir significativamente el coste de desarrollo y manteni-miento de aplicaciones en continua evolución con las capacidades de entrada o

Page 221: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

7.5. DB2 EXPRESS-C 199

de información - tales como formularios en línea impuesto sobre la renta. Conel avance de XML nativo único apoyo proporcionado por DB2, las ventajasde XML se extiende a la base de datos e incluyen la capacidad de evolucionarfácilmente un esquema XML en cuestión de minutos para que coincida conla aplicación cambia sin actualizar el esquema de tabla existente o los datosXML 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 desarrollode aplicaciones luchando con desconocidos sintaxis SQL y las API de basede datos de extranjeros. Con DB2, desarrolladores de aplicaciones no DB2puede realmente comenzar a ejecutar gracias al apoyo entre proveedores demuchas 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 administración de DB2 es el Centro deControl, ilustrado en la figura 7.8 de la página 200.

El Centro de Control es una herramienta de administración centralizadaque te permite:

Ver el sistema, instancias, bases de datos y objetos de la base de datos;

Crear, modificar y manejar objetos de las bases de datos;

Lanzar otras herramientas gráficas de DB2.

Hay varias formas de lanzar el Centro de Control :

Navegando a través del menú de inicio de Windows.

Ejecutando db2cc en la línea de comandos.

Dando clic en el icono de el Centro de Control en la barra de herramientasde cualquier otra herramienta gráfica de DB2.

Page 222: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

200 CAPÍTULO 7. INTRODUCCIÓN AL DB2

Figura 7.8: Centro de Control.

Page 223: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

7.5. DB2 EXPRESS-C 201

Desde el icono DB2 en Windows como se muestra en la figura 7.9 dela página 201 (Da clic sobre el icono verde DB2 y selecciona la opciónCentral 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 eje-cutar comandos DB2, sentencias SQL y XQuery, analizar el plan de ejecuciónde una sentencia, y ver o actualizar resultados de consultas.

En la figura 7.10 de la página 202 se muestra el editor de comandos DB2.

En el área de entrada, puedes ingresar varias sentencias, tan largas hastaque se presente el caracter de finalización. Si se presiona el botón ejecutar,las sentencias serán ejecutadas una después de otra. Si tú seleccionas explíci-tamente una sentencia, sólo esa sentencia será ejecutada. Debe existir unaconexión a la base de datos para devolver sentencias SQL, sin embargo, unade esas sentencias puede ser una sentencia de conexión.

Lanzando el Editor de Comandos Se podrá lanzar el Editor de Coman-dos de varias formas:

Desde el menú de inicio de Windows:

Page 224: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

202 CAPÍTULO 7. INTRODUCCIÓN AL DB2

Figura 7.10: El Editor de Comandos DB2.

Page 225: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

7.5. DB2 EXPRESS-C 203

Start -> Programs -> IBM DB2 -> DB2COPY1 (Default) -> CommandLine Tools -> Editor

de Comandos.

Desde la línea 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 elelemento del menu Query.

• Siempre que un objeto consultable esté seleccionado (base de datos,tabla, etc.), se puede lanzar el Editor de Comandos dando clic enla liga de Query que está en el panel de detalle de objetos de elCentro de Control.

Desde el Centro de Control , dar clic en el icono de Editor de Comandosen la barra de herramientas como muestra la figura 7.11 de la página203.

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

SQL Assist Wizard La figura 7.12 de lq página 204 muestra el SQL AssistWizard. Es bastante claro su uso. Primero indica el tipo de sentencia SQLpara la cual necesitas asistencia (SELECT, INSERT, UPDATE, DELETE).

Page 226: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Dependiendo de que sentencia se haya elegido, diferentes opciones aparecerán.En la parte baja de la ventana verás cómo la sentencia SQL es construida apartir de diferentes elecciones en el asistente.

Figura 7.12: El SQL Assist.

Page 227: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 8

RAD for WebSphere

8.1. ¿Qué es RAD 6.0?

Rational Application Developer es el cambio de marca de WebSphere Stu-dio Application Developer. IBM construyó WebSphere Studio Application De-veloper en la parte superior de Eclipse - un proyecto de código abierto paradesarrollar un entorno abierto, extensible, de desarrollo integrado (IDE) y per-sonalizado que para el desarrollo J2EE específicamente para WebSphere. Conla adquisición de la familia de productos de Rational de IBM ha ampliadoWebSphere Studio Application Developer y la cartera de Rational para incluiruna familia totalmente integrada de productos.

IBM Rational Software Development Platform, que permitirá a los desa-rrolladores y equipos de proyecto para colaborar en la proyecto completo ciclode vida.

Acelera el desarrollo de J2EE y Portal y mejora la calidad del código. IBMR© Rational Application Developer Eclipse se extiende con un rápido desa-rrollo. Ayuda a los desarrolladores de Java a diseñar, desarrollar, ensamblar,probar y desplegar el perfil Java/J2EE de alta calidad, Portal Web, serviciosWeb y aplicaciones SOA. IBM Rational Application Developer es integrada yoptimizada para IBMWebSphere Application Server e IBMWebSphere PortalServer. Además incluye entornos de prueba para estos productos. Utiliza sóli-das capacidades para crear aplicaciones SOA, incluyendo la capacidad de crearautomáticamente SOA, componentes necesarios tales como WSIL y archivos

205

Page 228: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

206 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER

WSDL.

Rational Application Developer incluye herramientas para mejorar la ca-lidad del código:

Una herramienta de perfiles de Java ayuda a analizar el rendimiento deuna aplicación, uso de memoria y problemas de los subprocesos.

Una herramienta de análisis de software identifica patrones y antipa-trones en el código de la aplicación, y compara el código de normas decodificación.

Para administrar el código fuente, se configurar Rational Application De-veloper para trabajar con un sistema de repositorio.

El producto se entrega con conectores para:

IBM Rational ClearCase, para el control de código fuente.

IBM Rational ClearQuest para la gestión de defectos.

IBM Rational Team Concert cliente que puede ser utilizado para controlde código fuente y de gestión de defectos.

El banco de trabajo incluye herramientas para la implementación de unaaplicación a un servidor local o remoto.

Contiene los entornos de prueba para IBM WebSphere Application Servere IBM WebSphere Portal . También es compatible con Apache Tomcat . Eluso de estas herramientas utilizando el entorno de desarrollador de softwarepermite probar la aplicación a nivel local antes de publicarlo en un servidorde producción.

Debido a que Rational Application Developer está basado en Eclipse, puedesoportar los plug-ins para Eclipse, así como plug-ins específicamente para lasherramientas de Rational.

8.1.1. Rational Software Development Platform

IBM Rational Software Development Platform es un entorno común dedesarrollo basado en Eclipse que es compartida por los siguientes productos:

Page 229: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

8.1. ¿QUÉ ES RAD 6.0? 207

IBM R© Rational R© Web Developer

IBM R© Rational R© Application Developer

IBM R© Rational R© Software Modeler

IBM R© Rational R© Software Architect

IBM R© Rational Tester R© funcional

IBM R© Rational R© Performance Tester

Con la instalación de Rational Software Architect, se tiene una versióncompleta de Rational Application Developer.

En la figura 8.1 de la página 207 se puede obrservar el entorno de trabajodel Rational Software Development Platform.

Figura 8.1: RAD. Entorno de Trabajo.

Page 230: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

208 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER

8.1.2. Rational Application Developer for WebSphere Soft-ware se extiende de Eclipse

Ayuda a los desarrolladores de Java a diseñar rápidamente, desarrollar,ensamblar, probar y desplegar el perfil 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.

Características de un proceso de instalación flexibles diseñados para pro-porcionar a los desarrolladores con sólo las funciones que necesitan.

Está integrada y optimizada para IBM WebSphere Application Servere IBM WebSphere Portal Server y incluye productos para entornos deprueba.

Acelera J2EE, portales, servicios web y desarrollo de aplicaciones SOA.

Acorta la curva de aprendizaje de Java a través del diseño visual, conauto-sincronizado modelo de código.

Utiliza las capacidades robustas para crear aplicaciones SOA, incluyendola capacidad de crear automáticamente los componentes necesarios SOA,como los archivos WSDL y WSIL.

Aplica técnicas visuales de desarrollo de portales para acelerar el desa-rrollo.

Le permite colaborar y compartir recursos de todo el equipo utilizandouna función de control de versiones de Rational ClearCase LT, la inte-gración con otras facetas del ciclo de vida-incluidos los requisitos, gestióndel cambio y la orientación del proceso.

Simplifica el desarrollo de páginas Web y la gestión.

Sistemas operativos soportados: Linux, Windows.

Eclipse 3.2 Integración

Eclipse 3.2 es un entorno abierto que trae la integración y extensibilidadpara el entorno de desarrollo.

Page 231: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

8.1. ¿QUÉ ES RAD 6.0? 209

Extiende Eclipse 3.2 con herramientas de desarrollo visual, JSF, y so-porte de IBM WebSphere.

Interfaz de usuario común.

Gestión de proyectos.

Vistas disponibles: lista de tareas, Navigator, Contorno, enlaces, etc.

Perspectivas Personalizable.

Ayuda de escritorio y los marcos.

Código de Ayuda.

Servicios de depuración.

Productividad

Instalación flexible: permite el acceso sólo a las características que ustednecesita.

Hojas de trucos para los patrones de desarrollo común.

Las plantillas de aplicación y la biblioteca de plantillas.

Procedimientos y tutoriales basados en escenarios .

Introducción y guía de instalación .

8.1.3. Desarrollo Web

Las herramientas RAD y asistentes llevan a todos los aspectos del desarro-llo Web en una interfaz común y permiten a los desarrolladores con diversosantecedentes técnicos, e incluso aquellos no familiarizados con Java, para con-struir rápidamente las aplicaciones.

JavaServer Faces support: aplicación JSF de referencia, componentesJSF y herramientas visuales.

JSF informe basado en la visualización de componentes para incrustarinformes en las aplicaciones Web.

Page 232: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

210 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER

Diseño Web del sitio para administrar y analizar visualmente los sitiosWeb.

JSP y servlets asistentes

Struts support.

Plantillas y muestras.

Soporte para HTML, DHTML, XHTML, CHTML, WML, Struts y eti-quetas visuales personalizadas.

Diseñador de páginas con round-trip para editar capacidad de diseñoWYSIWYG de páginas JSP.

Activa la depuración de scripts de JavaScript y Visual Basic R© Script.

Crystal Report: para la elaboración de informes de datos visuales.

Prueba y licencia de desarrollo de Crystal Enterprise Server para la pre-sentación de informes en toda la empresa.

8.1.4. Desarrollo de Java

Crear aplicaciones ricas utilizando una variedad de editores visuales, losasistentes y la generación de código, la fusión y herramientas de re-factoring.

Entorno de desarrollo integrado.

Java Runtime Environment configurable (JRE).

Java Development Kit (JDK), la versión 5 de apoyo.

Bloc de notas para probar fragmentos de código.

Re-factoring.

Modelado visual de código con sincronización automática de código ymodelos.

Page 233: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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 inter-faces gráficas de aplicaciones de usuarios con tecnolgía AWT, Swing, y loscomponentes SWT, incluye Javadoc

Diseño de componentes JSF.

Construcción de GUI Swing.

SWT GUI construcción.

8.1.6. Servicios de Desarrollo Web

Servicios integrales de Internet y herramientas de desarrollo SOA parasimplificar y automatizar el proceso de construcción de WS-I, además serviciosWeb 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, yAXIS.

Crear, validar y detectar servicios web compatibles con WS-I.

Servicios Web de localización basados en WSIL.

Descubrir y publicar servicios para el Registro de empresas UDDI.

Crear o transformar los servicios Web a los artefactos existentes, talescomo 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 mues-tras.

Implementación y prueba de servicios Web en WebSphere ApplicationServer o entornos de prueba Tomcat.

Page 234: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

212 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER

Generar z-series nativos y los servicios Web COBOL.

Web services Explorer.

Proceso de orientación para el desarrollo de aplicaciones SOA.

8.1.7. XML para el Desarrollo

Herramientas completa para crear, editar y transformar documentos XMLy la integración de datos relacionales y XML.

Esquemas y herramientas XML.

XML herramientas de autor - editor de XML, DTD editor, editor deesquemas XML.

Herramientas de transformación XML: editor de mapas XML a XML,generador XSLT.

Base de datos de herramientas de mapeo XML: constructor visual deDAD para la asignación 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 fácil de desarrollar y probar los ele-mentos de las aplicaciones

Base de datos Wizards para simplificar la creación de bases de datos.

Soporte para IBM DB2, Informix, Nubes IBM, Microsoft R© SQL ServerOracle 9i, y Sybase.

DB Explorer para navegar o importar esquemas de bases de datos.

Vista de datos para crear y trabajar con esquemas de base de datos.

Page 235: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

8.1. ¿QUÉ ES RAD 6.0? 213

Generador de consultas SQL y asistente para crear de forma visual yejecutar sentencias SQL.

Relational Schema Center: tablas de mapa para base de datos relacionala XML.

Mapeo de obletos a relacional (top-down, meet-in-the-middle and bottom-up).

Asignación de wizard.

Generar y poner a prueba de Acceso a Documentos Definición (DAD).

Generador de procedimiento almacenado.

SQLJ support.

8.1.9. Desarrollo de Portales

Herramientas viuales para el desarrollo de portales y WebSphere Portalque es el entorno de prueba para apoyar el desarrollo y testeo de portalesindividuales y aplicaciones completas.

Visual desarrollo de portlets y WebSphere Portal ambiente de la unidadde prueba.

Desarrollo visual de aplicaciones de portal y la edición de los temas yskins que controlan su apariencia.

Soporte integrado para JSF y el framework Struts.

Desarrollo de negocios portlet utilizando IBM WebSphere Portal Appli-cation Integration (SAP, Seibel).

Plantillas de portlet .

Soporte para IBM Portlet API y el JSR 168 Portlet API estándar.

Page 236: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

214 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER

8.1.10. Desarrollo J2EE

Soporte Integral para el modelo de programación J2EE acelerando el de-sarrollo de componentes EJB y pruebas.

Concurrente para J2EE 1.2, 1.3, 1.4 especificaciones.

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 deEJB.

Apoyo a JAR, EAR, WAR.

Asistentes para la creación de beans de sesión y beans de entidad.

Apoyo a la persistencia administrada por beans (BMP) y la persistenciagestionada por contenedor (CMP).

Soporte para el desarrollo de EJB utilizando anotaciones Java (etiquetasXdoclet foro).

O / R Mapping (de arriba hacia abajo y de abajo arriba).

Generated EJB Test Client EJB.

Apoyo a la creación de aplicaciones J2EE con JDK 5, dirigido a Web-Sphere Application Server v5.1, v6.0, v6.1.

EJB cliente JAR apoyo para automatizar la creación de clientes EJB.

EJB fragmento para simplificar la generación de código EJB de accesoalcliente.

8.1.11. Equipo de Desarrollo

Integración con IBM Rational ClearCase y Rational ClearQuest permiteuna amplia gama de operaciones de gestión de cambio que se realiza directa-mente desde el entorno de desarrollo, proporciona una visión integrada de losproyectos y aumenta tanto la productividad del equipo y la colaboración.

Page 237: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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 integración con Rational ClearCaseLT.

RUP Developer Configuration.

8.1.12. Especificación de Arquitectura. UML

UML Editor Visual para Java y EJB para visualizar y editar los compo-nentes 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 revisión de código (análisis estático): Proporciona sugerencias ’QuickFix’ y permite la personalización de las normas, a través de reglas deplantillas.

8.1.13. Pruebas e Implementación

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 unnavegador y un servidor de aplicaciones.

Las herramientas automatizadas para administrar instancias del servidory las configuraciones de servidor, incluyendo la creación automática y lapresentación de secuencias de comandos wsadmin.

Page 238: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

216 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER

Prueba de diferentes entornos en tiempo de ejecución local o remota.

TPTP perfiles de rendimiento y la explotación.

Herramientas mejoradas de análisis de tiempo de ejecución: la detecciónde pérdida de memoria, detección de bloqueo de rosca, puntas de pruebadefinidos por el usuario, la cobertura de código .

8.1.14. Asistencia Técnica de Servidor

Unidad Integrada entorno de prueba es compatible con las pruebas localesy remotas para agilizar las pruebas de aplicaciones y aumentar la calidad delcódigo.

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 (Web-Sphere Portal Server v. 6.0 para la prueba).

8.2. WebSphere Application Server

8.2.1. ¿Qué es WebSphere?

IBM WebSphere es una plataforma de IBM para desarrollo y gestión desitios web y aplicaciones destinadas al comercio electrónico.

WebSphere es una plataforma de Software para e-business.

WebSphere posee una amplia gama de servidores y aplicaciones parabrindar cualquier tipo de capacidades de negocio y ayuda al desarrollode las aplicaciones.

La Plataforma de Software WebSphere está compuesta por un conjuntode herramientas de e-business integradas y basadas en estándares abier-tos de mercado.

Page 239: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

8.2. WEBSPHERE APPLICATION SERVER 217

WebSphere es ideal para todas las fases de un e-business, comenzandodesde pequeños sitios Web a mega sitios.

La plataforma de software WebSphere proporciona una completa gama dehabilidades que permiten a los clientes la entrega de altos niveles de servicioa todos los visitantes del sitio en la web. Administra cargas pico en los servi-dores web, mantiene la disponibilidad del sitio en la web, y reconoce contenidode solicitudes de la web para calidad-de-servicio mejor. También permite ladiferenciación de niveles de servicio con base en el tipo de cliente.

La creciente complejidad de los aplicativos de e-business crea muchos de-safíos.

Los aplicativos deben ser escalables, fiables y se deben integrar completa-mente con los sistemas back-end para proteger las inversiones existentes. Elequipo de desarrollo debe poseer las más actualizadas habilidades de progra-mación para acompañar el ciclo de vida del e-business.

Se necesita una plataforma completa, escalable y flexible que proporcionesoporte a la construcción y diseminación de aplicativos de e-business. Lassoluciones de software WebSphere ofrecen las herramientas necesarias paraalcanzar los objetivos de e-business.

8.2.2. ¿Que es WebSphere Application Server?

El WebSphere Application Server representa una familia de software paraservidores de aplicaciones. Permite a las empresas responder a los mercadoscambiantes sin migrar a tecnologías diferentes preservando las inversiones he-chas en tecnología previamente disponible en la organización, soporta normasabiertas vigentes en las organizaciones, proporciona soporte pleno a la platafor-ma abierta Java 2 y Java 2 Enterprise Edition (J2EE) y también provee soportepara servicios bajo normas abiertas en la Web [4].

WebSphere Application Server, es una plataforma de alto desempeño y ex-trema escalabilidad para diseminar aplicativos dinámicos de e-business, pro-porciona las funciones esenciales de e-business de manipulación de transac-ciones y ampliación de datos back-end del negocio y aplicativos para la Web.

La plataforma ayuda a construir aplicativos que ejecutan esas funcionescon seguridad sólida, fiabilidad y escalabilidad.

Page 240: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

218 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER

Figura 8.2: WebSphere para e-bussines.

WebSphere Application Server Como Plataforma Para el ComercioElectrónico

Brinda un soporte amplio para aplicaciones de comercio electrónico. Secaracteriza por su flexibilidad para adaptarse a cambios en los mercados y enlos objetivos comerciales.

Construyendo aplicaciones en esta robusta plataforma, se pueden integrardiversos ambientes de las IT (Tecnología de Información), para aprovechar almáximo las inversiones existentes.

Se pueden instalar aplicaciones comerciales existentes para su acceso desdela Web y escalar estas aplicaciones para adecuarlas a las necesidades de loscambios y de la demanda.

En la fig. 8.2 de la pág. 218 se puede observar la plataforma del Softwarede WebSphere para e-bussines.

Application Server - Advanced Edition

La Edición Avanzada es la oferta del principal servidor de aplicativo di-rigido a desarrolladores profesionales de tecnología Java que necesitan funcio-nalidad de servicios J2EE y Web para aplicativos dinámicos de e-business.

Page 241: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

8.2. WEBSPHERE APPLICATION SERVER 219

Esta Edición del WebSphere Application Server, está disponible en tresconfiguraciones:

Edición Avanzada:

• Proporciona integración sólida a las bases de datos, middleware ori-entado a mensajes, y sistemas preexistentes y aplicativos, en con-junto con soporte de agrupación. Esta configuración se ajusta a lamayoría de los escenarios de la empresa e interesa a los negocios quenecesitan construir aplicativos altamente transaccionales, adminis-trables, disponibles y escalables que ofrecen seguridad distribuiday administración remota.

Edición Avanzada del Single Server :

• Proporciona el mismo modelo de programación esencial J2EE yWeb Services con administración simplificada. Esta configuracióninteresa a departamentos, negocios de tamaño mediano y aplica-tivos piloto que necesitan un coste bajo, opción de ejecución rápida,distribución de carga de trabajo o administración remota asociadosa administración de multi-servidor.

Edición Avanzada del IBM WebSphere Application Server, para Linuxen zSeries:

• La Edición Avanzada del WebSphere Application Server, para Lin-ux en zSeries continúa cumpliendo el compromiso de IBM en cuantoa mantener cobertura amplia para plataformas para el WebSphereApplication Server.

• Este producto WebSphere tiene la combinación potente de un con-junto de dispositivos rico y soporte a estándares abiertos del Web-Sphere Application Server y el ambiente operacional familiar delsistema operativo Linux.

• También contiene los recursos de administración, alta fiabilidad, yla intensa velocidad de comunicación de datos internos del hardwarede la plataforma zSeries.

Page 242: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

220 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER

Application Server - Enterprise Edition

La Edición empresarial del IBM WebSphere Application Server, en juntocon IBM WebSphere Studio Application Developer Integration Edition, ofreceuna combinación potente de tiempo de ejecución y herramienta que permiteintegrar activos IT existentes, mejorar la productividad del desarrollador ycrear y mantener aplicativos de e-business flexibles.

Juntos, el IBM’s WebSphere Application Server Enterprise Edition y elWebSphere Studio Application Developer Integration Edition permiten a losdesarrolladores la capacidad de:

Coreografiar visualmente y componer servicios de la Web y componentesde aplicativo J2EE a través de una interfase de simple drag-and-drop.

Construir potentes adaptadores de aplicativo basados en J2EE Connec-tor Architecture (JCA) para integrar sistemas back-end con serviciosWeb y aplicativos J2EE.

Obtener una infraestructura completa de servicios Web que impulse unambiente único, eficaz en cuanto a coste de tiempo de ejecución delservidor de aplicativo administrativo y operacional.

Evitar la repetición del desarrollo y diseminación de aplicativos debido acondiciones cambiantes del mercado, separando las políticas del negociode la lógica de aplicativos esenciales.

Crear una paleta de componentes de aplicativos que puede ser rápida-mente montada para desarrollar nuevos aplicativos fácilmente publicadacomo servicio Web.

Application Server - Standard Edition

La Edición Estándar para desarrolladores de la web y autores de contenidoincluye mejorías de facilidad de uso en toda su extensión, comprendiendo unQuick Installation que elimina conjeturas en cuanto al Enhanced Java, impul-sando el Software Development Kit del Java 2 V1.2.2 en todos los sistemasoperativos soportados.

Page 243: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

8.2. WEBSPHERE APPLICATION SERVER 221

Servidor HTTP

IBM WebSphere Application Server trabaja con un servidor HTTP paramanejar las peticiones de servlets y otros contenidos dinámicos desde las apli-caciones Web.

El servidor HTTP y el servidor de aplicaciones se comunican utilizandoel plug-in HTTP de WebSphere para el servidor HTTP. El plug-in HTTPutiliza un archivo de configuración XML de fácil lectura para determinar si lapetición la debe gestionar el servidor Web o el servidor de aplicaciones. Utilizael protocolo HTTP estándar para comunicarse con el servidor de aplicaciones.

Servidor de Aplicaciones

El servidor de aplicaciones colabora con el servidor Web intercambiandopeticiones de clientes y respuestas de aplicaciones. Puede definir varios servi-dores de aplicaciones, cada uno de ellos ejecutándose en su propia MáquinaVirtual Java (JVM).

Contenedor de EJB

El contenedor de EJB proporciona los servicios de tiempo de ejecuciónnecesarios para desplegar y manejar componentes EJB, conocidos como enter-prise beans. Es un proceso de servidor que maneja peticiones para beans desesión y beans de entidad.

Los enterprise beans (dentro de los módulos EJB) instalados en un servi-dor 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 servi-dor. Juntos, el contenedor y el servidor proporcionan el entorno de tiempo deejecución del bean.

El contenedor proporciona muchos servicios de bajo nivel, incluido el so-porte de hebras y transacciones. Desde un punto de vista administrativo, elcontenedor gestiona el almacenamiento y la recuperación de datos para losbeans que contiene. Un solo contenedor puede gestionar más de un archivoJAR de EJB.

Page 244: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

222 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER

Contenedor Web

Los servlets y los archivos JSP (Java Server Pages) son componentes delservidor que se utilizan para procesar peticiones de clientes HTTP como, porejemplo, navegadores Web. Se encargan de la presentación y el control dela interacción del usuario con los datos de aplicación subyacentes y la lógicaempresarial.

El contenedor Web procesa servlets, archivos JSP y otros tipos de inclu-siones de servidor. Los servlets anteriores a J2EE se ejecutarán en un motorde servlets. Cada contenedor Web contiene automáticamente un único gestorde sesiones.

Cuando se manejan los servlets, el contenedor Web crea un objeto de peti-ción y un objeto de respuesta, e invoca el método de servicio de servlets. Elcontenedor Web invoca el método destroy() del servlet cuando corresponda ydescarga el servlet, y después la JVM ejecuta la recolección de basura.

Contenedor de Clientes de Aplicaciones

Los clientes de aplicaciones son programas Java que se ejecutan normal-mente en un sistema de sobremesa con una interfaz gráfica 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 aplicacionesde Java que acceden a los beans enterprise, Java Database Connectivity (JD-BC) y las colas de mensajes de Java Message Service. El programa Cliente deaplicaciones J2EE se ejecuta en las máquinas cliente.

Este programa sigue el mismo modelo de programación Java que otros pro-gramas Java; no obstante, el cliente de aplicaciones J2EE depende del tiempode ejecución del cliente de aplicaciones para configurar su entorno de ejecución,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 configuración que permite que una úni-ca máquina de sistema principal parezca varias máquinas de sistema principal.

Page 245: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

8.2. WEBSPHERE APPLICATION SERVER 223

Los recursos asociados con un sistema principal virtual no pueden compartirdatos con recursos asociados con otro sistema principal virtual, incluso si lossistemas principales virtuales comparten la misma máquina física.

Los sistemas principales virtuales permiten al administrador asociar apli-caciones Web con un sistema principal particular configurado para la máquinaque ejecuta la aplicación.

Virtual Hosts (Hosts Virtuales)

Un host virtual es una configuración que permite a una sola máquina hostaparentar ser múltiples máquinas hosts. Permite que una sola máquina físicaconfigure y administre independientemente varias aplicaciones administradas.No está asociado a un nodo particular (máquina). Es una configuración, difer-ente de un “objeto vivo”, indicando que puede crearse, pero no arrancarse odetenerse.

Cada host virtual tiene un nombre lógico y una lista de uno o más seudón-imos de DNS por los cuales es conocido. Un seudónimo de DNS es el nombreTCP/IP del host y el número del puerto que use la petición del servlet, porejemplo su nombre Host:80.

ElWebSphere Application Server proporciona un host virtual predefinido,denominado “el default_host”, con algunos seudónimos comunes, como el IPde la máquina, nombre corto del host, y el nombre del host completo. Elseudónimo comprende la primera parte del camino para el acceso a un recurso,como un servlet. Por ejemplo, localhost:80 en la petición http://localhost:80/servlet/snoop.

Los hosts virtuales le permiten al administrador aislar y manejar indepen-dientemente los múltiples grupos de recursos en la misma máquina física.

Page 246: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 247: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 9

Introducción al ServidorTomcat 5.0

9.1. Descripción

Tomcat (también llamado Jakarta Tomcat o Apache Tomcat) funcionacomo un contenedor de servlets desarrollado bajo el proyecto Jakarta en laApache Software Foundation. Tomcat implementa las especificaciones de losservlets y de JavaServer Pages (JSP) de Sun Microsystems.

9.2. Entorno

Tomcat es un servidor web con soporte de servlets y JSPs. Tomcat noes un servidor de aplicaciones, como JBoss o JOnAS. Incluye el compiladorJasper, que compila JSPs convirtiéndolas en servlets. El motor de servlets deTomcat a menudo se presenta en combinación con el servidor Web Apache.

Tomcat puede funcionar como servidor web por sí mismo. En sus iniciosexistió la percepción de que el uso de Tomcat de forma autónoma era sólorecomendable para entornos de desarrollo y entornos con requisitos mínimosde velocidad y gestión de transacciones. Hoy en día ya no existe esa percepcióny Tomcat es usado como servidor Web autónomo en entornos con alto nivelde tráfico y alta disponibilidad.

225

Page 248: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

226 CAPÍTULO 9. TOMCAT

Dado que Tomcat fue escrito en Java, funciona en cualquier sistema oper-ativo que disponga de la máquina virtual Java.

9.3. Estado de su Desarrollo

Tomcat es mantenido y desarrollado por miembros de la Apache SoftwareFoundation y voluntarios independientes. Los usuarios disponen de libre accesoa su código fuente y a su forma binaria en los términos establecidos en laApache Software Licence. Las primeras distribuciones de Tomcat fueron lasversiones 3.0.x. Las versiones más recientes son las 6.x, que implementan lasespecificaciones de Servlet 2.5 y de JSP 2.1. A partir de la versión 4.0, JakartaTomcat utiliza el contenedor de servlets Catalina.

9.4. Estructura de Directorios

La jerarquía de directorios de instalación de Tomcat incluye:

bin - arranque, cierre, y otros scripts y ejecutables.

common - clases comunes que pueden utilizar Catalina y las aplicacionesweb.

conf - ficheros XML y los correspondientes DTD para la configuraciónde 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 ficheros y directorios.

9.5. Características del Producto

Tomcat 3.x (distribución inicial)

Page 249: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

9.6. HISTORIA 227

• Implementado a partir de las especificaciones Servlet 2.2 y JSP 1.1.

• Recarga de servlets.

• Funciones básicas HTTP.

Tomcat 4.x

• Implementado a partir de las especificaciones Servlet 2.3 y JSP 1.2.

• Contenedor de servlets rediseñado como Catalina.

• Motor JSP rediseñado con Jasper.

• Conector Coyote.

• Java Management Extensions (JMX), JSP Y administración basadaen Struts.

Tomcat 5.x

• Implementado a partir de las especificaciones Servlet 2.4 y JSP 2.0.

• Recolección de basura reducida.

• Capa envolvente nativa para Windows y Unix para la integraciónde las plataformas.

• Análisis rápido JSP.

Tomcat 6.x

• Implementado de Servlet 2.5 y JSP 2.1.

• Soporte para Unified Expression Language 2.1.

• Diseñado para funcionar en Java SE 5.0 y posteriores.

• Soporte para Comet a través de la interfaz CometProcessor.

9.6. Historia

Tomcat empezó siendo una implementación de la especificación de losservlets comenzada por James Duncan Davidson, que trabajaba como arqui-tecto de software en Sun Microsystems y que posteriormente ayudó a hacer alproyecto de código abierto y en su donación a la Apache Software Foundation.

Duncan Davidson inicialmente esperaba que el proyecto se convirtiese ensoftware de código abierto y dado que la mayoría de los proyectos de este tipo

Page 250: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

228 CAPÍTULO 9. TOMCAT

tienen libros de O’Reilly asociados con un animal en la portada, quiso ponerleal proyecto nombre de animal. Eligió Tomcat (gato), pretendiendo representarla capacidad de cuidarse por sí mismo, de ser independiente.

Page 251: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 10

NetBeans 6.7.1

10.1. Introducción

El NetBeans IDE es de código abierto entorno de desarrollo integradode una base en la plataforma NetBeans y ha sido escrito completamente enlenguaje Java. El IDE NetBeans apoya el desarrollo de todo tipo de aplica-ciones Java (como Java SE , web, EJB y Java ME aplicaciones móviles). Entreotras características clave son un sistema de proyectos basado en Apache Ant,control de versiones, y herramientas de refactorización.

Para el desarrollo móvil, NetBeans proporciona muchas desarrollo rápidode aplicaciones (RAD) funciones, como un diseñador visual de flujo, diseñadorvisual de formularios, y herramientas para el desarrollo multitarget.

Para habilitar el uso de NetBeans para construir aplicaciones móviles Javapara dispositivos, Nokia ha prestado apoyo para el mismo en muchas de lasseries 40 y S60 SDK , incluyendo todos los últimos de la Serie 40 5 a Edicióny S60 3rd Edition SDK.

Los desarrolladores de aplicaciones móviles Java para dispositivos tambiénpodría estar interesado en UML plug-in. Este plug-in permite a los desarro-lladores diseñar diagramas UML como diagramas de clase y para sincronizarel código con ellos. El UML plug-in está disponible en el paquete Todo Net-Beans o se pueden cargar en el IDE de NetBeans utilizando el plug-in deadministrador (si selecciona Herramientas -> Complementos en el menú).

229

Page 252: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

230 CAPÍTULO 10. NETBEANS

10.2. ¿Qué hay de nuevo en 6.7.1?

NetBeans IDE 6.7.1 es una actualización menor de NetBeans IDE 6.7 eincluye los siguientes cambios:

• La disponibilidad de los últimos IDE incluido con JavaFX SDK1.2.1.

• Numerosas correcciones de errores de la comunidad nominado in-cluido en el parche 1 para NetBeans IDE 6.7.

Las siguientes actualizaciones de versión 6.5.1 incluye en la versión 6.7también se aplican a 6.7.1.

• Maven ayuda a la creación de plugins y servicios web, así como elapoyo a POM y J2EE.

• Kenai integración permite la creación y edición de Kenai proyectosalojados desde el IDE.

• C + + soporte para el perfil, la biblioteca Qt, la refactorización decódigo y expansión de macro.

• Web API Gateway plug-in permite el consumo de APIs en aplica-ciones Web.

• Java ME apoyo a proyectos de los CDC en el paquete SDK JavaME 3.0.

Tecnologías Soportadas

NetBeans IDE 6.7.1 soporta las siguientes tecnologías y ha sido probadocon los siguientes servidores de aplicaciones.

10.2.1. Tecnologías compatibles:

Java EE 5 y J2EE 1.4.

JavaFX 1.2.1.

Java ME SDK 3.0.

Struts 1.2.9.

Page 253: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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.

Page 254: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

232 CAPÍTULO 10. NETBEANS

10.2.3. Requisitos del Sistema

NetBeans IDE se ejecuta en sistemas operativos compatibles con la máquinavirtual de Java (máquina virtual) y ha sido probado en las plataformas se enu-meran a continuación.

10.2.4. Configuraciones de hardware mínimos

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 con-siste en el entorno de ejecución de Java y herramientas de desarrollo paracompilar, depurar y ejecutar aplicaciones escritas en el lenguaje Java.

El JDK prueba para esta versión 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 laconfiguración que utilizó en anteriores versiones de NetBeans IDE. Si se decideno importar la configuración de una versión anterior, el IDE se abre con laconfiguración predeterminada.

Page 255: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

10.3. NETBEANS Y LAS APLICACIONES MOVILES 233

10.3. Características de NetBeans para el Desarro-llo de Aplicaciones Móviles Java

Las siguientes son algunas de las principales características:

Diseñador de aplicaciones de flujo.

Diseñador de la pantalla.

Analizador de código.

Un sistema de construcción modular.

Aplicación portar apoyo.

Asistente de conexión inalámbrica (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 dispositivoNokia con Nokia PC Suite.

Apoyo a proyectos.

Herramientas integradas de desarrollo.

J2MEUnit la realización de análisis.

Integrado la ofuscación y el apoyo de optimización.

10.4. SDK de Nokia S60

Cómo instalar el SDK de Nokia S60 en NetBeans para el desarrollo J2ME

Después de instalar el SDK de Nokia S60, puesta en marcha de NetBeans,debe hacer clic en el menú Herramientas | Plataformas Java. Usted debeobtener un cuadro de diálogo que se muestra en la figura 10.1 de la página234. Haga clic en la plataforma Java MIDP ME emulador. Luego hagaclic en Siguiente.

Page 256: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

234 CAPÍTULO 10. NETBEANS

Figura 10.1: Añadir Platforma Java

Después de hacer clic en Siguiente, se le pedirá la ubicación de la carpetade la plataforma Java que desee agregar. En este caso, hay que seleccionar eldirectorio donde instalaste el Nokia S60 SDK para J2ME. Como se muestraen la pantalla de ejemplo siguiente, lo he instalado en C: \ S60. Sólo tienesque seleccionar el directorio donde se instaló el SDK de Nokia S60 en su casosi usted tiene instalado en otro directorio.

Una vez que haga clic en Buscar, el IDE NetBeans agregar un directorioen la lista donde se ha detectado una válida plataforma Java. Usted debeasegurarse de que la casilla está seleccionada y haga clic en Siguiente.

NetBeans luego de detectar las configuraciones válidas y dispositivos in-stalados en el directorio seleccionado. Una vez que NetBeans ha terminado,verá la configuración detectado en el cuadro de diálogo. Seleccione la platafor-ma J2ME detectado y haga clic en Finalizar. En este punto, se ha instaladosoporte para el SDK de Nokia S60 para J2ME en NetBeans IDE.

Page 257: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

10.5. NUEVO PROYECTO UTILIZANDO J2ME 235

10.5. Creación de un Nuevo Proyecto Java ME conNetBeans

Para crear un nuevo proyecto, seleccione Archivo ->Nuevo proyecto ...en el menú de NetBeans o utilizar las teclas Ctrl + Mayúsculas + N atajode teclado. La ventana que se muestra en la figura sigiente 10.2 de la pagína235 se abrirá.

Figura 10.2: Ventana: Nuevo Proyecto.

Debe elegir Java ME en la lista Categorías y, a continuación de aplica-ciones móviles de la lista de proyectos. Al seleccionar el botón Siguiente seabre el diálogo que se muestra en la siguiente figura 11.35 de la pagína 279.

Nombre del proyecto y elija una ubicación en el sistema de archivos en elque se almacenara. Tenga en cuenta la opción Crear Hola MIDlet. Al elegiresta opción creará un simple "Hello World"de estilo, pero lo más importante,se abrirá la aplicación para que utilice los diseñadores visuales para el flujo deaplicaciones y diseños de pantalla. Una vez más, seleccione el botón Siguiente,

Page 258: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

236 CAPÍTULO 10. NETBEANS

Figura 10.3: Ventana: Nombre y Localización.

y el diálogo que se muestra en la figura siguiente 11.36 de la pagína 279 seabre.

Si la opción Crear Hola MIDlet no está seleccionada, tendrá que crearun MIDlet mismo después de que el proyecto se ha creado. Para ello, vaya aArchivo -> Nuevo archivo ..., seleccione MIDP en la lista Categorías yMIDlet en la lista Tipos de archivo. Pulse Siguiente, dele a su MIDlet unnombre y pulse Finalizar.

Ahora selecciona la Plataforma emulador será la aplicación codificada . Sepuede utilizar la mayoría de los S60 y Series 40 SDK. En este caso, el S60 3rdEdition Feature Pack 2 SDK para Symbian OS, para Java ha sido seleccionado.En esta etapa, el dispositivo S60Emulator es seleccionado para permitir lainspección de la aplicación en un PC, utilizando el emulador suministrado en elkit SDK. Una vez más, seleccione Siguiente, y el siguiente cuadro de diálogoque se muestra en la figura 11.38 de la pagína 280 es:

Este diálogo permite configuraciones adicionales que se agregan a un proyec-to. Debe seleccionar Finalizar para completar el Asistente para nuevo proyec-to.

Page 259: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Figura 10.4: Ventana: Selección de la Plataforma.

Figura 10.5: Ventana: Configuración Adicional.

Page 260: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

238 CAPÍTULO 10. NETBEANS

Page 261: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 11

Descripción de la Aplicación

11.1. Introducción

El presente trabajo consiste en la creación de una aplicación con softwarede Computación Móvil Multiplataforma, que permita el acceso a informaciónsituada en bases de datos multiplataforma en un servidor Web, a través dedispositivos móviles tales como teléfonos celulares.

El objetivo de la aplicación es la automatización de servicios orientados alcliente, para que los mismos sean accesibles a través de teléfonos celulares yestén disponibles en la Web, ya que los clientes cada vez requieren aplicacionesde este tipo, que estén siempre disponible en cualquier momento y en cualquierlugar.

Se trata de un sistema orientado a actividades de venta deMedicamentos deventa libre y productos de la seción de perfumeria de una entidad farmacéutica.

Para el desarrollo del trabajo se utilizó el lenguaje de programación JavaJSE y su extensión J2ME, debido a que sus características lo hacen adecuadopara el propósito planteado: seguridad, robustez y sobre todo, portabilidad.

La variedad de dispositivos existentes en el mercado condiciona que la apli-cación deba ser compatible con todos ellos. Como es conocido, la portabilidades una de las características inherentes al lenguaje Java.

Como se ha visto en el capítulo cinco las tecnologías Java se agrupan envarias familias, cada una de ellas adecuada para el desarrollo de distintos tipos

239

Page 262: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

240 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

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 aplica-ciones para servidores utilizados en un entorno empresarial. Incluye laclase Servlet para el desarrollo de aplicaciones en el servidor.

Java 2 Micro Edition (J2ME : Es un subconjunto de J2SE orientadoal desarrollo de aplicaciones Java destinadas a dispositivos con pocosrecursos y capacidades restringidas, como teléfonos móviles o asistentespersonales digitales (PDAs). Incluye la clase MIDlet para el desarrollode aplicaciones en el cliente.

11.2. Estructuración

El sistema está compuesto por dos módulos principales, uno móvil quecorrerá en un celular el cual se lo ha llamado Farmia Corrientes Movil, y otroWeb al cual se lo ha llamado Farmacia Corrientes. Se ha desarrollado tambiénun tercer módulo que simula ser el sitio web de una farmacia ficticia llamadoFarmacia Corrientes en Línea para completar el ideal de lo que debería serun sistema para una farmacia.

El sistema está pensado para que trabaje con distintos tipos de perfilesde usuario, donde cada perfil tendrá funciones específicas de acuerdo al tipode usuario. A continuación se verán los distintos perfiles de usuario y a quémódulos pertenecen:

Módulo Farmacia Corrientes:

• Administrador.

• Farmacéutico.

Módulo Móvil Farmacia Corrientes Móvil:

• Cliente Móvil.

Page 263: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 241

Módulo Farmacia Corrientes en linea:

• Cliente Web.

• Usuario on line.

El sistema está pensado de forma tal que pueda ser utilizado por distintosusuarios con distintos privilegios.

A continuación se detallan los perfiles usuarios que se contemplan:

Administrador.

Farmacéutico.

Cliente.

• Web.

• Móvil.

Usuario on line.

Cada uno de estos perfiles determina las funciones que están disponiblespara el usuario. En el caso de uso que muestra la fig. 11.1 de la pág. 242se puede apreciar a grandes rasgos qué funciones del sistema se encuentrandisponibles de acuerdo al tipo de usuario.

11.3. Estructuración

La aplicación está estructurada en dos partes:

La parte Web que está desarrollada en el lenguaje Java concretamenteJ2SE que corre en un servidor Web y se accede a través de un navegadorde Internet.

La parte móvil que se encuentra desarrollada también en el lenguajeJava, específicamente en J2ME (Java 2 Micro Edition), ésta corre en eldispositivo móvil (celular) y por lo tanto debe descargarse e instalarseen el dispositivo en cuestión.

Page 264: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

242 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.1: Caso de Uso del Sitema.

Page 265: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 243

11.3.1. La Aplicación Móvil (Farmacia Corrientes Móvil)

Para el desarrollo móvil se optó por usar el modelo cliente / servidor comose ve en la fig. 11.2 de la pág. 243.

Figura 11.2: Arquitectura del Sistema.

En donde:

Gestión de datos: Comprende la parte de la aplicación encargada del accesoa la base de datos para recuperar la información solicitada desde el dispositivomóvil.

Emplea JDBC (Java Database Connectivity) como nivel intermedio entreesta capa y la siguiente. De esta forma, un cambio en el gestor de la base dedatos empleado no requerirá modificaciones en la aplicación, sino que sólo seránecesario sustituir el driver JDBC por otro apropiado para el nuevo gestor.

Page 266: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

244 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Lógica de negocio: Esta capa contiene los servlets de Java que recibe einterpreta las peticiones del cliente y genera las consultas a la base de datos,devolviendo la información solicitada.

Capa presentación: incluye el código Java 2ME ejecutado en el dispositivomóvil.

La clase MIDlet es la clase general de toda aplicación móvil, como sedesarrolla con la configuración CLDC y el perfilMIDP. La aplicación contienea la clase Pantalla que hereda de MIDlet, por lo tanto es un Midlet.

Esta clase Pantalla es la clase principal que maneja todo el comportamien-to de la aplicación, iniciar la aplicación, pausar la aplicación, destruir la apli-cación y gestionar las pantallas que se muestran.

La Aplicación Móvil en Funcionamiento

El interfaz gráfico de Farmacia Corrientes Móvil es una interfaz simple,permite una fácil interacción con el usuario, es estándar para todos los termi-nales móviles que soportan J2ME.

Por razones de que se trata de una aplicación de negocios y para lograr lamayor portabilidad posible del aplicativo se eligió para desarrollar la interfacede usuario las APIs de alto nivel, donde no se tiene un control total del aspectode los controles, su estética depende exclusivamente del dispositivo donde seejecute. Para más información acerca de interfaces gráficas ver capítulo cinco(J2ME).

Otro aspecto muy interesante a la hora de desarrollar una aplicación móvilutilizando J2ME es poder almacenar localmente cierta información útil en elteléfono celular para no tener que volver a realizar una petición al servidorsobre datos solicitados anteriormente.

Farmacia Corrientes Móvil posee conectividad con un servidor Web, paralograr esto utiliza Internet móvil y la tecnología GPRS (General Packet RatioService) donde no se factura al usuario por tiempo de conexión, sino por datosenviados y recibidos.

Por lo tanto la aplicación minimiza el intercambio de datos, intercambiandosolamente datos puros. Esto quiere decir que el terminal móvil debe poseerconectividad a Internet como requisito para poder utilizar el sistema y por

Page 267: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 245

supuesto poder ejecutar aplicaciones Java.

Como se ha mencionado en el capítulo seis (J2ME) las aplicaciones quese desarrollan bajo la configuración CLDC (Conected Limited Device Config-uration) y el perfil MIDP (Mobile Information Device Profile) se denominanMIDlets. Por lo tanto Farmacia Corrientes Móvil como se desarrolló bajo laconfiguración CLDC 1.1 y el perfil MIDP 2.0 es un MIDlet.

La fig. 11.3 de la pág. 245 representa la pantalla principal de la aplicaciónmóvil, Farmacia Corrientes Móvil.

Figura 11.3: Pantalla Principal Farmacia Corrientes Movil.

Esta pantalla (pantalla principal) permanece activa hasta que el usuariopresione el comando iniciar.

Al presionar el comando iniciar inmediatamente se presenta al usuario elInicio del sistema que cuenta con los siguientes ítems:

INICIAR SESIÓN.

Page 268: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

246 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

CONFIGURACIÓN.

AYUDA.

SALIR.

Iniciar sesión: En este ítem la aplicación trabajará en modo “on-line”,solicitando previamente autenticación del usuario a través de un nombre clientey contraseña, donde éstos son entregados al usuario al registrarse en el sistemaFarmacia Corrientes en linea.

Configuración: Esta opción es útil para poder configurar la url única dondereside el servidor por ejemplo, http://www.servidorFarmaciaCorrientesenlinea.com, esta información se guarda en el almacenamiento persistente del móvil.

Antes de utilizar cualquier opción se debe primeramente cargar este valor.

Ayuda: Como su nombre lo indica, esta opción brinda información acercade la utilización de Farmacia Corrientes Móvil.

Salir : Esta opción permite al usuario salir de la aplicación.

Lo anteriormente mencionado se puede observar en la fig. 11.4 de la pág.247.

Iniciar Sesión

Para acceder o iniciar sesión se debe completar un “nombre del cliente”y “contraseña” e intentar conectarse. Para ello se le muestra al usuario lapantalla de la fig. 11.5 de la pág. 248, donde antes de ser enviados los datosson validados localmente, por ejemplo si se intenta enviar nombre cliente ycontraseña vacías o si la contraseña posee menos de ocho caracteres.

La aplicación le avisará al usuario a través de alertas en caso de que ocurranalgunos de los casos mencionados.

La fig. 11.5 de la pág. 248 muestra la pantalla de ingreso y cómo la apli-cación avisa al usuario de determinados errores.

Una vez que los datos sean ingresados correctamente serán enviados alservidor, donde también son validados por el mismo, se puede decir que ex-iste una validación en las dos partes, en el cliente (MIDlet) y en el servidor(Servlet).

Page 269: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 247

Figura 11.4: Inicio.

Page 270: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

248 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.5: Pantallas de Ingreso al Sistema.

Page 271: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 249

Mientras los datos son enviados y procesados por el servidor, el aplicac-tivo muestra una pantalla informándole al usuario que se está realizando laconexión. En la fig. 11.6 de la pág. 249 se puede ver la pantalla mencionada.

Figura 11.6: Pantalla Conectando

La clase Servlet es la encargada de realizar la conexión a la base de datosy corroborar que los datos recibidos son realmente iguales a los datos almace-nados en la base. Luego del proceso de búsqueda y verificación el Servlet envíaal celular un error (en la fig. 11.7 de la pág. 250 se puede ver la pantalla) obien la información del cliente otorgándole de esta manera la posibilidad depoder observar el Catálogo.

Luego de realizar la autenticación del usuario, si resulta satisfactoria serecibe la información del cliente con los siguientes datos:

Número de cliente.

Número de documento.

Page 272: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

250 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.7: Pantalla Error.

Nombre y Apellido.

Dirección.

En una pantalla se muestra esta información del cliente, la misma se puedeapreciar en la fig. 11.8 de la pág. 251.

En una pantalla posterior el usuario puede visualizar la pantalla Catálogo(ver fig. 11.9 de la pág. 252) con los ditintos rubros que dispone para operaren una lista.

Pantalla Catálogo

A la pantalla Catalogo (ver fig. 11.9 de la pág. 252) se puede acceder dedos formar:

Seleccionando la opcion Siguiente en la pantalla Datos del Cliente.

Page 273: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 251

Figura 11.8: Pantalla Datos del Cliente.

Page 274: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

252 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

O una vez iniciada la sesión, en la pantalla Inicio aparecerá otro elementoen la lista que es CATALOGO (ver fig.11.10 de la pág 253).

Figura 11.9: Pantalla Catalogo(Rubros).

Al seleccionar uno de los rubros, se presenta una nueva pantalla en dondepodrá seleccionar la forma de busqueda (ver fig. 11.11 de la pág. 254 PantallaMarca / Nombre). En el márgen superior de la pantalla mencionada se podráobservar el rubro que fue seleccionado.

Una vez seleccionada la forma de búsqueda aparecerá una nueva pantalla endonde se encontrarán despleagados los datos sujetos a la selección anterior. Porejemplo si la forma de búsqueda es Marca se desplegará la pantalla SeleccioneMarca que se muestra en la figura 11.11 de la página 254.

Las opciones disponibles para la pantalla Catálogo - Selccione Marca son:

Aceptar:

Page 275: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 253

Figura 11.10: Inicio 2.

Page 276: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

254 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.11: Catalogo.

Page 277: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 255

• Al seleccionar la opción Aceptar de la pantalla Seleccione Marcaque se muestra en la figura 11.11 de la página 254 se desplegará lapantalla Seleccione Presentación (ver fig. 11.11 de la pág. 254).

Volver:

• Selecionando esta opción se vuelve a la pantalla Marca / Nombreque se muestra en la figura 11.11 de la página 254.

Inicio:

• Sselecionando esta opción se vuelve a la pantalla que se muestra enla figura 11.10 de la página 253.

Las opciones disponibles para la pantalla Catálogo - Seleccione Presentaciónson:

Ver Descripción:

• La opción Ver Descripción es importante en aquellos dispositivosmóviles que tienen limitaciones para desplegar la totalidad de lainformacion en un ChoiceGroup. Sí se selecciona esta opción sedesplegará la Pantalla Descricpción, en la cual se podrá observarde manera ordenada los datos de la Presentación seleccionada (verfig. 11.12 de la pág. 256).

Volver

• Selecionando esta opción se vuelve a la pantalla Seleccione Marcaque se muestra en la figura 11.11 de la página 254.

Inicio

• Selecionando esta opción se vuelve a la pantalla que se muestra enla figura 11.10 de la página 253.

Comprar.

Page 278: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

256 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.12: Pantalla Descripción de la Presentación.

• Si se selecciona la opción Comprar aparecerá la pantallaDescripciónde la Compra. En la figura 11.13 de la página 257 mustra la pantallaantes mencionada, junto con el alerta en caso de que no se hayaingresado la cantidad del producto y/o medicamento.

Pantalla Descripción de la Compra

Las opciones disponibles para la pantalla Descripción de la Compra son:

Seguir Comprando:

• Selecionando esta opción se vuelve a la pantalla que se muestra enla figura 11.9 de la página 252, permitiendo de esta manera quepueda seleccionar otro producto o medicamento.

Finalizar Compra:

Page 279: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 257

Figura 11.13: Pantalla Descripción de la Compra.

• Seleccionando esta opción se despliega la pantalla Carrito. La mis-ma se puede observar en la figura 11.14 de la página 11.14.

Cancelar Compra:

• Selecionando esta opción se vuelve a la pantalla que se muestra enla figura 11.10 de la página 253.

Pantalla Carrito

En esta pantalla Carrito (ver fig. 11.14 de la pág 11.14) el cliente debeconfirmar su compra. Seleccionando todos los productos y/o medicamentosque le interese comprar.

Las opciones disponibles para la pantalla Carrito son:

Continuar:

Page 280: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

258 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.14: Pantalla Carrito.

Page 281: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 259

• Selecionando esta opción se despliega la pantalla Forma de Pagoque se muestra en la figura 11.15 de la página 260.

Ver Descripción:

• La opción Ver Descripción es importante en aquellos dispositivosmóviles que tienen limitaciones para desplegar la totalidad de lainformación en un ChoiceGroup. Sí se selecciona esta opción sedesplegará la Pantalla Descricpción, en la cual se podrá observarde manera ordenada los datos de la Presentación seleccionada (verfig. 11.12 de la pág. 256).

Cancelar Compra:

• Selecionando esta opción se vuelve a la pantalla que se muestra enla figura 11.10 de la página 253.

Pantalla Forma de Pago

En en el margen superior de la pantalla se puede observar el total de lacompra, 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 sistemaFarmacia Corrientes (ver fig. 11.15 de la pág 11.15).

Tarjeta de Crédito.

Las opciones disponibles para la pantalla Forma de Pago son:

Enviar.

Si se selecciona esta opción los datos son enviados para ser procesadosy poder facturar. A continuacion de despliega una pantalla informativacon los datos mas relevantes de la factura (ver fig. 11.16 de la pág. 261).

Cancelar Compra.

• Selecionando esta opción se vuelve a la pantalla que se muestra enla figura 11.10 de la página 253.

Page 282: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

260 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.15: Pantalla Forma de Pago.

Page 283: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 261

Figura 11.16: Pantalla Datos Relevantes de la Factura.

Page 284: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

262 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Configuración

Como se mencionó anteriormente lo primero que debe hacer el usuariodel sistema para poder utilizar Farmacia Corrientes Movil es configurar ladirección (url) del servidor para lograr una comunicación satisfactoria, ya queel servidor alberga a los servlets de Java que reciben las peticiones y hacen elproceso real de conectarse a la base de datos, solicitar información y verificarsi es un cliente válido.

Para poder realizar esta tarea el usuario debe seleccionar la opción “con-figuración”, en ese instante se mostrará la siguiente pantalla del sistema quese ve en la fig. 11.17 de la pág. 262.

Figura 11.17: Pantalla para Configurar la URL del Servidor.

Esta información quedará guardada en la base de datos del celular y podráser modificada en cualquier momento que se desee.

Una vez que se tiene configurado correctamente la dirección del servidorse puede lograr la comunicación con el mismo. Se debe proporcionar los datos

Page 285: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 263

de acceso (nombre del cliente y contraseña).

Ayuda

Este módulo está destinado a brindarle al usuario un texto informativosintético acerca de cómo utilizar la aplicación móvil. En la fig. 11.18 de la pág.263 se puede observar la pantalla de ayuda.

Figura 11.18: Pantalla Ayuda.

Básicamente brinda información introductoria al sistema, e instruccionespara operar el aplicativo, como ser:

La configuración del URL del servidor.

Cómo iniciar sesión en el sistema.

Cuáles son los tipos de operaciones disponibles para que el cliente puedarealizar su compra.

Page 286: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

264 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

11.3.2. La Aplicación Web

Se desarrolló con el lenguaje Java, utilizando la tecnología de Servlet ,la misma posee acceso a una base de datos que contiene la información quemaneja la aplicación.

Esta base de datos se encuentra manejada por el motor DB2 Express-Cversion 9.7 de IBM. Para más información acerca de DB2 remitirse al capítulosiete.

Pantallas de la Aplicación Web

El sistema está dividido en dos perspectivas:

La perspectiva orientada al cliente que pueden acceder los mismos através de la Internet, llamada Farmacia Corrientes en linea.

La perspectiva orientada al operador / Administrador donde se accedea través de la Intranet, llamada Farmacia Corrientes.

Del Lado del Cliente (Farmacia Corrientes en línea)

En esta parte de la aplicación el usuario tiene disponibles casi las mismasopciones que se utilizan en la aplicación móvil, con algunas opciones adicionalescomo por ejemplo poder visualizar en qué consiste la aplicación móvil (MobileBanking), la posibilidad de poder descargarla e instalarla en el teléfono celulary poder gestionar sus datos.

Esta porción de la aplicación automatiza la gestión de ventas de produc-tos y/o medicamentos, brindándole al cliente una alternativa para realizarsus compras, sin la necesidad de recurrir a la entidad farmacéutica, pudiendoademás el cliente acceder al sistema las 24 hs. del día.

Usuario on line

A continuación se muestra en la fig. 11.19 de la pág. 265 la página Iniciodel sitio.

Page 287: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 265

Figura 11.19: Inicio.

La página Inicio cuenta con las siguientes secciones:

Inicio.

Quiénes Somos.

Catálogo.

Registrarse.

Contacto.

Quiénes Somos: En esta pestaña se podrá obeservar de manera breve lainformacion pertinente a la entidad farmacéutica (ver figura 11.20 de la página266).

Page 288: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

266 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.20: Pestaña Quienes Somos.

Catalgo: En esta pestaña (ver fig. 11.21 de la pág. 267) cualquier usuario online podra tener acceso a la visualizacion de los productos y/o medicamentos,en caracter de promocionar los mismos. Al seleccionar un item de cualquierade las listas y presionar el botón Ver se pasara a la siguiente pagina (ver fig.11.21 de la pág 267), en donde se desplegaran todos los productos con susrespectivas descripciones.

Al presionar el botón Comprar si el usuario on line no es cliente de lafarmacia, no podrá realizar la compra. Se pasara a la pagina que se muestraen la figura 11.23 de la página 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 quedebe hacer es registrar sus datos (ver fig. 11.24 de la pág. 268).

Contacto: En esta pestaña (ver fig. 11.25 de la pág 269) se podra obtenertoda la información referente a la manera de contactarse con un representante

Page 289: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 267

Figura 11.21: Catálogo.

Figura 11.22: Descripción del Producto.

Page 290: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

268 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.23: Cliente.

Figura 11.24: Registrarse.

Page 291: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 269

de la farmacia.

Figura 11.25: Contacto.

Para poder comprar el cliente debe ingresar sus datos de acceso, ingresandoel cliente y una contraseña en la sección Cuenta Cliente.

La aplicación del lado del cliente valida si se presionó el botón ingresary los campos del cliente y/o la contraseña están vacíos mediante el uso dellenguaje JavaScritpt.

Cliente Web Validado

Una vez que el cliente se haya validado en el sistema, dispone de un menúcon las siguientes opciones:

Inicio.

Quiénes Somos.

Catálogo.

Page 292: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

270 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Ver Carrito.

Contacto.

Farmacia Móvil.

Las pestañas Inicio, Quienes Somos y Contacto; son las mismas pestañasmencionadas anteriormente con la diferencia que la sección Cliente es cambiadapor Bienvenido en donde el cliente podrá:

ver su cuenta.

• Luego al seleccionar Mi Cuenta disponible es posible ver la infor-mación del cliente como ser:

◦ Apellido y Nombre.◦ DNI.◦ Fecha de Nacimiento.◦ Dirección.◦ Nro. de Teléfono.◦ Nro. de Celular.◦ E-mail◦ Nombre del Cliente.

◦ Contraseña.

Además se puede modificar los datos del Cliente.

Desconectarse.

En la figura de la página que se muestra en la figura 11.26 de la página271 marcada con un cuadro rojo se puede observar la sección Bienvenido.

Catálogo: La página Catálogo es la misma que se mencionó antes con ladiferencia que si el cliente está logueado y presiona el botón comprar se pasaráa la página Mi Carrito que se muestra en la figura 11.27 de la página 272.

El cliente puede realizar las siguientes acciones sobre la página Mi Carrito:

Presionar el botón X Se elimira el producto del Carrito.

Page 293: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 271

Figura 11.26: Inicio (logueado por el cliente).

Presionar el botón Continuar Comprando. Se pasará a la página Catálogopara que el cliente continue con su compra.

Presionar el botón Realizar Pedido. Se pasará a la página Pedido (verfig. 11.28 de la pág. 272) para que el cliente seleccione la Forma de Pago.

Page 294: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

272 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.27: Mi Carrito.

Figura 11.28: Pedido

Page 295: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 273

El cliente puede realizar las siguientes acciones sobre la página Pedido:

Seleccionar la forma de pago.

Presionar el botón Cancelar.

Presionar el botón Continuar. Se pasará a la página Factura Virtual(ver fig. 11.29de la pág. 273). Como es una Factura Virtual no se puedeutilizar como comprobante de pago.

Figura 11.29: Factura Virtual.

Al presionar el botón Finalizar de la página Factura Virtual (ver fig.11.29de la pág. 273) se pasará a la pantalla Mensaje Fin de la Compra que semuestra en la figura 11.30 de la página 274.

Ver Carrito: A través de esta sección del sistema, el cliente puede observartodos los productos y/o medicamentos que contiene su carrito. Como muestrala figura 11.27 de la página 272.

Page 296: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

274 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.30: Mensaje Fin de la Compra

Farmacia Móvil : En esta página de la aplicación se puede obtener infor-mación acerca de Farmacia Corrientes Móvil (aplicativo móvil), como ser enqué consiste, requisitos de los dispositivos para poder lanzar la aplicación, quéoperaciones se pueden realizar y también brinda un enlace que permite descar-gar el aplicativo en la PC para luego a través de una conexión con el celular,ya sea bluetooth, cable USB o infrarrojos, se pueda instalar la aplicación en eldispositivo celular en cuestión.

Otra alternativa de descarga de Farmacia Corrientes Móvil es ingresandodirectamente en el navegador WAP del celular la dirección URL que muestraesta página, descargando así directamente el aplicativo en el celular sin tenerque bajarlo en una PC. Este proceso demandará al usuario el costo por “bytes”recibidos de la aplicación.

En la fig. 11.31 de la pág. 275 se muestra la ventana correspondiente aFarmacia Corrientes en línea.

Page 297: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 275

Figura 11.31: Farmacia Movil.

Del Lado del Operador / Administrador

Esta perspectiva del sistema Farmacia Corrientes funciona como back-end, está orientada a ser operada dentro de la Intranet para que pueda seraccedida por operadores para realizar tareas rutinarias de gestión y tambiénpor administradores para tareas similares y además gestionar y auditar losmovimientos diarios y también realizar tareas de mantenimiento del sistema.

Se puede decir que es la base de las demás perspectivas, a partir de éstase crean las demás, ya que los clientes se deben dar de alta, crear sus cuentascorrientes en esta perspectiva.

Además se debe gestionar todo lo referido a los productos y/o medicamen-tos.

Los usuarios que utilizarán esta parte del sistema deben existir como usua-rios reales, esto quiere decir que algún administrador deberá insertarlo a la basede datos de usuarios para poder operar en el sistema.

Page 298: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

276 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

En la fig. 11.32 de la pág. 276 se puede observar la ventana que correspondea la página principal donde se solicitan datos de name y password para ingresaral sistema Farmacia Corrientes.

Figura 11.32: Inicio (Operador / Administrador).

Administrador

El menú de opciones que brinda Farmacia Corrientes, si el que se ingresoes un Admistrador es el siguiente:

Inicio.

• Inicio.

• LogOut.

Productos.

• Nuevo Producto.

• Modificar.

Page 299: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 277

• Borrar.

• Consultar Productos.

• Consultar por Nombre.

Usuarios.

• Nuevo Usuario.

• Modificar.

• Borrar.

• Consultar.

Consultas.

• Consultar Clientes.

• Ira a Farmacia Corrientes en línea.

En la figura 11.33 de la página 277 se muestra la página de Inicio (Ad-mistrador / Operador).

Figura 11.33: Inicio - Administrador.

Page 300: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

278 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Productos

A continuación se explicará y mostrarán las funciones de la subseción Nue-vo Producto:

En la primera página (ver figura 11.34 de la página 278) el administradordebe seleccionar el rubro del producto y/o medicamentos que desea dar dealta. Al presionar el botón siguiente se pasa a la siguiente página (ver figura11.35 de la página 279) en donde debe seleccionar el nombre del producto.

Una vez seleccionado el nombre del producto y presionar el botón siguientese pasa a la página (ver figura 11.36 de la página 279) en donde se debeseleccionar la presentación del producto.

Al seleccionar la presentación del producto y presionar el boton siguientese pasa a la página (ver figura 11.37 de la página 280) en donde el adminis-trador debe ingresar el precio unitario, monto y seleccionar la ruta en dondese encuentra la imagen del producto.

Si la carga de los datos del producto fue sastifactoria se pasa a la página(ver figura 11.38 de la página 280) en donde se le informa al administradorque los datos fuerón guardados con éxito.

Figura 11.34: Nuevo Producto (pág1).

Page 301: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 279

Figura 11.35: Nuevo Producto (pág2).

Figura 11.36: Nuevo Producto (pág. 3).

Page 302: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

280 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

Figura 11.37: Nuevo Producto (pág. 4).

Figura 11.38: Nuevo Producto (pág. 5).

Page 303: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 281

Usuarios

A continuación se mostrarán las funciones de la subsección Nuevo Usurioque se indican en la figura 11.39 de la página 281. El administrador debeingresar todos los datos requeridos por la página, en caso de ingresar un datoerróneo en un campo, mediante la utilización de javascript se le informa aladministrador de su error.

Figura 11.39: Nuevo Usuario.

Farmacéutico

El menú de opciones que brinda Farmacia Corrientes si el que ingreso esun Farmacéutico es el siguiente:

Inicio.

• Inicio.

• LogOut.

Cuentas Corrientes.

Page 304: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

282 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

• Nueva Cuenta.

• Modificar.

• Borrar.

• Consultar.

Farmacéutico.

• Editar.

• Consultar.

Cuentas Corrientes

La primer página que se le presenta al farmacéutico al presionar subseciónNueva Cuenta es la que se muestra en la figura 11.40 de la página 282, dondedebe ingresar el DNI del cliente que desea crear una cuenta. Una vez validadoel DNI del cliente, el farmacéutico debe ingresar el monto límite que tendráel cliente en la cuenta (ver figura 11.41 de la pág. 283). Luego de ingresar elmonto se pasa a la pantalla (ver figura 11.42 de la página 283) en donde seven reflejados los datos del cliente y el monto cargado .

Figura 11.40: Nueva Cuenta (pág.1).

Page 305: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.3. ESTRUCTURACIÓN 283

Figura 11.41: Nueva Cuenta (pág. 2).

Figura 11.42: Nueva Cuenta(pág. 3)

Page 306: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

284 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

11.4. Estructuras de Datos Utilizadas

El manejador de base de datos que utiliza el sistema es el DB2 Express-Cversion 9.7.

A continuación se describirán las tablas que conforman la base de datos.

Tanto la aplicación móvil como la aplicación Web utilizan la misma basede datos, por lo tanto el manejador debe soportar concurrencia.

En el gráfico 11.43 de la pág. 284 que corresponde a la ventana del centrode 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.

Page 307: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

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 lasentidades que la componen son las siguientes (ver fig. 11.44 de la pág 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.

Page 308: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

286 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

PRESENTACION.

NOMBRE_PRO.

MARCA_LAB.

RUBRO.

VENTAS.

DETALLES_VENTAS.

Ahora se verán los campos que conforman cada tabla.

USUARIO: Contiene toda la información referente a los distintos usua-rios 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 informacióndel número de documento del usuario.

• USU_DIR: Contiene la dirección real del usuario.

• USU_MAIL: Contiene la dirección de correo electrónico del usuario.

• USU_ID: Contiene el número único del cliente, es un número gen-erado por la aplicación.

• USU_NAME: Almacena la información del usuario para ingreso alsistema.

• USU_PAS: Amacena la información de la contraseña secreta delusuario para el ingreso al sistema.

• USU_FEC: Contiene la fecha exacta de nacimiento del usuario.

• USU_TEL: Contiene el teléfono del usuario.

• USU_CUIT: Contiene información a cerca del cuit del usuario.

• ID_TUSU: Es la clave foránea que relaciona la tabla Usuarios conla tabla Tipo_Usuario.

TIPO_USUARIO: Contiene toda la información referente a los distintostipos usuarios registrados en la farmacia.

La tabla posee los siguientes campos de datos:

Page 309: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.4. ESTRUCTURAS DE DATOS UTILIZADAS 287

• ID_TUSU: Es el campo clave de la tabla. Contiene el número únicodel tipo de usuario.

• TUSU_DES:Contiene la desccripción del tipo de usuario.

CUENTA: La tabla çuentaçontiene toda la información de la cuenta queposee el cliente.

La tabla posee los siguientes campos de datos:

• NRO_CUE: Es el campo clave de la tabla. Contiene un númeroautogenerado que identifica a la cuenta.

• USU_ID: Es la clave foránea que relaciona la tabla Cuenta con latabla Rubro.

• ID_TUSU: Es la clave foránea que relaciona la tabla Cuenta con latabla Tipo_usuario. Contiene el número único del tipo de usuario(4= Cliente).

• CUE_MON: Contiene el monto limite que el Usuario puede utilizar.

• CUE_EST: Contiene un carácter que identifica la activación de lacuenta(A=activa; NA= no activa).

CUANTA_CORRIENTES: La tabla cuenta_corrientes alberga los datosde 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 número auto-generado que identifica a la operacion.

• NRO_CUE: Contiene la identificación única de la cuenta. es uncampo relacional a la tabla cuenta.

• TIPO: Contiene información del tipo de transacción (extracción,depósito, transferencia.)

• MONTO: Contiene el monto de la operación.

• FECHA: Contiene la fecha que se realizó la operación.

PRODUCTOS.

La tabla posee los siguientes campos de datos:

• ID_PRO: Es el campo clave de la tabla. Contiene un número au-togenerado que identifica al producto.

Page 310: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

288 CAPÍTULO 11. DESCRIPCIÓN DE LA APLICACIÓN

• ID_RUB: Es la clave foránea que relaciona la tabla Productos conla tabla Rubro.

• ID_NOM: Es la clave foránea que relaciona la tabla Productos conla tabla Nombre_Pro.

• ID_MAR: Es la clave foránea que relaciona la tabla Productos conla tabla Marca_Lab.

• ID_PRE: Es la clave foránea que relaciona la tabla Productos conla 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 número au-togenerado que identifica a la presentación

• PRE_DES: Contiene la descripción de la presentación.

• ID_RUB: Es la clave foránea que relaciona la tabla Presentacióncon la tabla Rubro.

• ID_NOM: Es la clave foránea que relaciona la tabla Presentacióncon la tabla Nombre_Pro.

• ID_MAR: Es la clave foránea que relaciona la tabla Presentacióncon 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 número queidentifica a la nonbre del producto.

• NOM_DES: Contiene la descripción de la nombre del producto.

• ID_RUB: Es la clave foránea que relaciona la tabla Nombre_Procon la tabla Rubro.

MARCA_LAB.

La tabla posee los siguientes campos de datos:

Page 311: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

11.4. ESTRUCTURAS DE DATOS UTILIZADAS 289

• ID_MAR: Es el campo clave de la tabla. Contiene un número queidentifica a la Marca del Producto.

• MAR_DES: Contiene la descripción de la marca del producto.

• ID_RUB: Es la clave foránea que relaciona la tabla Marca_Labcon la tabla Rubro.

RUBRO.

La tabla posee los siguientes campos de datos:

• ID_RUB: Es el campo clave de la tabla. Contiene un número queidentifica al rubro del producto.

• RUB_DES: Contiene la descripción del rubro del producto.

VENTAS.

La tabla posee los siguientes campos de datos:

• ID_VEN: Es el campo clave de la tabla. Contiene un número au-togenerado que identifica a la venta.

• ID_USU: Es la clave foránea que relaciona la tabla Ventas con latabla 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 númeroautogenerado que identifica a la venta.

• IDVEN: Es la clave foránea que relaciona la tabla Detalles_ventascon la tabla Ventas.

• ID_PRO: Es la clave foránea que relaciona la tabla detalles_Ventascon la tabla Producto.

• DVEN_CANT: Contiene la cantidad del producto que se vendio.

Page 312: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 313: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Capítulo 12

Conclusiones

12.1. Conclusiones Generales

Los dispositivos móviles y particularmente los teléfonos celulares, hoy endía no son un lujo sino una necesidad.

Prácticamente cada integrante de una familia ya dispone de un teléfonocelular con buenas capacidades gráficas y de cómputo. Es por ésto que lasempresas están trabajando para brindarles a sus clientes nuevos servicios paraeste tipo dispositivos.

Los desarrollos de las nuevas tecnologías de la información y las comuni-caciones (NTICs) en los últimos años impulsan la implantación de sistemasdistribuidos que puedan ser accedidos a través de los teléfonos celulares. Cuan-do se habla de tecnologías se refiere a GSM, GPRS, WAP que permiten queun teléfono celular pueda mantener conexiones de datos y poder consultarcualquier tipo de información que se encuentre en Internet, o interactuar conel servidor Web o aplicación Web de la empresa. Como por ejemplo una far-macia.

Las soluciones móviles están mostrando sus beneficios para la gestión de lasempresas en la mejora de la productividad, en la creación de nuevos servicios.

En este trabajo se ha cumplido con el objetivo propuesto de desarrollar unaaplicación móvil que acceda a bases de datos multiplataforma, adicionalmentese desarrolló también la aplicación web a fin de tener un sistema completo

291

Page 314: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

292 CAPÍTULO 12. CONCLUSIONES

desarrollado.

Se ha optado por emplear una tecnología ampliamente extendida en laactualidad, y de la que cada vez aparecen un mayor número de dispositivos,de gama media-baja a un costo razonable. No se ha empleado ninguna carac-terística propia de ninguna de las marcas del mercado (Nokia, Motorola, SonyEricsson), por lo que la aplicación desarrollada es compatible con cualquierterminal que soporte la tecnología Java.

Se ha probado la aplicación móvil desarrollada en distintos emuladores.Los mismos se detallan a continuación:

Emulador estándar de NetBeans.

Nokia Series 60 5th Edition SDK for Symbian , Feature Pack 3.

Sony Ericsson SDK 2.5.0.6.

También a lo largo del presente trabajo se ha probado la ejecución delaplicativo en terminales reales. A continuación se detalla el modelo:

Nokia 2800.

El resultado de las pruebas en los distintos emuladores y terminales realescubrió ampliamente las expectativas.

12.2. Conclusiones Acerca de las Tecnologías y Soft-ware Utilizados

Se ha podido comprobar las grandes ventajas de la utilización de tec-nologías y software, tanto de base de datos como del ambiente de desarrollode aplicaciones.

Con respecto al motor de bases de datos DB2, se debe destacar la escala-bilidad, integridad y su facilidad de uso, disponiendo de intuitivos asistentespara la creación de bases de datos, de tablas y la gran utilidad SQL asist quebrinda un apoyo para realizar todo tipo de consultas SQL hacia las tablas.

Page 315: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

12.3. LÍNEAS FUTURAS DE ACCIÓN 293

En cuanto a las facilidades en el entorno de desarrollo, se pudo apreciarque RAD posee un gran número de ventajas, al disponer de numerosas vistas,perspectivas y un editor de código fuente inteligente apto para el desarrollode este tipo de aplicaciones. También se puede decir que RAD puede serusado desde la Intranet de una organización y/o desde la Internet, con locual el sistema resulta más eficiente, más flexible y adaptable al cambio. Alser accesible desde la Intranet se pudo realizar la comunicación real de laaplicación móvil con el servidor sin ningún tipo de inconvenientes.

Cabe destacar el editor gráfico NetBeans, que utiliza el concepto de Dragand Drop para insertar elementos gráficos en el móvil y las facilidades de esteentorno para añadir nuevos dispositivos para las distintas pruebas del sistema.

Con la utilización del lenguaje Java (J2ME) se comprobó la gran porta-bilidad que brinda al poder lanzar la aplicación en distintos modelos y marcasde teléfonos celulares.

Asimismo se pudo apreciar las facilidades del Scientific WorkPlace paraescribir libros, por la calidad del producto obtenido, la automatización en elmanejo de índices, la gestión dinámica de espacios, listas de figuras, de tablas,referencias dinámicas a objetos, bibliografía, etc.

Se destaca la gran potencialidad de este conjunto de herramientas para eldesarrollo de aplicaciones de gran porte y alta complejidad, utilizables en unaamplia gama de sistemas operativos y con diversos motores de bases de datos.

12.3. Líneas Futuras de Acción

A continuación se detallan las principales líneas futuras de acción del pre-sente trabajo:

Mejorar la seguridad del trafico entre los dispositivos móviles y el servi-dor web mediante algoritmos de encriptación.

Desarrollar un módulo basado en el servidor para la generación de es-tadisticas de distinto tipo, las que podrán procesarse con software es-pecifico de tipo OLAP y con algoritmos de Minería de Datos.

Page 316: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación
Page 317: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Bibliografía

[1] L. J. Aguilar. Cibersociedad. Mac Graw-Hill, 1997.

[2] L. J. Aguilar. Programación Orientada a Objetos - Segunda Edición. McGraw Hill/Interamericana de España, S.A.U., España, 1998.

[3] L. Allende. Comercio Electrónico.Aspectos generales, normativos y con-tractuales. Revista El Derecho, 10 DE Julio 2001.

[4] B. J. Carla Sadtler, John Ganci. WebSphere Product Family Overviewand Architecture. IBM Press, USA, 2004.

[5] E. De la Rica. Marketing en Internet. Anaya Multimedia, ESIC Editorial.España, 1997.

[6] I. G. Fernández. Tesis doctoral: Modelo para comercio electrónico basadosen sistemas intermediarios. Universidad Politécnica de Catalunya, 2001.

[7] M. R. Firtman. Programación para celulares. Mp Ediciones, Buenos Aires,Argentina, 2005.

[8] J. C. P. Froufe Quintas Agustín. J2ME Java 2 Micro Edition Manual DeUsuario y Tutorial. Alfaomega Grupo Editor Argentino S.A., 2004.

[9] H. K. y. A. O. Halchmi, Z. Electronic Commerce. The Technion-IsraelInstitute 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 Diseño y Ad-ministración de Datos. Universidad Nacional del Nordeste, Corrientes,Argentina, 2006.

[12] L. J. A. I. Z. Martínez. Estructura de Datos - Algoritmos, Abstracción yObjetos. Mc Graw Hill/Interamericana de España, S.A.U., España, 1998.

295

Page 318: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

296 BIBLIOGRAFÍA

[13] R. A. RAUL CHONG, IAN HAKES. Conociendo el DB2 Express-C.Copyright IBM Corporation, 2007, 2008, Abril 2008.

[14] L. O. D. Sergio Gálvez Rojas. Java a Tope: J2ME. Universidad de Málaga,Málaga, España, 2004.

[15] K. H. F. . S. S. Silberschatz, Abraham. Aprenda Servlets de Java comosi estuviera en Segundo. Editorial McGraw-Hill, USA, 1993.

[16] E. C. A. C. P. G. C. Solares. JAVA - Un Lenguaje de ProgramaciónMultiplataforma para Internet. Paraninfo, España, 1997.

[17] A. S. Tanenbaum. Redes de Computadoras. Pearson Educación, Mexico,2003.

[18] M.Ñ. T. U. Hansmann, L. Merk. Pervasive Computing HandBook.Springer,Verlag, 2001.

[19] VV.AA. Introducción a las Bases de Datos. THOMSON PARANINFO,S.A., USA, 2005.

[20] M. Weiser. The computer for the 21st century. Scientific American, SanFrancisco, CA, USA, 1991.

[21] I. D. Yorio. Tesis de Magistratura:Identificación y clasificación de pa-trones en el diseño de aplicaciones móviles. Universidad Nacinal de laPlata.

Page 319: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

Índice alfabético

2.5G, 502G, 413G, 42, 50

AIV Extender, 194AMPS, 45

Advanced Mobile Phone System,41

Sistema Avanzado de Telefonía Móvil,43

AMS, 131, 132aplicación, 239Aplicaciones

Móviles, 67AWT, 127

B2B, 22, 26B2C, 22, 26B2G, 22Bases de Datos

Introduccion, 185Bases de Datos en Red

Modelo, 190Bases de Datos Jerárquicas

Modelo, 189Bases de Datos Relacional

Modelo, 190bibliotecas de clases, 81bifurcaciones, 95

if, 95if else, 96

bloque try, catch, finally, 98

bucles, 96do while, 98for, 97while, 97

C/C++, 94caso de uso, 241CDC, 126

Conected Device Configuration, 123CDMA, 42

Acceso Múltiple Por División deCódigo, 48

celular, 262Ciclo del Conocimiento, 9Clases de Conocimientos, 9CLDC, 126

Conected Limited Device Config-uration, 122

clientes, 19comentarios, 94comercio, 17, 23, 30, 31

electrónico, 19comercio

electrónico, 16comercio electrónico, 24, 27, 28, 31, 32computación pervasiva, 3Computacion Ubicua, 3comunicaciones en J2ME, 170comunicaciones HTTP, 174comunicaciones inalámbricas, 56comunicaciones móviles, 42configuración, 122, 125

297

Page 320: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

298 ÍNDICE ALFABÉTICO

conocieminto tácito, 9conocimiento explícito, 9contenedor

cliente de aplicaciones de, 222EJB de, 221Web, 222

D-AMPSSistema Avanzado de Telefonía Di-

gital, 45DB2

Introduccion, 185DB2 UDB

Caracteristicas Generales, 193Funciones Complementarias, 194

DBMSSistema de Administración de Bases

de Datos, 187definiciones, 16DNS, 223doGet (), 102, 105doPost (), 105

EDGETasa de Datos Mejorada para la

Evolución del GSM, 50EDI, 22, 29, 31ejemplo de

bifurcación if, 95bifurcación if else, 96bucle for, 97bucle while, 97comentario, 95do while, 98línea compuesta por tres senten-

cias, 94ejemplo de clase, 86empresas, 20enterprise beans, 221estructuras de programación, 94

expresión, 94

FDMmultiplexión por división de fre-

cuencias, 48

Gestión del Conocimiento, 12GFC, 173, 174

Generic Framework Conection, 170GPRS, 42, 113, 244

Servicio de Radio de Paquetes Gen-erales, 50

GSM, 26, 42, 50, 56Sistema Global Para Comunica-

ciones Móviles, 46GUI, 222

herencia, 86hosts virtuales, 223HTML, 54HTTP, 54HttpServletRequest, 102HttpServletResponse, 102

IMTS, 44SistemaMejorado de Telefonía Móvil,

43instanciación e inicialización, 104interfaz

Connection, 173InputConnection, 173OutputConnection, 174StreamConnection, 174

intermedarios, 34Internet, 1, 15, 19, 32, 37, 51, 54

móvil, 244internet, 32Internet , 34IT, 220

J2EE, 214, 218

Page 321: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

ÍNDICE ALFABÉTICO 299

Java 2 Enterprise Edition, 114J2ME, 113

Java 2 Micro Edition, 113, 114,118

J2SEJava 2 Standard Edition, 114

Java, 113java, 79, 81—84, 86, 88, 91, 92, 94, 95,

98, 99, 103, 106estructura general de un progra-

ma, 84javax.servlet.HttpServlet, 102JCA, 220JDBC, 222JDK, 95JNDI, 222JSP, 222jsp, 106, 109juegos y aplicaciones, 53JVM, 221

Java Virtual Machine, 114

Ley de Moore y la Vision de Weiser, 6

M-CommerceComercio Electrónico a Través de

Dispositivos Móviles, 26m-commerce, 3memoria

administrador automático de la,84

mensajes multimedia, 53middleware, 219MIDlet, 131, 134, 135, 156MIDP, 126, 170MMS, 65

Multimedia Messaging System, 53MSC

Centro de Conmutación Móvil, 44MTSO

Oficina de Telefonía Móvil, 44multi servidor, 219multiplataforma, 82, 193mundo móvil, 41

NetBens, 229NTICs

Nuevas Tecnologías de Informáti-ca y Comunicaciones, 1

nuevas tecnologias, 1

OMAOpen Mobile Alliance, 56

OOP, 84operadores

aritméticos, 91de asignación, 91de concatenación de cadenas de

caracteres, 93

package, 87packages, 85PCS

Personal Communications Services,41

perfil, 125plug-in, 221proceso de formación del conocimien-

to, 8

Quick Installation, 220

RAD, 205Rational Application Developer, 205record, 156

store, 156, 157stores, 168, 169

RMS, 156, 158Record Management System, 154

sentencia, 94

Page 322: SistemaWebconAccesoaBasesdeDatos ...exa.unne.edu.ar/depar/areas/informatica/SistemasOperativ...UniversidadNacionaldelNordeste FacultaddeCienciasExactas,NaturalesyAgrimensura TrabajoFinaldeAplicación

300 ÍNDICE ALFABÉTICO

ServerApplicationAdvanced Edition, 218Enterprise Edition, 220Standard Edition, 220

servicios de información, 52servidor

de aplicaciones, 221HTTP, 221

servlets, 99, 100, 102, 103, 105, 222motor del, 104

sistema avanzado de telefonía móvil,43

sistemas móviles de segunda generación,48

SMS, 26, 53Short Message System, 52

SMTP, 52Sociedad de la Informacion y el Cono-

cimientodefinición, 7

software móvil, 54

TCP/IP, 19, 56TDM

multiplexión por división de tiem-po, 48

TDMA, 42teléfonos

móviles, 3teléfonos celulares, 43, 67, 119teléfonos móviles, 51teléfonos móviles de primera generación,

42teléfonos móviles de segunda generación,

45teléfonos móviles de tercera generación,

49telefonía celular, 52telefonía móvil, 43

telefonía celular, 42telefonía móvil, 43Tomcat

Tomcat 5.0, 225

UMTSSistema Universal de Telecomuni-

caciones Móviles, 49

ventadirecta, 18

ventajas, 19ventas

por catálogo, 18virtual

sistema principal, 222

W-CDMA, 49CDMA de Banda Ancha, 49

WAP, 26, 54wireless application protocol, 56

WASWebSphere Application Server, 216

WBMLWireless Binary mark-up Language,

60Web Services, 219WebSphere

Application Server, 217WebSphere Application Server, 206WML, 55

Wireless Mark-up Language, 60WWW, 19

XHTML-MP, 62XML Extender, 194