tfsoto

318
 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 Sergio Andrés Soto - L.U.: 35406 Prof. Coordinador: Agr. Castor Herrmann Prof. Orientadores: Mgter. David Luis la Red Martínez y Lic. Valeria Uribe. Licenciatura en Sistemas de Información Corrientes - Argentina 2008

Upload: joey-jordison

Post on 18-Jul-2015

380 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 1/318

 

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éfonosCelulares

Sergio Andrés Soto - L.U.: 35406

Prof. Coordinador: Agr. Castor HerrmannProf. Orientadores: Mgter. David Luis la Red Martínez yLic. Valeria Uribe.

Licenciatura en Sistemas de InformaciónCorrientes - Argentina

2008

Page 2: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 2/318

Page 3: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 3/318

 

A mis padres por el apoyo incondicional que me brindaron

Page 4: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 4/318

Page 5: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 5/318

 

Prefacio

En los últimos años, la telefonía móvil ha evolucionado considerablemente,la cual ha entrado de lleno en la sociedad y de la que hoy por hoy no sepuede prescindir. A la par, el fenómeno Internet se ha extendido masivamente,convirtiéndose en la actualidad en un elemento de uso casi imprescindible enla vida cotidiana. A la unión de las dos tecnologías anteriores es a lo que sedenomina “Internet móvil ”.

La potencia de los últimos teléfonos celulares, los hacen adecuados parala ejecución de aplicaciones, que hasta hace poco sólo podían ser ejecutadas

desde un ordenador conectado a la red.

Con el paso de los años, el ser humano ha demostrado nuevas habilidadesy destrezas en el desarrollo de nuevas tecnologías. La red Internet juega unpapel fundamental en todos los ámbitos: Profesionales, culturales, educativos,comerciales y otros. Gracias a ella y a los avances en telefonía móvil, las per-sonas pueden acceder a cualquier tipo de información en cualquier momento,en este sentido el comercio y más el comercio electrónico en general, puedeverse beneficiado de este hecho.

La proliferación de nuevos dispositivos móviles con capacidad de comuni-cación, como teléfonos celulares, crea una nueva demanda de información paraentidades que están presentes en la red.

Las empresas invierten en servicios que automatizan las operaciones desus clientes. Uno de los ejemplos más concretos son las entidadas bancarias,quienes desarrollan sistemas que ayudan a los clientes a la autogestión de susoperaciones las 24 hs del día con sólo estar conectado a la red “Internet”.

Los clientes desean poder acceder a los mismos servicios que acceden desdela Internet a través de un ordenador pero con un dispositivo más pequeño comoun teléfono celular.

Para satisfacer lo anteriormente mencionado, en este trabajo se propusoel desarrollo de una aplicación con software de computación móvil multipla-taforma, que permita el acceso a información situada en bases 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 bancaria, es decir la información pertinente de los clientes, sus

Page 6: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 6/318

 

vi

cuentas bancarias, los movimientos realizados en una determinada cuenta, yotras operaciones inherentes de una cuenta.

Esto significa para los clientes la posibilidad de autogestionar sus cuentasbancarias en cualquier momento y en cualquier lugar sin tener que asistirfisicamente a las oficinas bancarias y con sólo la ayuda de un teléfono celularmoderno.

A su vez se propuso el desarrollo de la plataforma Web de la aplicación quesea accesible desde la Intranet como así también desde la Internet, que con-temple funciones adicionales como ser: registro de clientes, creación de nuevascuentas, poder realizar depósitos y extracciones, y además ciertas funciones

de administración.

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 compu-tación móvil multiplataforma para teléfonos celulares que permita acce-der a información remota situada en un base de datos que se encuentraen 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 permite eldesarrollo de aplicaciones que permitan el acceso a bases de datos multiplata-formas 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. Da-vid Luis la Red Martinez ante IBM Argentina se han recibido materiales 

Page 7: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 7/318

 

vii

tanto en CD’s como en libros de dicha empresa, en el marco de Scholars Program de la misma, destinado a Universidades de todo el mundo; se destacan por ser necesarios para la realización del presente Trabajo Final los referentes productos de software como los siguientes:

— WebSphere Studio Application Developer versión 5.0 y 5.1.2.

— DB2 UDB WorkGroup Server Edition versión 8.1.

— IBM Workplace Client Technology Micro Edition 5.7.

— WebSphere Studio Device Developer versión 5.7.1.

• Se realizaron las traducciones de los manuales correspondientes a las he-

rramientas de desarrollo Websphere Studio Application Developer ver-sión 5.1.2 y Websphere Studio Device Developer 5.7.1.

• 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 UDBpara Windows.

• Se ha realizado un detallado estudio del J2ME (versión de Java paramóviles), para la herramienta de desarrollo WebSphere Studio DeviceDeveloper versión 5.7.1.

• Se ha realizado un detallado estudio del software para el desarrollo dela plataforma web de la aplicación, WebSphere Studio Application De-veloper versión 5.1.2.

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

• En el marco de la herramienta WebSphere Studio Application Deve-

loper se desarrolló el módulo web del aplicativo utilizadando páginasXHTMLs, JSPs y Servlets de Java.

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

— Instalación y configuración del WebSphere Application Server, co-mo servidor de aplicaciones y servidor web.

Page 8: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 8/318

 

viii

— Empaquetado de la aplicación móvil para su distribución e instala-ció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.

— 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 UDB, WebSphere Studio Application Developer, WebSphereStudio Device Developer 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 vision global acerca de las nuevas tecnolo-gías de información y comunicaciones, como así también las principalescaracteristicas del comercio electronico móvil, computación ubicua y dela sociedad de la información y el conocimiento.

• El mundo móvil : Se indican las principales caracteristicas 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 las conceptos y características dellenguaje Java para dispositivos electronicos con menos recursos.

Page 9: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 9/318

 

ix

• Introducción al DB2: Se detallan las más relevantes relevantes caracte-rísticas de esta familia de productos de gestión de bases de datos.

• WebSphere Studio: Presenta los principales aspectos de este entorno deaplicaciones complejas.

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

• Conclusiones : Se presentan las conclusiones a las que se ha llegado alfinalizar el presente trabajo y las 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.

Sergio Andrés SotoLicenciatura en Sistemas de Información

Universidad Nacional del NordesteL.U.: 35406

Corrientes; 02 de Diciembre de 2008

Page 10: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 10/318

 

x

Page 11: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 11/318

 

Índice General

1 Introducción 11.1 Vision Global . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Comercio Electrónico . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Concepto de Comercio Electrónico . . . . . . . . . . . . 31.2.2 Otras Concepciones del Comercio Electrónico . . . . . . 3

1.2.3 Esquema General . . . . . . . . . . . . . . . . . . . . . . 41.2.4 Modelos de Comercio Electrónico . . . . . . . . . . . . . 5

1.3 M-Commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4 Computación Ubicua o Pervasiva . . . . . . . . . . . . . . . . . 8

1.4.1 Principios . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4.2 Hacia las Cosas Inteligentes e Interconectadas . . . . . . 10

1.4.3 La Ley de Moore y la Visión de Weiser . . . . . . . . . 111.5 La Sociedad de la Información y el Conocimiento . . . . . . . . 12

1.5.1 Definición de Conocimiento . . . . . . . . . . . . . . . . 131.5.2 Proceso de Formación del Conocimiento . . . . . . . . . 131.5.3 Clases de Conocimiento . . . . . . . . . . . . . . . . . . 141.5.4 Ciclo del Conocimiento . . . . . . . . . . . . . . . . . . 141.5.5 Características de la Sociedad del Conocimiento . . . . 151.5.6 Gestión del Conocimiento . . . . . . . . . . . . . . . . . 171.5.7 Tecnologías de la Gestión del Conocimiento . . . . . . . 17

1.6 Comercio Electrónico en la Sociedad del Conocimiento . . . . . 181.7 Comercio Electrónico Bancario . . . . . . . . . . . . . . . . . . 19

1.7.1 ¿Qué es Banca Electrónica? . . . . . . . . . . . . . . . . 191.7.2 Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.7.3 Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . 201.7.4 Banca a Través del Teléfono Móvil . . . . . . . . . . . . 201.7.5 Seguridad en Operaciones Electrónicas . . . . . . . . . . 22

2 El Mundo Móvil 25

xi

Page 12: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 12/318

 

xii ÍNDICE GENERAL

2.1 Evolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2 Teléfonos Móviles de Primera Generación . . . . . . . . . . . . 262.2.1 Sistema Avanzado de Telefonía Móvil . . . . . . . . . . 27

2.3 Teléfonos Móviles de Segunda Generación . . . . . . . . . . . . 292.3.1 D-AMPS - El Sistema Avanzado de Telefonía Móvil Di-

gital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.3.2 GSM (Sistema Global Para Comunicaciones Móviles) . 302.3.3 CDMA (Acceso Múltiple por División de Código) . . . . 32

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

GSM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.4.2 GPRS (Servicio de Radio de Paquetes Generales) . . . . 342.5 Servicios Adicionales de las Empresas Telefónicas . . . . . . . . 35

2.5.1 Servicios Analógicos . . . . . . . . . . . . . . . . . . . . 352.5.2 Recepción y Envío de Mensajes de Texto . . . . . . . . 352.5.3 Servicios de Información . . . . . . . . . . . . . . . . . . 362.5.4 Mensajes Multimedia . . . . . . . . . . . . . . . . . . . 372.5.5 Juegos y Aplicaciones . . . . . . . . . . . . . . . . . . . 372.5.6 Internet Móvil . . . . . . . . . . . . . . . . . . . . . . . 38

2.6 WAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.6.1 Introducción a WAP . . . . . . . . . . . . . . . . . . . . 402.6.2 Motivación . . . . . . . . . . . . . . . . . . . . . . . . . 41

2.6.3 Modelo de WAP . . . . . . . . . . . . . . . . . . . . . . 412.6.4 Tecnología . . . . . . . . . . . . . . . . . . . . . . . . . . 452.6.5 WAP 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3 Aplicaciones Móviles 513.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.2 Arquitectura de Aplicaciones Móviles . . . . . . . . . . . . . . . 523.3 Portal Para Aplicaciones Móviles . . . . . . . . . . . . . . . . . 543.4 Arquitectura de Bases de Datos . . . . . . . . . . . . . . . . . . 573.5 Aplicaciones Multiplataforma . . . . . . . . . . . . . . . . . . . 60

3.5.1 Java y Multiplataforma . . . . . . . . . . . . . . . . . . 60

4 Java 634.1 Introduccón al Lenguaje . . . . . . . . . . . . . . . . . . . . . . 63

4.1.1 Bibliotecas de Clases Estándares de Java . . . . . . . . 654.1.2 Java es Multiplataforma . . . . . . . . . . . . . . . . . . 664.1.3 Características del Lenguaje . . . . . . . . . . . . . . . . 67

4.2 Estructura de un Programa Java . . . . . . . . . . . . . . . . . 68

Page 13: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 13/318

 

ÍNDICE GENERAL xiii

4.3 Conceptos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . 694.3.1 Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.3.2 Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.3.3 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . 704.3.4 Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.4 Variables de Java . . . . . . . . . . . . . . . . . . . . . . . . . . 714.4.1 Datos de Objetos o Instancia . . . . . . . . . . . . . . . 734.4.2 Datos de Clase . . . . . . . . . . . . . . . . . . . . . . . 73

4.5 Operadores del Lenguaje Java . . . . . . . . . . . . . . . . . . . 744.5.1 Operadores Aritméticos . . . . . . . . . . . . . . . . . . 744.5.2 Operadores de Asignación . . . . . . . . . . . . . . . . . 74

4.5.3 Operadores Unarios . . . . . . . . . . . . . . . . . . . . 754.5.4 Operador Instanceof . . . . . . . . . . . . . . . . . . . . 754.5.5 Operador Condicional . . . . . . . . . . . . . . . . . . . 754.5.6 Operadores Incrementales . . . . . . . . . . . . . . . . . 764.5.7 Operadores Relacionales . . . . . . . . . . . . . . . . . . 76

4.6 Estructuras de Programación . . . . . . . . . . . . . . . . . . . 774.6.1 Sentencias o Expresiones . . . . . . . . . . . . . . . . . . 774.6.2 Comentarios . . . . . . . . . . . . . . . . . . . . . . . . 774.6.3 Bifurcaciones . . . . . . . . . . . . . . . . . . . . . . . . 784.6.4 Bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4.7 Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

4.7.1 Estructura de un Servlet . . . . . . . . . . . . . . . . . . 834.7.2 Instanciación e Inicialización . . . . . . . . . . . . . . . 864.7.3 Servicio de Demanda . . . . . . . . . . . . . . . . . . . . 884.7.4 Terminación . . . . . . . . . . . . . . . . . . . . . . . . . 884.7.5 Java Server Faces . . . . . . . . . . . . . . . . . . . . . . 884.7.6 Desarrollando Aplicaciones . . . . . . . . . . . . . . . . 94

5 Java 2 Micro Edition 975.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

5.1.1 Comparación de Versiones . . . . . . . . . . . . . . . . . 985.1.2 Algunas Consideraciones al Desarrollar en J2ME . . . . 101

5.2 Componentes de J2ME . . . . . . . . . . . . . . . . . . . . . . . 1025.2.1 Máquinas Virtuales J2ME . . . . . . . . . . . . . . . . . 1035.2.2 Configuraciones . . . . . . . . . . . . . . . . . . . . . . . 1065.2.3 Perfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

5.3 Cómo Detectar una Aplicación J2ME . . . . . . . . . . . . . . 1145.4 Los MIDlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

5.4.1 El Gestor de Aplicaciones . . . . . . . . . . . . . . . . . 116

Page 14: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 14/318

 

xiv ÍNDICE GENERAL

5.4.2 Ciclo de Vida de un Midlet . . . . . . . . . . . . . . . . 1165.4.3 Estados de un MIDlet . . . . . . . . . . . . . . . . . . . 1185.4.4 El paquete javax.microedition.midlet . . . . . . . . . . . 1195.4.5 La Clase MIDlet . . . . . . . . . . . . . . . . . . . . . . 1195.4.6 Estructura de los MIDlets . . . . . . . . . . . . . . . . . 121

5.5 Interfaces Gráficas de Usuario . . . . . . . . . . . . . . . . . . . 1235.5.1 La Clase Display . . . . . . . . . . . . . . . . . . . . . . 1245.5.2 La Clase Displayable . . . . . . . . . . . . . . . . . . . . 1255.5.3 Las Clases Command y CommandListener . . . . . . . . 1255.5.4 Interfaz de Usuario de Alto Nivel . . . . . . . . . . . . . 128

5.6 RMS (Record Management System) . . . . . . . . . . . . . . . 137

5.6.1 Modelo de Datos . . . . . . . . . . . . . . . . . . . . . . 1395.6.2 Record Stores . . . . . . . . . . . . . . . . . . . . . . . 1405.6.3 Creación de un Record Store . . . . . . . . . . . . . . . 1415.6.4 Manipulación de Registros . . . . . . . . . . . . . . . . . 1445.6.5 Operaciones con Record Stores . . . . . . . . . . . . . . 1515.6.6 Búsqueda de Registros . . . . . . . . . . . . . . . . . . . 152

5.7 Comunicaciones en J2ME . . . . . . . . . . . . . . . . . . . . . 1535.7.1 Clases y Conexiones del Generic Connection Framework 1535.7.2 Comunicaciones HTTP . . . . . . . . . . . . . . . . . . 157

6 Introducción al DB2  169

6.1 Bases de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 1696.1.1 Objetivos de las Bases de Datos . . . . . . . . . . . . . 1706.1.2 Ventajas de las Bases de Datos . . . . . . . . . . . . . . 170

6.2 Sistema de Administración de Bases de Datos . . . . . . . . . 1716.3 Organización de Bases de Datos  . . . . . . . . . . . . . . . . . 173

6.3.1 Bases de Datos Jerárquicas . . . . . . . . . . . . . . . . 1736.3.2 Bases de Datos en Red . . . . . . . . . . . . . . . . . . 174

6.3.3 Bases de Datos Relacional . . . . . . . . . . . . . . . . 174

6.4 Introducción a DB2 UDB  . . . . . . . . . . . . . . . . . . . . . 1766.4.1 Características Generales del DB2 UDB  . . . . . . . . 177

6.5 DB2 UDB Versión 8.1 . . . . . . . . . . . . . . . . . . . . . . . 1806.5.1 Centro de Desarrollo . . . . . . . . . . . . . . . . . . . . 1806.5.2 Mejoras en XML Extender . . . . . . . . . . . . . . . . 1816.5.3 DB2 Warehouse Manager . . . . . . . . . . . . . . . . . 1826.5.4 Centro de Depósito de Datos de DB2 . . . . . . . . . . 1826.5.5 Asistentes de DB2 . . . . . . . . . . . . . . . . . . . . . 1836.5.6 Centro de Mandatos . . . . . . . . . . . . . . . . . . . . 183

Page 15: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 15/318

 

ÍNDICE GENERAL xv

7 WebSphere Studio 1857.1 ¿Que es WebSphere? . . . . . . . . . . . . . . . . . . . . . . . . 1857.2 Plataforma de Software . . . . . . . . . . . . . . . . . . . . . . 186

7.2.1 WebSphere for Commerce - Soluciones B2B . . . . . . . 1877.2.2 WebSphere for Commerce - Soluciones B2C . . . . . . . 1877.2.3 WebSphere for Commerce-Soluciones de Portal . . . . . 1887.2.4 WebSphere for Commerce-Soluciones Digital Media . . . 189

7.3 Productos WebSphere Studio . . . . . . . . . . . . . . . . . . . 1907.4 WebSphere Studio Application Developer . . . . . . . . . . . 192

7.4.1 Ventajas de Utilizar a WebSphere Studio Application Developer  . . . . . . . . . . . . . . . . . . . . . . . . . . 193

7.4.2 Desarrollando Aplicaciones Java . . . . . . . . . . . . . 1977.5 WebSphere Application Server . . . . . . . . . . . . . . . . . . 199

7.5.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . 1997.5.2 WebSphere Application Server Como Plataforma Para

el Comercio Electrónico . . . . . . . . . . . . . . . . . . 2007.5.3 Application Server - Advanced Edition . . . . . . . . . . 2017.5.4 Application Server - Enterprise Edition . . . . . . . . . 2027.5.5 Application Server - Standard Edition . . . . . . . . . . 2037.5.6 Servidor HTTP . . . . . . . . . . . . . . . . . . . . . . . 2037.5.7 Servidor de Aplicaciones . . . . . . . . . . . . . . . . . . 2037.5.8 Contenedor de EJB . . . . . . . . . . . . . . . . . . . . 204

7.5.9 Contenedor Web . . . . . . . . . . . . . . . . . . . . . . 2047.5.10 Contenedor de Clientes de Aplicaciones . . . . . . . . . 2057.5.11 Sistema Principal Virtual . . . . . . . . . . . . . . . . . 2057.5.12 Virtual Hosts (Hosts Virtuales) . . . . . . . . . . . . . 205

7.6 WCTME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2067.6.1 WebSphere Everyplace Micro Environment . . . . . . . 2077.6.2 WebSphere Everyplace Custom Environment . . . . . . 2077.6.3 J9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2077.6.4 WebSphere Studio Device Developer . . . . . . . . . . . 2077.6.5 Java 2 Micro Edition (J2ME) . . . . . . . . . . . . . . . 208

7.7 WebSphere Studio Device Developer . . . . . . . . . . . . . . . 208

7.7.1 Componentes de WebSphere Studio Device Developer . 2097.7.2 Herramienta de Desarrollo C (CDT) para Eclipse . . . . 2097.7.3 Arquitectura de Device Developer . . . . . . . . . . . . 2107.7.4 Utilización del IDE . . . . . . . . . . . . . . . . . . . . . 210

8 Descripción de la Aplicación 2178.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

Page 16: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 16/318

 

xvi ÍNDICE GENERAL

8.2 Estructuración . . . . . . . . . . . . . . . . . . . . . . . . . . . 2208.2.1 La Aplicación Móvil (Mobile Banking) . . . . . . . . . . 2208.2.2 La Aplicación Web . . . . . . . . . . . . . . . . . . . . . 254

8.3 Estructuras de Datos Utilizadas . . . . . . . . . . . . . . . . . . 279

9 Conclusiones 2859.1 Conclusiones Generales . . . . . . . . . . . . . . . . . . . . . . . 2859.2 Conclusiones Acerca de las Tecnologías y Software Utilizados . 2869.3 Líneas Futuras de Acción . . . . . . . . . . . . . . . . . . . . . 287

Bibliografía 289

Índice de Materias 291

Page 17: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 17/318

 

Índice de Figuras

1.1 Esquema General del Comercio Electrónico. . . . . . . . . . . . 5

1.2 Mark Weiser (1952-1999), el Visionario de la Computación Ubicua 121.3 La Cadena del Conocimiento . . . . . . . . . . . . . . . . . . . 151.4 La Era de la Información . . . . . . . . . . . . . . . . . . . . . 16

2.1 Sistema Telefónico Móvil . . . . . . . . . . . . . . . . . . . . . . 282.2 Un canal D-AMPS con 3 y 6 usuarios. . . . . . . . . . . . . . . 302.3 Algunos Juegos Conocidos. . . . . . . . . . . . . . . . . . . . . 382.4 Modelo Wap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.5 Modelo de la Red Wap. . . . . . . . . . . . . . . . . . . . . . . 432.6 Pilas de Protocolos TCP/IP y WAP. . . . . . . . . . . . . . . . 452.7 Modelo de Programación Wap. . . . . . . . . . . . . . . . . . . 48

2.8 Modelo Proxy para WAP 2.0. . . . . . . . . . . . . . . . . . . . 483.1 Arquitectura de un Portal Móvil. . . . . . . . . . . . . . . . . . 58

4.1 Mecanismo de Mensajes . . . . . . . . . . . . . . . . . . . . . . 654.2 Proceso Compilación y Ejecución . . . . . . . . . . . . . . . . . 674.3 Jerarquía y Métodos de las Principales Clases Para Crear Servlets. 844.4 Ciclo de Vida de un Servlet. . . . . . . . . . . . . . . . . . . . . 874.5 Requerimiento de un Archivo JSP. . . . . . . . . . . . . . . . . 934.6 Requerimiento de un Servlet. . . . . . . . . . . . . . . . . . . . 94

5.1 Arquitectura de la Plataforma Java 2 de Sun. . . . . . . . . . . 99

5.2 Ubicación de las Tecnologías Java. . . . . . . . . . . . . . . . . 1015.3 Proceso de Verificación. . . . . . . . . . . . . . . . . . . . . . . 1055.4 Entorno de Ejecución de J2ME. . . . . . . . . . . . . . . . . . . 1105.5 Ciclo Vida de un MIDlet. . . . . . . . . . . . . . . . . . . . . . 1175.6 Estados de un MIDlet. . . . . . . . . . . . . . . . . . . . . . . . 1185.7 Jerarquía de Clases. . . . . . . . . . . . . . . . . . . . . . . . . 1245.8 Un MIDlet y el RMS. . . . . . . . . . . . . . . . . . . . . . . . 139

xvii

Page 18: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 18/318

 

xviii ÍNDICE DE FIGURAS 

5.9 Acceso a un RMS a Través de un MIDlet Suite. . . . . . . . . . 1405.10 Esturctura de Un Record Store. . . . . . . . . . . . . . . . . . . 1415.11 Ejemplo RMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1515.12 Jerarquía de Interfaces. . . . . . . . . . . . . . . . . . . . . . . 1545.13 Estados de una Conexión HTTP. . . . . . . . . . . . . . . . . . 158

6.1 Estructura de Una Base de Datos . . . . . . . . . . . . . . . . . 1726.2 Sistema de Administracion de Bases de Datos . . . . . . . . . . 1726.3 Modelo de Bases de Datos Jerárquica . . . . . . . . . . . . . . . 1746.4 Modelo de Bases de Datos en Red . . . . . . . . . . . . . . . . 1756.5 Modelo de Bases de Datos Relacional . . . . . . . . . . . . . . . 176

6.6 AIV Extender . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1796.7 XML Extender . . . . . . . . . . . . . . . . . . . . . . . . . . . 1796.8 Centro de Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . 1816.9 Asistente Para Crear Tabla . . . . . . . . . . . . . . . . . . . . 1846.10 Centro de Mandatos . . . . . . . . . . . . . . . . . . . . . . . . 184

7.1 La familia del WebSphere Studio. . . . . . . . . . . . . . . . . . 1917.2 WebSphere Studio, entorno de desarrollo . . . . . . . . . . . . . 1917.3 Plataforma de Eclipse. . . . . . . . . . . . . . . . . . . . . . . 1937.4 Asistente de Proyecto Java. . . . . . . . . . . . . . . . . . . . . 1987.5 Paquete Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

7.6 Diálogo de Configuración de Ejecución. . . . . . . . . . . . . . . 2007.7 WebSphere para e-bussines. . . . . . . . . . . . . . . . . . . . . 2017.8 Barra de herramientas de WSDD. . . . . . . . . . . . . . . . . . 2117.9 Métodos de un Objeto. . . . . . . . . . . . . . . . . . . . . . . . 2137.10 Nuevo Dispositivo Emulador. . . . . . . . . . . . . . . . . . . . 215

8.1 Casos de Usos del Sistema. . . . . . . . . . . . . . . . . . . . . 2198.2 Arquitectura del Sistema. . . . . . . . . . . . . . . . . . . . . . 2218.3 Diagrama de Clases de la Aplicación Móvil. . . . . . . . . . . . 2228.4 La Clase Pantalla . . . . . . . . . . . . . . . . . . . . . . . . . . 2248.5 La Clase MPrincipal. . . . . . . . . . . . . . . . . . . . . . . . . 224

8.6 La Clase MenuCuenta. . . . . . . . . . . . . . . . . . . . . . . . 2258.7 La Clase Comunicacion. . . . . . . . . . . . . . . . . . . . . . . 2268.8 La Clase Transferencia . . . . . . . . . . . . . . . . . . . . . . . 2268.9 La Clase Balance. . . . . . . . . . . . . . . . . . . . . . . . . . . 2278.10 La Clase Movimiento. . . . . . . . . . . . . . . . . . . . . . . . 2288.11 La Clase Cuenta. . . . . . . . . . . . . . . . . . . . . . . . . . . 2298.12 Pantalla Principal Mobile Banking . . . . . . . . . . . . . . . . 231

Page 19: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 19/318

 

ÍNDICE DE FIGURAS  xix

8.13 Menú Principal. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2338.14 Pantallas de Ingreso al Sistema. . . . . . . . . . . . . . . . . . . 2348.15 Pantalla de Aviso de Conexión. . . . . . . . . . . . . . . . . . . 2358.16 Información del Cliente. . . . . . . . . . . . . . . . . . . . . . . 2368.17 Lista de Cuentas. . . . . . . . . . . . . . . . . . . . . . . . . . . 2378.18 Menú de Operaciones de una Cuenta. . . . . . . . . . . . . . . 2388.19 Información de Saldo de una Cuenta. . . . . . . . . . . . . . . 2408.20 Ingreso de Datos Para una Transferencia. . . . . . . . . . . . . 2418.21 Confirmación de la Transferencia. . . . . . . . . . . . . . . . . . 2428.22 Resultado Satisfactorio de una Transferencia. . . . . . . . . . . 2438.23 Error en una Transferencia. . . . . . . . . . . . . . . . . . . . . 244

8.24 Lista de Movimientos de una Cuenta por Fecha y Hora. . . . . 2458.25 Detalle de un Movimientos en Particular. . . . . . . . . . . . . 2468.26 Pantalla de Advertencia al Usuario. . . . . . . . . . . . . . . . . 2478.27 Advertencia al Usuario. . . . . . . . . . . . . . . . . . . . . . . 2488.28 Pantallas Para Configurar la URL del Servidor. . . . . . . . . . 2498.29 Pantalla de Ayuda del Sistema. . . . . . . . . . . . . . . . . . . 2508.30 RecordStores Utilizados por la Aplicación. . . . . . . . . . . . . 2518.31 Proceso del Mensaje Calculado. . . . . . . . . . . . . . . . . . . 2538.32 Modelo-Vista-Controlador. . . . . . . . . . . . . . . . . . . . . . 2558.33 Diagrama de Paquetes. . . . . . . . . . . . . . . . . . . . . . . . 2568.34 Diagrama de Clases. . . . . . . . . . . . . . . . . . . . . . . . . 2578.35 Funciomamiento del Sistema. . . . . . . . . . . . . . . . . . . . 2588.36 Pantalla Principal de Home Banking. . . . . . . . . . . . . . . . 2608.37 Mensaje de Error. . . . . . . . . . . . . . . . . . . . . . . . . . 2618.38 Pantalla de Modificación de Claves. . . . . . . . . . . . . . . . . 2628.39 Pantalla de Listado de Cuentas. . . . . . . . . . . . . . . . . . . 2638.40 Detalle de una Cuenta Determinada. . . . . . . . . . . . . . . . 2648.41 Transferencia de Fondos Hacia Otra Cuenta. . . . . . . . . . . . 2658.42 Mensajes de Estado del Proceso de Transferencia. . . . . . . . . 2668.43 Pantalla de Listado de Movimientos. . . . . . . . . . . . . . . . 2678.44 Pantalla que Muestra Información de Mobile Banking. . . . . . 268

8.45 Pantalla de Login de Banking. . . . . . . . . . . . . . . . . . . 2698.46 Pantalla de la Sección Clientes. . . . . . . . . . . . . . . . . . . 2708.47 Pantalla para Ingresar Nuevos Clientes. . . . . . . . . . . . . . 2718.48 Datos del Nuevo Cliente . . . . . . . . . . . . . . . . . . . . . . 2728.49 Listado de Cuentas. . . . . . . . . . . . . . . . . . . . . . . . . 2738.50 Información de una Cuenta . . . . . . . . . . . . . . . . . . . . 2748.51 Movimientos de una Cuenta. . . . . . . . . . . . . . . . . . . . 275

Page 20: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 20/318

 

xx ÍNDICE DE FIGURAS 

8.52 Operaciones Sobre una Cuenta. . . . . . . . . . . . . . . . . . . 2768.53 Mensajes de Error que Maneja el Sistema. . . . . . . . . . . . . 2778.54 Pantalla para el Cambio de Clave. . . . . . . . . . . . . . . . . 2788.55 Creación de Usuarios . . . . . . . . . . . . . . . . . . . . . . . . 2798.56 Listado de Accesos . . . . . . . . . . . . . . . . . . . . . . . . . 2808.57 Tablas que Integran la Base de Datos del Sistema. . . . . . . . 281

Page 21: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 21/318

 

Índice de Tablas

4.1 Categorías de Variables. . . . . . . . . . . . . . . . . . . . . . . 72

4.2 Tipos Primitivos de Datos . . . . . . . . . . . . . . . . . . . . . 734.3 Operadores de asignación. . . . . . . . . . . . . . . . . . . . . . 754.4 Operadores relacionales. . . . . . . . . . . . . . . . . . . . . . . 76

5.1 Librerías de configuración CDC. . . . . . . . . . . . . . . . . . 1085.2 Librerías de configuración CLDC. . . . . . . . . . . . . . . . . . 1095.3 Librerías del Fondation Profile. . . . . . . . . . . . . . . . . . . 1115.4 Librerías del Personal Profile. . . . . . . . . . . . . . . . . . . . 1125.5 Librerías del MIDP Profile. . . . . . . . . . . . . . . . . . . . . 1145.6 Clases del Paquete javax.microedition.midlet. . . . . . . . . . . 1195.7 Métodos de la Clase Display. . . . . . . . . . . . . . . . . . . . 126

5.8 Métodos de la Clase Displayable. . . . . . . . . . . . . . . . . . 1275.9 Tipos de Commands. . . . . . . . . . . . . . . . . . . . . . . . . 1275.10 Métodos de la Clase Command. . . . . . . . . . . . . . . . . . . 1285.11 Tipos de Alerta. . . . . . . . . . . . . . . . . . . . . . . . . . . 1295.12 Métodos de la Clase List. . . . . . . . . . . . . . . . . . . . . . 1315.13 Métodos de la Clase Form. . . . . . . . . . . . . . . . . . . . . . 1335.14 Métodos de la Clase StringItem. . . . . . . . . . . . . . . . . . 1355.15 Métodos de la Clase ImageItem. . . . . . . . . . . . . . . . . . 1375.16 Métodos de la Clase TextField. . . . . . . . . . . . . . . . . . . 1385.17 Métodos Generales de la Clase RecordStore. . . . . . . . . . . . 1435.18 Métodos Para Manejo de Registros. . . . . . . . . . . . . . . . . 144

5.19 Métodos de la Clase Connector. . . . . . . . . . . . . . . . . . . 1555.20 Tipos de Permisos. . . . . . . . . . . . . . . . . . . . . . . . . . 1565.21 Métodos en la Etapa de Establecimiento. . . . . . . . . . . . . 1595.22 Tipos de peticiones. . . . . . . . . . . . . . . . . . . . . . . . . 1595.23 Campos de la Cabezera. . . . . . . . . . . . . . . . . . . . . . . 160

xxi

Page 22: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 22/318

Page 23: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 23/318

 

Capítulo 1

Introducción

1.1 Vision Global

La implantación en la sociedad de las denominadas Nuevas Tecnologías de la Comunicación e Información , está produciendo cambios insospechados res-pecto a los originados en su momento por otras tecnologías, como fueron laimprenta, y la electrónica. Sus efectos y alcance, no sólo se sitúan en el te-

rreno de la información y comunicación, sino que lo sobrepasan para llegar aprovocar y proponer cambios en la estructura social, económica, laboral, ju-rí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: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 24/318

 

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. El

aumento 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 cada

voluntario ayuda a que ésta crezca.Y todo este avance tecnológico no es más que el inicio de un mundo de

posibilidades 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: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 25/318

 

1.2. COMERCIO ELECTRÓNICO 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 Comercio Electrónico

1.2.1 Concepto de Comercio Electrónico

Existen muchas definiciones de comercio electrónico. Una de la más completas,es la siguiente:

“Transacciones de negocios efectuadas mediante redes públicas o privadas,incluyendo transacciones públicas y privadas que utilizan Internet como ins-trumento de entrega. Estas transacciones incluyen tranferencias financieras,intercambios en línea, subasta, entrega de productos y servicios, actividades de la cadena de abastecimiento y redes de negocios integradas” [6].

El concepto de Comercio Electrónico (e-commerce  en inglés) hace referen-cia a una nueva forma de hacer negocios basada en el uso de las nuevas tecno-

logías capaces de automatizar las transacciones comerciales que deben realizarlas empresas en sus actividades comerciales mediante mecanismos electróni-cos, es decir, sin la utilización de los mecanismos tradicionales como son losdocumentos basados en papel.

El término Comercio Electrónico se utiliza para referirse a cualquier rela-ción electrónica o digital que lleve asociada un intercambio de valor, ya seaun bien o un servicio, entre varias entidades comerciales (generalmente dos otres).

1.2.2 Otras Concepciones del Comercio Electrónico

• El Comercio Electrónico (e-Commerce ) es la simple replicación de unnegocio en Internet u otro medio electrónico que permita recoger lospedidos u ofertar los productos y/o servicios desde o hacia clientes oproveedores. Por ejemplo vender zapatos en la página web de la empresa,recibir los pedidos desde la web, por ejemplo, en forma de e-mail o a

Page 26: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 26/318

 

4 CAPÍTULO 1. INTRODUCCIÓN 

una base de datos y hacer los despachos. Muchas veces esta actividadpuede generar duplicación de tareas o tareas extras para asentar esastransacciones en los sistemas digitales centrales del negocio.

• El hacer Negocios Electrónicos (e-Business ) integra no sólo el e-Commercesino también la operativa interna, por ende se accede a la infraestruc-tura informática, los procesos de las ventas electrónicas, en definitivatoda la administración del negocio está conectada a la página web y lastransacciones que en ella se desencadenen. El sistema organizacional einformático está por ende unificado con el de la web corporativa, el ne-gocio está realmente en línea (on-line). El sitio web pasa a ser una bocade expendio más así como lo son los mostradores en las sucursales, enlos intermediarios o la propia casa matriz de la empresa. En términosrealmente simples se puede decir que cuando alguien realiza una compraen el sitio web, esa transacción se refleja de manera inmediata en lossistemas informáticos de la empresa, a su vez que dispara los procesosadministrativos, financieros y de despacho necesarios.

1.2.3 Esquema General

El Comercio electrónico se puede definir como un intercambio electrónico dedatos que se utilizan para dar soporte a transacciones comerciales, es decir, unintercambio de valores entre un vendedor o comerciante (ofertante de bienesy servicios) y un comprador (demandante de bienes y servicios). [7]

La mayor parte de los sistemas actuales de comercio electrónico consistebásicamente en un vendedor que oferta sus productos a través de un catálogo(preferentemente actualizado) y unos compradores de dicho producto quienesconsultan el catálogo ofrecido por el vendedor y a su vez tienen la posibilidadde comprar dichos productos.

Se puede sintetizar el ciclo de compra en las siguientes etapas:

• La entidad vendedora (ofertante) oferta sus productos mediante un ca-talogo actualizado.

• La entidad compradora (demandante) consulta los productos ofertados.

• La entidad compradora (demandante) realiza el pedido.

• La entidad vendedora (ofertante) acepta el pedido y lo confirma.

Page 27: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 27/318

 

1.2. COMERCIO ELECTRÓNICO 5

• Finalmente es necesario realizar la entrega del producto y el pago (ambosprocesos se pueden realizar indistintamente de forma electrónica o no);ver fig. 1.1 de la pág. 5.

Todos los intercambios entre compradores y vendedores en el escenarioelectrónico o virtual se realizan de forma no presencial mediante la utilizaciónde redes de transmisión como el caso de la red Internet.

Figura 1.1: Esquema General del Comercio Electrónico.

La mayoría de las veces los compradores y vendedores en el escenario elec-trónico ni siquiera se conocen y en el caso de comportamiento deshonesto de

alguno de ellos no existen evidencias físicas que pueden utilizarse como pruebaen caso de litigio. Por lo tanto es necesario que se pase a un escenario segurode comercio electrónico o virtual.

1.2.4 Modelos de Comercio Electrónico

B2C (Bussines to Consumer) (Negocio a Cliente Final)

Es el negocio orientado hacia el consumidor final (internauta particular quenavega por la red).

Las empresas ofrecen sus productos a particulares a través de su portalweb. El único requisito es conectarse a su web y hacer un pedido.

Se considera el original comercio electrónico.

Las estadísticas indican que cada vez se compra más por Internet, pero laevolución es lenta comparada con las expectativas que se habían creado.

Page 28: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 28/318

 

6 CAPÍTULO 1. INTRODUCCIÓN 

Tiene el riesgo de que los clientes pueden comparar precios fácilmente, conlo que el marketing y el posicionamiento de la marca son muy importantes.

Gran parte de su éxito depende de:

• La originalidad del negocio.

• La comodidad para el comprador.

• La rapidez de la entrega.

• El precio (ahora con respecto al comercio tradicional).

B2B (Bussines to Bussines) (Negocio a Negocio)

A este tipo de comercio también se lo conoce como comercio mayorista. Eneste caso las entidades comerciales son empresas.

Congrega a proveedores, compradores e intermediarios que se ofrecen mu-tuamente sus productos en base a unas reglas de negocios fijadas.

Es el verdadero impulsor del comercio electrónico.

El volumen de negocio entre empresas es muy superior al negocio dirigidoal cliente final.

C2C (Consumer to Comsumer) (Consumidor a Consumidor)

La negociación se desarrolla entre personas con intereses similares indistinta-mente de la parte compradora y vendedora. La comunicación se realiza deforma espontánea y los participantes pueden asumir roles de comprador, ven-dedor o ambos. Requiere sistema de intermediario para garantizar la confianzaentre los participantes.

Un ejemplo podría ser un sitio de subastas, donde un particular ofrece unproducto y otro lo compra. Es necesario pasar por un intermediario, que es lasubasta, con lo que se podría resumir en dos negocios B2C paralelos.

Otra categoría de comercio electrónico que seguramente impactará en elfuturo es Mobil-Commerce (M-Commerce) o comercio electrónico a través deteléfonos móviles.

Page 29: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 29/318

 

1.3. M-COMMERCE  7

Se fundamenta en lo siguiente:

• La penetracion de la telefonía móvil.

• El acceso gratuito/tarifa plana a Internet.

• La implantación de la tarjeta inteligente. Los móviles inteligentes.

• Telefonía inalámbrica digital.

• La convergencia: Teléfono fijo/móvil/Internet.

El potencial de usuarios de teléfonos móviles es superior al de los internau-tas.

Los estudios de empresas consultoras de comercio electrónico apuestan porel comercio electrónico móvil, como el de mayor desarrollo e impacto futuro.

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

El comercio electrónico se está transformando lentamente en m-commerce , unnuevo 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 es-pecialmente el WAP , facilitaron el acceso móvil e interactivo a datos, abriendonuevas posibilidades para el comercio. Pero esas oportunidades tienen algunasdificultades como el ancho de banda limitado que aún complica las transmisio-

nes, y la interfaz de usuario de los dispositivos móviles es limitada en tamaño.Además, los costos de acceso son altos, y el poder de cómputo de estos dispo-sitivos 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.

Page 30: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 30/318

 

8 CAPÍTULO 1. INTRODUCCIÓN 

• Información oportuna georeferenciada mientras el usuario está en movi-miento.

• 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.

1.4 Computación Ubicua o Pervasiva

Mark Weiser, en Septiembre de 1991, describió su visión de lo que él llamabacomputación ubicua , hoy llamada computación pervasiva . La esencia de suvisión era la creación de entornos llenos de computación y de capacidad decomunicación, todo integrado de forma inapreciable junto a las personas. Lavisió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.4.1 Principios

Uno de los principales objetivos de la computación ubicua es hacer desaparecera los dispositivos computacionales haciéndolos situarse en un segundo plano.

Este objetivo de crear dispositivos que se mezclen en la vida cotidianahasta que lleguen a ser indistinguibles supone una potencial revolución que

Page 31: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 31/318

 

1.4. COMPUTACIÓN UBICUA O PERVASIVA 9

puede hacer cambiar el modo de vida diario. Las personas se centrarán enlas tareas que deben hacer, no en las herramientas que utilizan, porque sepretende que esas herramientas pasen desapercibidas.

El significado de enviar la computación a un “segundo plano” está referidoa 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 compu-tació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 capa-cidad 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 de

Page 32: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 32/318

 

10 CAPÍTULO 1. INTRODUCCIÓN 

la 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.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 objetos

cotidianos. 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 la Web y escenarios

de comercio electrónico. Sin embargo, a largo plazo, esta continua tenden-cia tecnológica puede dar lugar a la fusión del computador con los objetoscotidianos típicos para que se vuelva literalmente invisible.

1.4.2 Hacia las Cosas Inteligentes e Interconectadas

Hoy, Internet  conecta casi todos los computadores del mundo. Desde un pun-to de vista tecnológico, se podría describir a la computación ubicua como laposibilidad de conectar todo lo que hay en el mundo a Internet, para propor-

cionar información acerca de cualquier cosa, en cualquier momento, en cual-quier sitio. Por decirlo de otra forma, el término computación ubicua  significala omnipresencia de computadores muy pequeños interconectados sin cablesque se incrustan de forma casi invisible en cualquier tipo de objeto cotidiano.Usando pequeños sensores, estos procesadores incrustados pueden detectar elentorno que les rodea y equipar a su objeto con capacidades tanto de procesarinformación como de comunicación.

Page 33: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 33/318

 

1.4. COMPUTACIÓN UBICUA O PERVASIVA 11

1.4.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 multiplica pordos 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 decómputo de los procesadores avanza muy rápidamente. Pero no solo la capa-cidad de cómputo de los procesadores, sino también la capacidad de almace-namiento, el ancho de banda para las comunicaciones, en resumen, cada poco

tiempo se tiene dispositivos más baratos, más pequeños y más potentes. Y noparece que 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.2 de la pág. 12, 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ía

demasiado 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 , oampliamente difundida con un enfoque ligeramente diferente. Aunque su vi-sión siga siendo todavía integrar el procesamiento de la información en objetoscotidianos de forma casi invisible, su objetivo principal es utilizar tales objetosen un futuro próximo en el ámbito del comercio electrónico y para té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 34: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 34/318

 

12 CAPÍTULO 1. INTRODUCCIÓN 

Figura 1.2: 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ón

en 1988 y el oficial primero de la tecnología en 1996, simultáneamente fueautor de más de 75 publicaciones.

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

“Es un hecho de la realidad que los vertiginosos avances que presentan las TICs (Tecnologías de la Información y de las Comunicaciones) han converti-do al planeta en lo que se ha de llamar la aldea global ”. [1], permitiendo que la

sociedad 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 35: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 35/318

 

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

1.5.1 Definición de Conocimiento

El conocimiento es materia de estudio de distintas disciplinas, tales como lafilosofí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 e incorporar nuevas experiencias”. [12]

1.5.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; conjuntocoherente 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 36: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 36/318

 

14 CAPÍTULO 1. INTRODUCCIÓN 

1.5.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.5.4 Ciclo del Conocimiento

Se fundamenta en dos pilares:

— La cadena del conocimiento.

Page 37: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 37/318

 

1.5. LA SOCIEDAD DE LA INFORMACIÓN Y EL CONOCIMIENTO 15

— 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.3 de la pág. 15). Ambostipos de conocimientos son necesarios y se produce una realimentación conti-nua entre 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.3: La Cadena del Conocimiento

1.5.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; verfig. 1.4 de la pág. 16.

Page 38: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 38/318

 

16 CAPÍTULO 1. INTRODUCCIÓN 

Figura 1.4: 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 una

cultura 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 dela nueva 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 39: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 39/318

 

1.5. LA SOCIEDAD DE LA INFORMACIÓN Y EL CONOCIMIENTO 17

1.5.6 Gestión del Conocimiento

La Gestión del Conocimiento corresponde al conjunto de actividades desarro-lladas para utilizar, compartir, desarrollar y administrar los conocimientos queposee una organización y los individuos que en esta trabajan, de manera deque 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 de

informació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 (repo-sitorios) 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.5.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 40: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 40/318

 

18 CAPÍTULO 1. INTRODUCCIÓN 

• 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 perso-nas que lo necesitan, en el lugar y momento oportuno.

1.6 Comercio Electrónico en la Sociedad del Cono-

cimientoA mediados de los noventa se inició la utilización de Internet con fines comer-ciales, 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 la nece-sidad de ofrecer valor, interactividad y el trato directo e inmediato constituyenelementos diferenciados de primer nivel, siendo uno de los ejemplos más sólidosen la relación cliente-empresa, el B2C.

Page 41: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 41/318

 

1.7. COMERCIO ELECTRÓNICO BANCARIO 19

1.7 Comercio Electrónico Bancario

1.7.1 ¿Qué es Banca Electrónica?

Los sistemas de banca electrónica  posibilitan el acceso a una serie de serviciosa partir de una PC con conexión a Internet. La comodidad que brindan estanta que una vez que el cliente se acostumbra a usarlos le resulta difícil volveratrás. Con ello no sólo se ahorra tiempo, sino que también la mayor parte delas veces el empleo de los cajeros automáticos y la realización de transaccionespor teléfono o mediante el correo son innecesarios.

La banca  emplea diversos nombres para referirse a estos servicios como PC banking  (que resalta el uso de las computadoras personales); home banking  (olo que es lo mismo, banca desde el hogar); electronic banking  (porque se tratade una banca electrónica), y el de Internet banking (que se refiere directamenteal empleo de la red mundial).

Este servicio no es nuevo, ya que desde hace años existen el acceso tele-fónico (banca telefónica) y los cajeros automáticos, que ya ofrecían soluciones

tempranas de autoservicio y de gestión de las propias cuentas desde casa. Lorealmente novedoso de la banca digital y su motor de desarrollo y expansión esla oferta de nuevos servicios de valor añadido, sólo posibles a través de Internetu otros medios telemáticos.

En general, las web de bancos y cajas no son sino una réplica virtual dealgunos de los servicios ofrecidos al cliente en la ventanilla, con la comodidadde estar disponibles las 24 horas del día y desde cualquier lugar. De hecho, encuanto a la accesibilidad, la posibilidad de conectarse al banco mediante unteléfono móvil GSM con mensajes SMS o con protocolo WAP para conocerel estado del crédito o si ha llegado la transferencia tan esperada, supone unavance importante hacia la globalización del sector bancario.

Internet, líneas telefónicas, telefonía celular GSM, harán posibles las aplica-ciones multimedia en los teléfonos celulares, una gran variedad de tecnologíasdespliegan un inmenso abanico de posibilidades para crear nuevas estrategiasque optimicen la relación de las grandes empresas, entre ellas los bancos y labolsa de valores, con sus clientes, buscando ofrecer nuevos productos y servi-cios mejorados y personalizados, teóricamente más baratos.

Page 42: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 42/318

 

20 CAPÍTULO 1. INTRODUCCIÓN 

1.7.2 Ventajas

El cliente del banco puede utilizar una computadora y una conexión a Internetpara acceder a sus cuentas desde cualquier sitio. Este servicio funciona las 24horas, todos los días de la semana. La confirmación de las transacciones serealiza con gran rapidez. El tiempo de procesamiento es similar al empleadopor un cajero automático. La variedad de las transacciones es indudablementeamplia. Se puede desde verificar el balance de una cuenta hasta solicitar unpréstamo.

1.7.3 Desventajas

El tiempo inicial que se puede invirtir es significativo (los diseñadores de estosportales trabajan en acortar estos pasos). Primero es necesario proporcionarleciertos datos al sistema antes de que las operaciones puedan realizarse conéxito. Cada vez que se cambie de banco o de programa se tendrá que introducirnuevamente los datos al sistema, salvo que el sistema esté operando sobreInternet. Este inconveniente parece ir reduciéndose gracias a la competencia.

1.7.4 Banca a Través del Teléfono Móvil

En una sociedad en la que el número de usuarios de telefonía móvil superaal de usuarios de Internet e incluso al de abonados de líneas fijas, este canalestá cobrando cada vez mayor importancia para el éxito de los proveedores deservicios bancarios.

Mensajes Cortos

Algunos bancos y cajas como Banco Sabadell, Banesto, Banco Santander (Es-paña), han lanzado servicios de telebanca móvil, que permiten a los clientescada día más exigentes disfrutar de servicios de valor añadido además de losmismos servicios de telebanca fija convencionales. Los usuarios equipados conun teléfono móvil GSM capaz de recibir y enviar mensajes cortos de texto(SMS), pueden acceder cómodamente desde cualquier lugar donde se encuen-tren y a cualquier hora del día o de la noche a una serie de funciones como:

Page 43: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 43/318

 

1.7. COMERCIO ELECTRÓNICO BANCARIO 21

• Consulta de información bancaria: listado de cuentas, saldos y movi-mientos, gasto acumulado de su tarjeta de crédito, etc. La petición deinformación se puede realizar de dos maneras:

— Con mensajes de texto: Se envía un mensaje de texto al númerodel banco o caja correspondiente y se recibe otro mensaje de textocon la información solicitada.

— Con llamada telefónica: Se llama al número del banco o caja co-rrespondiente (desde un teléfono fijo o desde su móvil), se solicitala recepción de la información y la entidad financiera. Llega larespuesta en un mensaje de texto.

• Programación para la recepción automática de información bancaria deinterés para el cliente.

• Programación para la recepción automática de alarmas cuando los saldosde sus cuentas rebasen a la alza o a la baja las cantidades que el clientedetermine.

Este servicio de telebanca GSM no lleva asociados gastos de activaciónni cuotas mensuales adicionales. El precio de las llamadas y de los mensajes

es el habitual, sujeto a las variaciones horarias, que deberá consultar con laoperadora telefónica. Tan sólo se necesita un terminal GSM con capacidadde recepción y envío de mensajes cortos, característica ofrecida por todas lasoperadoras y soportada en la práctica totalidad de modelos.

Internet en el Móvil

Sin embargo, la tecnología de mensajes SMS fue reemplazada. El siguientepaso en la evolución de la telefonía celular hace uso de la tecnología WAP, quepermite que se pueda acceder a los contenidos de Internet desde un teléfonomóvil en un navegador WAP. Gracias a ésta tecnología, los bancos podránofrecer a sus clientes servicios financieros inalámbricos seguros y altamentepersonalizados.

El cliente obtiene todas las ventajas del acceso a servicios de banca enInternet, pero sin necesidad de disponer de una conexión fija ni de un orde-nador, por lo que puede accederlos en el tren o en el coche, mientras espera

Page 44: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 44/318

 

22 CAPÍTULO 1. INTRODUCCIÓN 

en el aeropuerto o pasea por la montaña. No se requieren conocimientos deinformática ni hay que configurar complicados programas.

La navegación con el móvil es intuitiva y el software necesario ya estáinstalado de serie en el teléfono. Por su parte, los bancos y cajas puedenofrecer servicios totalmente nuevos y rentables, como la presentación y pago defacturas a través del teléfono móvil, consulta instantánea a mercados bursátilesy compra-venta de acciones, además de todos los servicios disponibles paraInternet, sin gastos adicionales importantes para las entidades, puesto queWAP aprovecha la inversión ya realizada en soluciones bancarias por Internet.El único límite viene impuesto por la imaginación de los bancos y cajas a la

hora de ofertar servicios novedosos y especialmente atractivos para aumentarsus ingresos y la fidelidad de sus clientes.

Con la aparición de los móviles de tercera generación, haciendo uso de latecnología UMTS (Universal Mobile Telecommunications Standard), es po-sible velocidades de transmisión de megabits por segundo, abriendo la puertaa aplicaciones multimedia de gran ancho de banda. Los teléfonos vienen ca-da vez equipados con pantallas más grandes de mayor resolución y harán delordenador portátil una herramienta de la prehistoria informática.

Un teléfono móvil actual puede ejecutar aplicaciones como agenda, juegoso cualquier otra que emplee la tecnología Java J2ME (Java para móviles),

además de captar imágenes fijas o en movimiento, con conexión a Internet ycaracterísticas básicas de reconocimiento de voz.

Hoy en día los proveedores de servicios bancarios están desarrollando apli-caciones que corren en el dispositivo móvil y tienen conexión a Internet, per-mitiendo el acceso a la información que reside en las aplicaciones centralesde los bancos. Todo gracias a las tecnologías J2ME y GPRS (Servicio deRadio de Paquetes Generales) que permite tarifar al usuario por volumen deinformación transferida y no por tiempo de conexión o tiempo de aire, lo cualreduce costos para los clientes.

1.7.5 Seguridad en Operaciones Electrónicas

Los mecanismos de seguridad implantados en la mayoría de bancos y cajas noson completamente satisfactorios para una actividad como la bancaria, en laque el usuario no sólo consulta saldos y movimientos de sus cuentas y tarjetas,sino que también puede efectuar transferencias y traspasos, así como comprar

Page 45: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 45/318

 

1.7. COMERCIO ELECTRÓNICO BANCARIO 23

y vender acciones. No se puede admitir que los bancos se tarden mucho más enla implantación de certificados digitales como solución para la identificaciónbilateral de las partes implicadas en las transacciones a través de Internet.Queda por ver hacia qué tipo de soluciones tecnológicas se caminará en otrosmedios de acceso que irán volviéndose paulatinamente más populares como laTV interactiva digital o el teléfono celular con acceso a Internet.

Un banco en Internet se presenta a sus clientes a través de una Web. Estaes la cara y el interfaz a través del cual éstos interactúan con sus activos,usando para ello un simple navegador. Como primera medida, la máquinadonde dicho WebSite está situado no es la máquina donde están los datos de

los usuarios. Es el aplicativo Web o WAP (si se trata de telefonía celular) elque, cuando es necesario, accede a la verdadera máquina o Host en la que seencuentran los datos reales de los usuarios.

El muro de fuego: Existe un primer nivel de seguridad física que protegelos datos almacenados en el banco.

La red a la que pertenece la máquina donde se halla ubicada este interfazo Web del banco, está protegida por lo que se conoce como un muro de fuego(firewall en inglés). Esto quiere decir que hay una barrera ante ella que va arechazar sistemáticamente todo intento de conexión no controlada, basándoseen una política de reglas que se establecen en dicho firewall. Es decir, sólo

se admitirán conexiones a ciertos puertos, de determinadas procedencias, condeterminados protocolos, etc.

Los principales elementos en los que se basa el sistema de seguridad de labanca electrónica son:

Las claves: Clave personal, PYN o clave secreta. Cuando accedemos albanco en Internet, lo primero que se pedirá es un código de usuario y unacontraseña. Al tercer intento consecutivo erróneo (incluso si cada uno de losintentos va espaciado en el tiempo) el sistema expulsa al tenedor de la tarjeta,debiendo identificarse nuevamente ante el banco para reactivarla.

Identificación operativa. Para todas aquellas operaciones que vayan másallá de las meras consultas, como por ejemplo realizar una transferencia, elsistema va a solicitar una segunda contraseña con el fin que le se rectifique ladecisión. Se ofrece la posibilidad de cambiar esta clave siempre que se desee.

No obstante, el uso de claves puede no ser todo lo seguro que es deseableen un negocio de estas características, ya que si alguien con malas intenciones

Page 46: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 46/318

 

24 CAPÍTULO 1. INTRODUCCIÓN 

la llega a conocer, por el motivo que sea, podría hacerse pasar perfectamentepor alguien más.

El certificado digital: Un certificado es un documento electrónico, emitidopor una Entidad Certificadora, que identifica de forma segura al poseedor delmismo, evitando la suplantación de identidad por terceros. Es el componenteesencial de la firma electrónica.

Es una herramienta que garantiza la identidad de los participantes en unatransacción que requiera altos niveles de seguridad. Mediante él se demuestraa la máquina que recibe la conexión que se es quien realmente dice ser. Estose conoce con el nombre de identificación.

El servidor Web del banco en Internet también es poseedor de su corres-pondiente certificado digital y demuestra con ello que el Banco X es realmenteel Banco X y no se está enviando los datos a un impostor que se ha metidopor medio y pretende suplantarle con malas intenciones, aprovechándose deque no se puede ver dónde está realmente llegando a la conexión.

Servidores seguros: El servidor Web del banco es un servidor seguro, estoes, establece una conexión con el cliente de manera que la información circulaa través de Internet codificada, mediante algoritmos, lo que asegura que seainteligible sólo para el servidor y el navegador que accede al Web, entendiéndo-se ambos mediante un protocolo que se ha dado en llamar SSL. De este modo,ninguna persona externa, que eventualmente estuviera espiando ese trasiegode información, podrá descifrar los datos confidenciales mientras viajan haciay desde la red del banco. Un servidor seguro proporciona tres elementos deseguridad:

• Autenticidad. Se puede tener la seguridad de que los datos se estánenviando al auténtico servidor del banco, al que le ha sido expedido elcorrespondiente certificado digital. De igual forma, a través del certifica-do digital personal, el cliente se puede identificar ante el banco durantelas transacciones delicadas.

• Confidencialidad. Los datos, en el caso de ser capturados por alguien,no podrán ser interpretados ya que viajan de modo codificado.

• Integridad. Los datos llegan al servidor del banco sin sufrir alteraciónalguna por el camino, ya que si ésta se produce, por mínima que sea, elprotocolo SSL se da cuenta.

Page 47: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 47/318

 

Capítulo 2

El Mundo Móvil

2.1 Evolución

En 1983, aparecieron en el mercado los primeros teléfonos celulares  que po-dían llevarse a todos lados. Desde esos comienzos, los teléfonos celulares  omóviles  han sido vistos como la comunicación del futuro. Se trataba de unequipo que permitía permanecer comunicado en todo momento y en todo lu-

gar, 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, transpor-tistas, hasta llegar a la época actual donde prácticamente cada integrante deuna familia 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 (Segunda Ge-neración) o PCS  (Personal Communication Service). Esta etapa se caracterizópor ser digital y utilizar algoritmos de compresión y seguridad más sofisticadosen las comunicaciones. Sigue siendo la tecnología más utilizada actualmente

25

Page 48: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 48/318

 

26 CAPÍTULO 2. EL MUNDO MÓVIL

en las comunicaciones móviles  del mundo.En esta etapa, se encuentran predominantemente 3 tipos de tecnologías

compitiendo 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 [8].

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, al

darse 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, videoconferen-cias y otras aplicaciones de alta performance. Las velocidades son superioresa los 144 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 tecno-logías van de 384 Kbps a 4 Mbps, ya superan a conexiones de banda anchahogareñas en ADSL que están entre 1 Mbp y 1 Gbps. Se debe recordar queestas velocidades se logran en forma inalámbrica y en constante movimientodel equipo (a mayor velocidad de movimiento, menor ancho de banda). Tam-bién ya se habla de una 4G que comenzaría a implementarse hacia 2010 y quetraería aparejado velocidades de 100 Mbps, equiparables con las velocidadesactuales de una red local.

2.2 Teléfonos Móviles de Primera GeneraciónEl sistema más antiguo fue el de los radioteléfonos móviles que se utilizaban deforma esporádica para comunicación marítima y militar durante las primerasdécadas del siglo XX. En 1946 se construyó el primer sistema de teléfonosinstalado en autos. Este sistema utilizaba un solo transmisor grande colocadoen la parte superior de un edificio y tenía un sólo canal que servía para enviar

Page 49: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 49/318

 

2.2. TELÉFONOS MÓVILES DE PRIMERA GENERACIÓN  27

y recibir. Para hablar, el usuario tenía que oprimir un botón que habilitaba eltransmisor e inhabilitaba el receptor. Tales sistemas, conocidos como sistemas de oprimir para hablar , se instalaron en algunas ciudades desde finales de ladé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 esperar

bastante tiempo antes de obtener el tono de marcar.

2.2.1 Sistema Avanzado de Telefonía Móvil

La telefonía móvil  terrestre utiliza estaciones terrestres. Éstas se encargan demonitorizar 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. 2.1 de lapág. 28. 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 la-boratorios 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. Ca-da celda utiliza un conjunto de frecuencias que no es utilizada por ninguna desus vecinas.

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 50: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 50/318

 

28 CAPÍTULO 2. EL MUNDO MÓVIL

Figura 2.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. Eldiseño celular incrementa la capacidad del sistema en un orden de magnitudconforme las celdas se hacen más pequeñas en su área de cobertura. Además,al ser las celdas más pequeñas se necesita menor potencia, lo cual conduce adispositivos má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 se

conectan a una MTSO de segundo nivel y así sucesivamente.En cualquier instante cada teléfono móvil está en una celda específica y

bajo 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 51: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 51/318

 

2.3. TELÉFONOS MÓVILES DE SEGUNDA GENERACIÓN  29

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].

2.3 Teléfonos Móviles de Segunda Generación

La primera generación de teléfonos móviles fue analógica; la segunda fue digi-tal. De igual manera que en la primera generación no hubo una estandariza-ción mundial de tecnologías, tampoco hubo en la segunda generación. Existencuatro sistemas en uso: D-AMPS; GSM; CDMA y PDC .

2.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 con AMPS,a fin de que tanto teléfonos móviles de primera generación como los de segundapudieran 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 des-cendentes 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ófo-no 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 52: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 52/318

 

30 CAPÍTULO 2. 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 multiple-xió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. 2.2 de la pág. 30. Ademáscada trama se divide en seis ranuras de tiempo de 6.67 mseg cada una [17].

Figura 2.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.

2.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 53: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 53/318

 

2.3. TELÉFONOS MÓVILES DE SEGUNDA GENERACIÓN  31

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 GSM una tasa de datos mucho más grande por usuario que D-AMPS .

Cada banda de frecuencia tiene una longitud de 200 KHz. Un sistema GSM tiene 124 pares de canales simplex. Cada uno de ellos tiene una longitud de200 KHz y maneja ocho conexiones por separado, mediante la multiplexión por división de tiempo. En cada celda se pueden manejar hasta 992 canales, aunque

muchos 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 de control  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 man-tiene una base de datos de la estaciones móviles actualmente bajo su jurisdic-ción. La información necesaria para mantener esta base de datos se envía enel canal dedicado 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 alea-

torio, que permite que los usuarios soliciten una ranura del canal dedicado decontrol. Si dos peticiones chocan, se distorsionan y se tienen que volver a re-alizar más tarde. El tercer subcanal es el canal de otorgamiento de acceso [17].

Page 54: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 54/318

 

32 CAPÍTULO 2. EL MUNDO MÓVIL

2.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 los sis-temas 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 lugar

de 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 aeropuertocon muchas parejas de personas conversando. TDM  (multiplexión por divisiónde tiempo) 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 en

grupos 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 secuencia de 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 55: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 55/318

 

2.4. TELÉFONOS MÓVILES DE TERCERA GENERACIÓN  33

2.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 Erics-

son. 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 GSM aunque no tiene compatibilidad hacia atrás con GSM .

Tiene la propiedad de que el invocador puede salir de una celda W-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 inte-ractuar con GSM  y no puede entregar llamadas a una celda GSM  (ni a unacelda D-AMPS ).

Page 56: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 56/318

 

34 CAPÍTULO 2. 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.

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

Mientras se espera la venida del 3G , algunos fabricantes dieron un paso inter-medio 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].

2.4.2 GPRS (Servicio de Radio de Paquetes Generales)

Es una red de paquetes superpuestos encima de D-AMPS  o GSM . Permite que

las estaciones móviles envíen y reciban paquetes IP (protocolo de Internet) enuna 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 ubica-ció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 57: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 57/318

 

2.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFÓNICAS 35

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.

2.5 Servicios Adicionales de las Empresas Telefóni-cas

Los equipos celulares fueron pensados para transmitir voz. Lo primero que

se 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ía celular 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.

2.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 celular han 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 ana-lógica que ya estaba instaurada. Entre ellos, se puede mencionar contestadorautomático, alarmas, llamadas en conferencia, y servicios de información quese proveían (y todavía se proveen) comunicándose a un número particular que

no pertenecía a la red fija de telefonía.

2.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 equipos conla capacidad de recepción de mensajes de texto en la pantalla del teléfono. Por

Page 58: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 58/318

 

36 CAPÍTULO 2. EL MUNDO MÓVIL

ello, requieren equipos con pantalla alfanumérica y señal digital. Las empresaspermiten el envío de mensajes a un equipo celular  a través de sus sitios web,a través de una casilla de e-mail o desde otros equipos celulares . El mensajeviaja por la red digital de la empresa y llega al equipo celular donde podrá servisualizado 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 enviado

en el momento de restauración de la señal.Con la gran aceptación que tuvo el Sistema de Mensajes Cortos  comenza-

ron a aparecer equipos con la posibilidad, no sólo de recibir mensajes, sino deemitirlos y así poder enviar mensajes a otros teléfonos, en un principio, entredos 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.

2.5.3 Servicios de Información

Basados en el Servicio de Mensajería, las empresas proveedoras de la telefonía celular  comenzaron a ofrecer servicios adicionales de información por esemedio. Por ejemplo, es posible suscribirse a recibir información sobre: noticias,deportes, cotizaciones financieras, estados bancarios y otra información queserá enviada a todos los equipos celulares suscriptos.

Page 59: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 59/318

 

2.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFÓNICAS 37

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 serviciosson provistos 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 el Microsoft Messenger  o el Yahoo! Messenger ) y juegos interactivosa través del Servicio de Mensajería . Algunos de estos servicios se ofrecen enforma gratuita [8].

2.5.4 Mensajes Multimedia

Los equipos móviles evolucionan a grandes pasos y debido a esto se pueden verequipos con capacidades multimedia. Por eso, se ha desarrollado una extensiónal servicio SMS , llamado MMS  (Multimedia Messaging System ).

Este sistema de intercambio de mensajes permite, además de texto (am-pliado a 900 caracteres), adjuntar cualquier otro tipo de archivo digital, comoser fotos, imágenes animadas, sonidos o videos. El equipo receptor deberá so-portar tambié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 .

2.5.5 Juegos y Aplicaciones

Es una característica adicional provista por el fabricante del equipo. Graciastambién al gran uso del SMS , los teléfonos  comenzaron a ampliar el tamañovisual de sus pantallas. De esta forma, algunos equipos comenzaron a incluiralgunos pequeños juegos  en sus modelos de celulares , como se puede apreciaren la fig. 2.3 de la pág. 38.

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

Page 60: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 60/318

 

38 CAPÍTULO 2. EL MUNDO MÓVIL

Figura 2.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 microcompu-tadora. 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 software móvil  [8].

2.5.6 Internet Móvil

Internet Móvil  es la capacidad que tiene un equipo celular de navegar por lared 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 llamada WAP (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 red 

Page 61: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 61/318

 

2.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFÓNICAS 39

celular.Este protocolo tenía una limitación y es que no soportaban páginas HTML

como sí lo soportan los navegadores para equipos estándar de computación,como Internet Explorer, Netscape u Opera. Los navegadores WAP  de losequipos celulares soportan solamente páginas en formato WML, que es unaversión reducida de HTML y adaptada a las necesidades de contenido de unteléfono celular.

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 pa-

ra muchos usuarios. Una vez que se lograba configurar correctamenteel equipo, la navegabilidad de los equipos que, originalmente no esta-ban preparados para tal fin (como ser ausencia de teclas, pantallas muychicas), 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ías que 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 [8].

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 servicios WAP  útiles para los usuarios, entre ellos:

Page 62: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 62/318

 

40 CAPÍTULO 2. EL MUNDO MÓVIL

Clima, Información Geográfica, Guías Telefónicas para Turistas, Mapas de Calles 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.

2.6 WAP

2.6.1 Introducción a WAP

Wireless Application Protocol  o WAP (protocolo de aplicaciones inalámbricas)

es un estándar abierto internacional  para aplicaciones que utilizan las comu-nicaciones inalámbricas, por ejemplo acceso a servicios de Internet  desde untelé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 (originalmente

Unwired Planet). Desde 2002 el WAP Forum  es parte de la Open Mobile Alliance  (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 surge WAP , 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óvil  con-dicionan a los fabricantes mundiales a constituir el consorcio WAP Forum paradesarrollar una nueva pila de protocolos  adecuada a los entornos inalámbricoscon usuarios en movimientos [7].

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 terminal 

Page 63: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 63/318

 

2.6. WAP  41

móvil  y la estación base .

2.6.2 Motivación

Los terminales móviles son más potentes y livianos cada vez, permitiendo quela 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 / WAP Forum , que permiten que los desarrolladores diseñen aplicaciones de interco-nexió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 ge-neral menores que los accesos a Internet, si bien con las redes de tercerageneración como UMTS  las prestaciones mejoran de manera importante.

2.6.3 Modelo de WAP

El modelo de aplicación WAP  como se puede ver en la fig. 2.4 de la pág. 42,es bastante similar al WWW , ya que todo el sistema WAP  está en el anterior.

Este parecido permite facilidades tales como un modelo de programaciónfamiliar, una arquitectura probada y la habilidad de utilizar herramientasexistentes (servidores web, herramientas XML, estándares de Internet ) tam-bién debe indicarse que se ha intentado optimizar el modelo para un entorno

Page 64: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 64/318

 

42 CAPÍTULO 2. EL MUNDO MÓVIL

inalámbrico [7].

Figura 2.4: Modelo Wap.

Como se puede desprender de la fig. 2.5 de la pág. 43, el modelo opera de

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 Gateway

Interface) 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 y lacodifica a una forma binaria. Crea la respuesta WAP  conteniendo elWML y lo envía al usuario.

Page 65: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 65/318

 

2.6. WAP  43

Figura 2.5: Modelo de la Red Wap.

• 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 dispone

de 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 [7].

Page 66: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 66/318

 

44 CAPÍTULO 2. 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 contenido WWW  (HTML). Las marcas WML 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 de pro-pó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 un entornode interoperabilidad que permitirá a los usuarios y los proveedores de conte-nido construir aplicaciones y servicios que puedan alcanzar una gran variedadde 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 a HTMLpero 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 67: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 67/318

 

2.6. WAP  45

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

2.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. 2.6 de la pag. 45: 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 con WTAI  (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 contenidos WAP residente en Internet.

Page 68: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 68/318

 

46 CAPÍTULO 2. EL MUNDO MÓVIL

WAP  ha sido sujeto a diversas críticas en su implementación, como ser elbajo soporte de gráficos en los terminales móviles, las diferencias de implanta-ción en terminales móviles de distintos fabricantes y un problema muy graveen cuanto a seguridad debido a que la capa WTLS  no es robusta y ademáspor no ser compatibles con los mecanismos de seguridad que brinda Internet.

La nueva versión de WAP , WAP 2.0 , está presente en los teléfonos móviles de 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, y WCSS  (WAP CSS), un subconjuntode CSS  más ciertas extensiones específicas para móviles, como lenguajes para

la 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 la WWW  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 HTTP para mejorar las prestaciones de dichos protocolos sobre redes de comunicacio-nes móviles. Los mecanismos de seguridad usados ya son compatibles con losde Internet por lo que los problemas de seguridad de WAP 1 se resuelven. Lapasarela WAP  no es estrictamente necesaria en WAP 2.0 , pero su presencia

puede tener funciones útiles, como cache web y para dar soporte a las opcionesde TCP  y HTTP  antes mencionadas.

2.6.5 WAP 2.0

WAP 2.0  es la próxima generación de un conjunto de especificaciones que acomparación de versiones previas, marca el actual esfuerzo de WAP Forum para adoptar los más recientes protocolos y estándares de Internet. WAP 2.0 optimiza 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:

• Soporte de pila de protocolo: Además de la pila WAP  introducida,

Page 69: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 69/318

 

2.6. WAP  47

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 “Navega-dor WAP”, el ambiente de aplicación de WAP 2.0 ha evolucionado paraaceptar el lenguaje de marca del navegador de Internet como estándarde desarrollo. Esto ha llevado a la definición de un nuevo lenguaje lla-mado “XHTML-MP” . XHTML-MP  está basado en la modularidad delmarco de trabajo del eXtensible HyperText Markup (XHTML) lengua-

 je desarrollado por la W3C para reemplazar e incrementar el lenguajeHTML usado 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 modelo

de programación Web; ver fig. 2.6 de la pág. 45, usa el modelo Pull (donde elcliente requiere contenido desde un servidor). De igual modo, WAP 2.0 extien-de la arquitectura web añadiendo soporte a telefonía con WTA y habilitandoun modelo Push, donde el servidor puede enviar con iniciativa contenido alcliente [9].

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. 2.8 de la pág. 48. Además, un servidor proxy es necesario para ofrecerfuncionalidad Push.

Page 70: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 70/318

 

48 CAPÍTULO 2. EL MUNDO MÓVIL

Figura 2.7: Modelo de Programación Wap.

Figura 2.8: Modelo Proxy para WAP 2.0.

Page 71: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 71/318

 

2.6. WAP  49

Nuevas Características Añadidas y Servicios Mejorados

Además del ambiente de aplicación y el incremento de la capacidad del micro-browser, WAP 2.0  también soporta otras características para mejorar la ex-periencia del usuario. Estas características amplían las capacidades de losdispositivos inalámbricos y mejoran la habilidad para entregar servicios y apli-caciones útiles [9]. Algunas de las características adicionales de WAP 2.0  sonlas siguientes:

• WAP push: Este servicio permite enviar contenido a dispositivos me-diante aplicaciones basadas en servidor vía un push proxy. Esta fun-cionalidad ha sido mejorada por WAP 2.0 . La funcionalidad de pushes especialmente 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ón

permite 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, el WAP 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 ricas

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 72: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 72/318

Page 73: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 73/318

 

Capítulo 3

Aplicaciones Móviles

3.1 Introducción

Los dispositivos de computación inalámbrica  han crecido rápidamente, reque-riendo aplicaciones de software cada vez más potentes que puedan manejaresta nueva realidad. Los usuarios desean que las aplicaciones que corren ensus dispositivos móviles tengan la misma funcionalidad estando conectados o

desconectados de la red. Esperan aplicaciones que puedan soportar conexionesintermitentes, anchos de banda cambiantes y que manejen eficientemen-te el 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 cambiar encualquier momento a medida que el dispositivo está conectado o des-conectado 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.

51

Page 74: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 74/318

 

52 CAPÍTULO 3. 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 de

cómputo [21].

3.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 de-be trabajar con un agente o servicio Proxy para permitir un manejotransparente de los cambios en la conectividad. La conectividad no tie-ne que ser un requerimiento para la funcionalidad y cortes intermitentese inesperados en la conexión con la red deben poder ser manejados sa-tisfactoriamente. Así mismo este agente o servicio Proxy debe poder

Page 75: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 75/318

 

3.2. ARQUITECTURA DE APLICACIONES MÓVILES  53

seleccionar la red óptima de las disponibles en ese momento, y mane- jar las tareas propias de la comunicación como autentificación segura oautorización y direccionamiento lógico.

• Clientes que soporten multiplataformas: Una aplicación móvil de-be al menos ajustar su interacción y comportamiento al dispositivo enel que corre, como por ejemplo tipo de entrada y salida, recursos dispo-nibles y nivel de performance.

• Administración de recursos: Un recurso como la energía, el anchode banda o el espacio de almacenamiento puede ser consumido y existe

en una cantidad finita. La administración de recursos debe permitir elmonitoreo de atributos como cantidad o tasa de uso, y soportar notifi-caciones basadas 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. Dondeuna entidad es una persona, lugar u objeto que es relevante para lainteracción entre un usuario y una aplicación, incluyendo al usuario yla aplicación. La administración del contexto debe permitir el monito-reo de atributos como ubicación actual o tipo de dispositivo, y proveernotificación de cambios 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 o

información estática.

• Seguridad: Para evitar las consecuencias de ataques maliciosos, apli-caciones 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 76: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 76/318

 

54 CAPÍTULO 3. 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.

3.3 Arquitectura de Portal Para Aplicaciones Móvi-les

La función primaria de un portal es la de agregar e integrar diversas y distri-

buidas fuentes de información, y presentar el resultado al usuario en una vistasimple concisa y pertinente a través de un navegador Web o Web 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 gene-ral.

• 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ónincremental. Por ejemplo una notificación para el grupo de ventas deun determinado 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 77: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 77/318

 

3.3. PORTAL PARA APLICACIONES MÓVILES  55

• 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 di-námicamente para extraer y reformatear información desde sistema nobasados 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 aplicacionesmóviles, es el de asegurar la integridad de información sensible en si-tios 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 accesooffline a sitios Web, bases de datos y archivos que han sido previamente des-cargados 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 78: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 78/318

 

56 CAPÍTULO 3. 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 usualmen-te soportan el acceso desde diferentes plataformas, manejan diferentescaracterizaciones de dispositivos, y cualquier transcodificación de conte-nido requerido. Como el contenido comúnmente es dinámico y el tipo dedispositivo 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 un

link (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. Na-vegar el portal, siguiendo cada link y almacenar la salida en elsistema local para luego disponer del mismo offline, es un meca-nismo completamente ineficiente. Además todas la páginas puedenno ser requeridas, por lo tanto el prealmacenado de contenido debe

Page 79: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 79/318

 

3.4. ARQUITECTURA DE BASES DE DATOS  57

realizarse bajo el control de la configuración local que especifiquelas pá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 portalal cliente, del cliente al portal o en ambas direcciones. Si los da-tos solo puede tener permiso de escritura en el lado del cliente, laimplementación se vuelve más simple, sin embargo la implemen-tación que permite esquemas de múltiples copias que pueden seractualizadas 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 red

se encuentra disponible.

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

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

3.4 Arquitectura de Bases de Datos Para Aplicacio-

nes MóvilesLos usuarios tradicionales de una base de datos acceden a los datos residentesen el servidor de bases de datos  desde sus equipos clientes conectados física-mente a la red. Los datos se presentan en la máquina cliente como una simplevista de los datos residentes en el servidor. Esta particular arquitectura es se-gura pero al mismo tiempo limitada en el hecho de que los usuario no pueden

Page 80: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 80/318

 

58 CAPÍTULO 3. APLICACIONES MÓVILES 

Figura 3.1: Arquitectura de un Portal Móvil.

ver o trabajar con los datos sin una conexión a la red. Todo procesamientotiene lugar en el servidor, construido específicamente para tal propósito.

Se puede afirmar que una base de datos es un archivo que contiene variosregistros 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 capazde prevenir cambios simultáneos a los datos por más de un usuario. Porotra 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 son

Page 81: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 81/318

 

3.4. ARQUITECTURA DE BASES DE DATOS  59

las siguientes:

• Los datos en los sistemas cliente se desactualizan durante los periodosen que el cliente no está conectado. Los mensajes referentes a actualiza-ciones pendientes no estarán disponibles mientras el sistema este desco-nectado, 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 en

comparació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 fallao 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.

Page 82: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 82/318

 

60 CAPÍTULO 3. APLICACIONES MÓVILES 

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.

3.5 Aplicaciones Multiplataforma

Multiplataforma es un término usado para referirse a los programas, sistemas operativos, lenguajes de programación , u otra clase de software, que puedanfuncionar en diversas plataformas. Por ejemplo, una aplicación multiplatafor-ma  podría ejecutarse en Windows en un procesador x86, en GNU/Linux enun 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 siste-ma 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 virtual multiplataforma , tal vez la más conocida de este tipo, así como una plataformapopular para hacer software.

3.5.1 Java y Multiplataforma

Uno de los principales objetivos de los desarrolladores de software en los últi-mos años ha sido conseguir programas portables, capaces de ser ejecutados endiversas plataformas  (Macintosh,PC, Unix, Windows ), logrando la compati-

bilidad total.La aparición del lenguaje Java  da la primera solución satisfactoria al pro-

blema de la compatibilidad. La idea consiste en crear máquinas virtualesidénticas en cada una de las diferentes plataformas  y encargarles a ellas laejecución de programas, obteniendo así la compatibilidad total.

Con el desarrollo de estas máquinas virtuales anteriormente mencionadas

Page 83: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 83/318

 

3.5. APLICACIONES MULTIPLATAFORMA 61

se 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 Java en Internet, como lenguaje de acompañamiento al HTML, ha sido todo unéxito.

Page 84: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 84/318

Page 85: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 85/318

 

Capítulo 4

Java

4.1 Introduccó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ó en 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.

63

Page 86: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 86/318

 

64 CAPÍTULO 4. 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ácilmente

identificables.

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; ver fig.4.1 de la pág.65.

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

Page 87: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 87/318

 

4.1. INTRODUCCÓN AL LENGUAJE  65

Figura 4.1: Mecanismo de Mensajes

Para programar orientado a objetos  es necesario primero diseñar un con-

 junto de clases. La claridad, eficiencia y mantenibilidad del programa resultan-te dependerá principalmente de la calidad del diseño de clases. Un buen diseñode clases significará una gran economía en tiempo de desarrollo 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 la gran ventaja de un lenguaje OO, que son las bibliotecas de clases quese pueden construir para la aplicación [13]. 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 de

procedimientos, 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.

4.1.1 Bibliotecas de Clases Estándares de Java

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

• Manejo de archivos.

• Comunicación de datos.

• Acceso a la red Internet..

• Acceso a bases de datos.

Page 88: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 88/318

 

66 CAPÍTULO 4. JAVA

• 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.

4.1.2 Java es Multiplataforma

Los programas en Java  pueden ejecutarse en cualquiera de las siguientes pla-

taformas, 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.

El proceso de compilación y ejecución se pueden observar en la fig. 4.2 dela pág 67.

Page 89: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 89/318

 

4.1. INTRODUCCÓN AL LENGUAJE  67

Figura 4.2: Proceso Compilación y Ejecución

4.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++ nohacen). 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 aplica.Si el objeto no es compatible, entonces se levanta 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 para limpiar o reasignar memoria se lodenomina “Garbage Collector”.

• 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  se

Page 90: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 90/318

 

68 CAPÍTULO 4. JAVA

pueden 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 recolector de basuras el quedetermina cuando 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 co-rrectamente la memoria en un programa de 1000 líneas. Sin embargo, es difícil

hacerlo en un programa de 10000 líneas. Y se puede postular que es imposibleliberar correctamente la memoria en un programa de 100000 líneas.

4.2 Estructura de un Programa Java

En el siguiente ejemplo se presenta la estructura general de un programa re-alizado en cualquier lenguaje orientado a objetos u OOP (Object Oriented Programming ), y en particular en el lenguaje Java:

import java.awt.*;

import java.lang.String;

import java.lang.Integer;

import java.awt.event.WindowEvent;

import java.util.*;

Page 91: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 91/318

 

4.3. CONCEPTOS BÁSICOS  69

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 argv [ ]){

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 dela aplicación que se está desarrollando) que son utilizadas por el programa

principal. La aplicación se ejecuta por medio del nombre de la clase quecontiene la función main(). Las clases de Java  se agrupan en packages, queson librerías de clases. Si las clases no se definen como pertenecientes a unpackage , se utiliza un package por defecto (default) que es el directorio activo.

4.3 Conceptos Básicos

4.3.1 Clases

Una clase es una plantilla desde la que se pueden crear objetos. La definiciónde una clase incluye especificaciones formales para la clase y cualquier dato ymétodos incluidos en ella. La programación orientada a objetos se basa en laprogramación de clases [2]. Un programa se construye a partir de un conjuntode clases.

Una vez definida e implementada una clase, es posible declarar elementosde esta clase. Los elementos declarados de una clase se denominan objetos de

Page 92: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 92/318

 

70 CAPÍTULO 4. JAVA

la 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 () {

}

}

4.3.2 Herencia

La herencia es uno de los aspectos de la programación orientada a objetos quese ha definido formalmente. Utilizando la herencia, se puede crear una nuevaclase a partir de otra, y la nueva heredará todos los métodos y miembros de

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últiple

en base a las interfaces.

4.3.3 Interfaces

Una interfaz es una clase abstracta que define métodos abstractos y constantes,pero no implementa los metodos. La clase que implemeta una interfaz hereda

Page 93: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 93/318

 

4.4. VARIABLES DE JAVA 71

los métodos y debe implementarlos, es decir se forma un contrato entre laInterfaz 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.

4.3.4 Package

Un package es una agrupación de clases. Existen una serie de packages inclui-dos 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 nombresentre 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.*;

4.4 Variables de Java

Una variable en Java  es un identificador que representa una palabra de me-moria 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 diferentes

Page 94: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 94/318

 

72 CAPÍTULO 4. JAVA

tipos tienen que ver con el formato de los datos que se almacenan en ella, así como con la memoria que es necesaria para gestionar ese dato.

Hay dos tipos principales de variables:

• Variables de tipos primitivos: 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 como1, 2, 0, -1, etc.

• Variables referencia: Las variables referencia son referencias o nombres

de 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 . Las variables de referencia también es descripta comouna referencia a una clase.

Por ejemplo si se define: Estudiante e1. e1 es una referencia a unainstancia 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én

llamadas atributos.

• Variables locales: Se definen dentro de un método o más en generaldentro de cualquier bloque entre llaves {}. Se crean en el interior delbloque y se destruyen al finalizar dicho bloque. Pueden ser también tiposprimitivos o referencias.

En la Tabla 4.1 de la pág. 72 se muestran las dos grandes categorías detipos para las variables en Java:

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

char, boolean Arreglosfloat, double otros ob jetos

Tabla 4.1: Categorías de Variables.

Page 95: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 95/318

 

4.4. VARIABLES DE JAVA 73

En la Tabla 4.2de la pág. 73 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.

Tipo Bits Rango Ejemplosint 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

Tabla 4.2: Tipos Primitivos de Datos

4.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 la

variable.

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.

4.4.2 Datos de Clase

Son datos generales o globales a la ejecución de un aplicación.

Page 96: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 96/318

 

74 CAPÍTULO 4. JAVA

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

Por ejemplo una variable de clase seria:

public static String mensaje.

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

public static void leerURL().

4.5 Operadores del Lenguaje Java

4.5.1 Operadores Aritméticos

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

4.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 (=).La forma general de las sentencias de asignación con este operador es:

variable = expression;

Java  dispone de otros operadores de asignación. Se trata de versionesabreviadas del operador (=) que realizan operaciones “acumulativas” sobreuna variable.

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

valencia con el uso del operador igual (=).

Page 97: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 97/318

 

4.5. OPERADORES DEL LENGUAJE JAVA 75

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

Tabla 4.3: Operadores de asignación.

4.5.3 Operadores Unarios

Los operadores unarios sirven para mantener o cambiar el signo de una varia-ble, constante o expresión numérica. Ellos son el más (+) y menos (-) Su usoen Java  es el estándar de estos operadores.

4.5.4 Operador Instanceof 

El operador Instanceof permite saber si un objeto es una instancia o no de

una clase determinada y se utiliza de la siguiente manera:

objectName instanceof className.

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

4.5.5 Operador Condicional

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

siguiente:

boolean expresion? res1: res2

donde se evalua la expresion booleana y si es true devuelve res1, si es falsedevuelve res2.

Es el único operador ternario de Java.

Page 98: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 98/318

 

76 CAPÍTULO 4. JAVA

4.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 utiliza

la variable en la expresión (con el valor anterior) y luego se incrementa.

En muchas casos estos operadores se utilizan para incrementar una variablefuera de una expresión. En este caso ambos operadores son equivalente. Sise utilizan en una expresión más complicada, el resultado de utilizar estosoperadores en una u otra de sus formas será diferente.

4.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 operadoreses siempre un valor boolean  (true  o false ) según se cumpla o no la relaciónconsiderada. La siguiente Tabla 4.4 de la pág. 76 muestra los operadoresrelacionales de 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

Tabla 4.4: Operadores relacionales.

Operadores de Concatenación de Caracteres

Page 99: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 99/318

 

4.6. ESTRUCTURAS DE PROGRAMACIÓN  77

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”.

4.6 Estructuras de Programación

Las estructuras de programación o estructuras de control permiten tomar de-cisiones y realizar un proceso repetidas veces. Son los denominados 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.

4.6.1 Sentencias o Expresiones

Una expresión es un conjunto variables unidos 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 permiteincluir varias sentencias en una línea, aunque lo habitual es utilizar una líneapara cada sentencia. A continuación se muestra un ejemplo de una líneacompuesta de tres sentencias:

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

4.6.2 Comentarios

Existen dos formas diferentes de introducir comentarios entre el código de Java (en realidad son tres, como pronto se verá). Son similares a la forma de reali-zar comentarios en el lenguaje C/C++. Los comentarios son tremendamente

Page 100: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 100/318

 

78 CAPÍTULO 4. JAVA

ú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ásrápida. Se recomienda acostumbrarse a comentar el código desarrollado. Deesta forma se simplifica también la tarea 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 oa continuación de una instrucción que debe ser ejecutada. La segunda formade incluir 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.Por ejemplo:

// 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ólorequiere 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 auto-máticamente la documentación sobre las clases y packages desarrollados por elprogramador. Una vez introducidos los comentarios, el programa javadoc.exe(incluido en el JDK) genera de forma automática la información de forma si-milar 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.

4.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 .

Page 101: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 101/318

 

4.6. ESTRUCTURAS DE PROGRAMACIÓN  79

Bifurcación if 

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

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

Page 102: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 102/318

 

80 CAPÍTULO 4. JAVA

4.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 cumplaunas determinadas condiciones. Hay que prestar especial atención a los buclesinfinitos, hecho que ocurre cuando la condición de finalizar el bucle (boolea-nExpression ) no se llega a cumplir nunca. Se trata de un fallo muy típico,habitual sobre todo entre programadores poco experimentados.

Bucle while

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

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];

}

Page 103: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 103/318

 

4.6. ESTRUCTURAS DE PROGRAMACIÓN  81

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 comienzode cada iteración; el bucle termina cuando la expresión de comparación tomael valor false .

Bucle do while

Es similar al bucle while  pero con la particularidad de que el control está alfinal del bucle (lo que hace que el bucle se ejecute al menos una vez, inde-

pendientemente de que la condición se cumpla o no). Una vez ejecutados lassentencias, 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 false finaliza 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 momentopara detectar los errores es durante la compilación. Sin embargo prácticamentesólo los errores de sintaxis son detectados en esta operación. El resto deproblemas surgen durante la ejecución de los programas.

Page 104: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 104/318

 

82 CAPÍTULO 4. JAVA

En el lenguaje Java , una Exception  es un cierto tipo de error o una con-dición anormal que se ha producido durante la ejecución de un programa.Algunas excepciones son fatales y provocan que se deba finalizar la ejecucióndel programa. En este caso conviene terminar ordenadamente y dar un men-saje explicando el tipo de error que se ha producido. Otras excepciones, comopor ejemplo no encontrar un fichero en el que hay que leer o escribir algo,pueden ser recuperables. En este caso el programa debe dar al usuario laoportunidad de corregir el error (dando por ejemplo un nuevo path del ficherono encontrado).

Los errores se representan mediante clases derivadas de la clase Throwable ,

pero los que tiene que chequear un programador derivan de Exception  (ja-va.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 Exception y 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().

4.7 Servlet

Los servlets  son programas de Java que construyen respuestas dinámicas parael cliente, tal como páginas Web. Los servlets  reciben y responden a lasdemandas de los clientes Web, normalmente por HTTP.

Page 105: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 105/318

 

4.7. SERVLET  83

Además los servlets  son escalables, dando soporte para una multi-aplicación de configuración del servidor. [11]

Permiten utilizar datos caché, acceso a información de base de datos, ycompartir datos con otro servlets , archivos JSP y (en algunos ambientes) conlos bean empresariales.

Poseen algunas ventajas respecto a los tradicionales programas CGI:

• Independencia de la plataforma. Esto proporciona un menor esfuerzo

de codificación con respecto a soluciones dependientes del servidor web yde la

plataforma.

• Ejecución en paralelo de multiples 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 servlet todas

las peticiones se atienden en el mismo proceso por distintos hilos y unavez que se ha cargado el servlet este permanece en memoria hasta quese reinicie el servidor.

4.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.

Page 106: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 106/318

 

84 CAPÍTULO 4. JAVA

Figura 4.3: Jerarquía y Métodos de las Principales Clases Para Crear Servlets.

Vision General del API de Servlet

La relación entre las clases e interfaces de Java, muy determinada por el con-cepto de herencia, tal como puede verse en la fig. 4.3 de la pág. 84 se repre-sentan 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ásimportante es la interface Servlet .

La interface Servlet  declara métdos más importantes de cara a la vida deun servlet: init() que se ejecuta sólo al arrancar el servlet ; destroy() que seejecuta 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 correspondientesa las interfaces ServletRequest  y ServletResponse . La primera referencia a un

objeto que describe por completo la solicitud de servicio que se le envía alservlet . Si la solicitud de servicio viene de un formulairo HTML, a través deese objeto se puede acceder a los nombres de los campos y a los valores intro-ducidos por el usuario. El segundo argumento es un objeto con la referenciaa la interface ServletResponse  que constituye el camino mediante el cual elmétodo service() se conecta de nuevo con el cliente y le comunica el resultadode su solicitud.

Page 107: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 107/318

 

4.7. SERVLET  85

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 servlet informació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 formato

HTML, 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-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{

Page 108: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 108/318

 

86 CAPÍTULO 4. JAVA

Ciclo de Vida del Servlet

Un Servlet de Java tiene un ciclo de vida que determina como el servlet escargado 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.

• Se finaliza el servlet  y la basura es recolectada.

El ciclo de vida de un Servlet  se puede apreciar en la fig. 4.4de la pág 87.

4.7.2 Instanciación e Inicialización

El motor del servle t (la función del Servidor de Aplicaciones que procesa ser-vlets, archivos JSP, y otros tipos de server-side incluyendo codificación) creauna 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 servlet  almétodo INIT. La inicialización de los parámetros persiste hasta que el ser-vlet  se destruye y es aplicada a todas las invocaciones de ese servlet  hastadestruirse.

Page 109: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 109/318

 

4.7. SERVLET  87

Figura 4.4: Ciclo de Vida de un Servlet.

Page 110: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 110/318

 

88 CAPÍTULO 4. JAVA

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.

4.7.3 Servicio de Demanda

Una demanda  del cliente llega al servidor de aplicaciones. El motor del servlet crea un objeto demanda y un objeto respuesta. El motor del servlet  invoca

al método de servicio del servlet , procesa el requerimiento y usa métodos delobjeto 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.

4.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 . Elcontenedor Web también puede llamar al método destroy () si el motor ne-cesita conservar recursos o una llamada pendiente a un método service () delservlet  excediendo el timeout. La Máquina Virtual de Java realiza recolecciónde basura después del destroy.

4.7.5 Java Server Faces

JavaServer Pages (JSP) combinan HTML con fragmentos de Java para pro-ducir páginas web dinámicas.

Cada página es automáticamente compilada a servlet por el motor de JSP

Page 111: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 111/318

 

4.7. SERVLET  89

, en primer lugar es recogida y a continuación ejecutada. JSP tiene granvariedad de formas para comunicarse con las clases de Java, servlets, appletsy el servidor web; por esto se puede aplicar una funcionalidad a nuestra weba base de componentes.

Una página JSP es 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, importa-ción de

estamentos, página que majena los errores o cuando la página forma partede 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 una estamento que proporciona la información del

motor de JSP para la

página que la pide. Su sintaxis general es <%@ directiva {atributo =”va-lor”} %>

dónde la directiva debe tener un número de atributos.

Algunos ejemplos son:

Page 112: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 112/318

 

90 CAPÍTULO 4. JAVA

— 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.

La directiva Page posee varios atributos:

— language=“java”: Comunica al servidor el lenguaje que va a serutilizado en el archivo. Java es el único posible es esta especifica-ción.

— extends=“package.class”: La variale extends , define la clase padre

del 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ñalesal motor de JSP para que multiples pedidos del cliente puedan sertomadas como una.

— info=“text”: Información en la página a la que puede accederse a

través del método Servlet.getServletInfo().— errorPage=”pagina_error”: Página que manejará las excepciones

de 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>

Page 113: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 113/318

 

4.7. SERVLET  91

</HEAD>

<BODY>

<%! String strCadena = ”x”;

int intContador = 0;

%>

</BODY>

</HTML>

Scripts de JSP

Los Scripts son bloques de código Java residentes entre los tags <% y %>.

Este bloques de código estarán dentro del servlets generado incluídos enmétodo _jspService(). Los Scripts pueden acceder a cualquier variable o Beansque 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 lacase 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 implicitos necesitanser accesibles a través de API, para permitir al motro de JSP compilarla página. Pero cada servidor tiene implementaciones específicas

de cada uno de esos atributos y objetos.

• pageContext: Esta clase PageContext es inicializadacon los objetos res-

ponse y request y algunos atributos de la directiva de la página (erro-page,session,buffer and autoflush) y facilita los otros objetos implícitospara la pagina 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 114: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 114/318

 

92 CAPÍTULO 4. JAVA

• 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 unaparámetro mediante el

objeto request, y como pasarlo a una cadena para mostrarlo en pantalla.

<% String strNombre = request.getParameter(”nombre”);

out.println(strNombre);

%>

Expresiones JSP

Las expresiones son una magnifica herramienta para insertar código embe-bido dentro de la

página HTML. Cualquier cosa que este entre los tags <%= y % > seráevaluado, convertido a

cadena y posteriormente mostrado en pantalla. La conversión desde el tipoinicial a String es

manejada autómaticamente.

Es importante remarcar que que la expresión no termina en punto y coma(;) . Esto es así porque

motro de JSP, pondrá la expresión automáticamente entre out.println().

Las expresiones JSP te permiten parametrizar las páginas HTML (es pa-recido a cuando

parametrizas una consulta SQL pero difieren la forma de los valores). Unay otra vez , en el

código de la página HTML, ser verán bucles o condiciones usando códigoJava, simplemente

empezando y acabando las condiciones o bucles entre los tags <% y %>.Un ejemplo sería:

<% for (int i=0;i<5;i++) { %>

Page 115: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 115/318

 

4.7. SERVLET  93

Figura 4.5: Requerimiento de un Archivo JSP.

<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.Los archivos JSP acceden a los beans u otros componentes que generan

contenido dinámico para ser enviado al browser como se muestra en la figura4.5 de la página 93.

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 y

llama a un archivo JSP para enviar el contenido a un browser, como se muestraen la figura 4.6 de la página 94.

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étodos

Page 116: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 116/318

 

94 CAPÍTULO 4. JAVA

Figura 4.6: Requerimiento de un Servlet.

permiten una invocación de servlet  para colocar un objeto (normalmente unbean) en un objeto demanda y pasa ese requerimiento a otra página (normal-mente un archivo JSP) para el despliegue. La página invocada recupera elbeans del objeto demanda y genera el HTML que recibe el cliente.

4.7.6 Desarrollando Aplicaciones

Para WebSphere Application Server, las aplicaciones son combinaciones debloques que trabajan conjuntamente para el logro de una función de la lógicacomercial. Las aplicaciones Web son grupos de uno o más servlets , más el

contenido estático.Aplicaciones Web = servlets + archivos JSP + archivos XML + archivos 

HTML + 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 una

Page 117: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 117/318

 

4.7. SERVLET  95

variedad de sistemas. El software J2SE  consiste en los Java SDK Standard Edition  y el Java Runtime Environment  (JRE ) Standard Edition .

Page 118: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 118/318

Page 119: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 119/318

 

Capítulo 5

Java 2 Micro Edition

5.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 Java o 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 necesida-des 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.

97

Page 120: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 120/318

 

98 CAPÍTULO 5. JAVA 2 MICRO EDITION 

5.1.1 Comparación de Versiones

Sun Microsystems , con el objetivo de cubrir las necesidades de todos los usua-rios 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 res-tringidas.

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 Virtual Machine ).

• 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 desarro-

llar 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 121: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 121/318

 

5.1. INTRODUCCIÓN  99

— Está pensado no para ser ejecutado en un equipo, sino paraejecutarse sobre una red de ordenadores de manera distribuiday remota mediante EJBs  (Enterprise Java Beans ).

— Esta edición está orientada especialmente al desarrollo de ser-vicios web, servicios de nombres, persistencia de objetos, XML,autenticació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ónicos

con 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 JVM clásica .

 

Figura 5.1: Arquitectura de la Plataforma Java 2 de Sun.

La fig. 5.1 de la pág. 99 muestra la arquitectura de Java2.

Page 122: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 122/318

 

100 CAPÍTULO 5. 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 paquetes

 java.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 una

máquina virtual distinta de la clásica JVM  denominada KVM . Esta KVM tiene unas restricciones que hacen que no posea todas las capacidades 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último exigía unas características muy pesadas o especializadas de E/S, trabajoen red, 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. 5.2 de lapág. 101): en realidad cada una de las ediciones está enfocada a ámbitos deaplicación muy distintos [14].

Page 123: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 123/318

 

5.1. INTRODUCCIÓN  101

Figura 5.2: Ubicación de las Tecnologías Java.

5.1.2 Algunas Consideraciones al Desarrollar en J2ME

Algunas consideraciones son las siguientes:

• Prácticamente los dispositivos móviles  y más aún los nuevos teléfonos celulares ya poseen capacidad de ejecución de aplicaciones desarrolladasen J2ME . Existen algunas ventajas y restricciones o desventajas respecto

a otras tecnologías [10].

• Algunas ventajas en comparación de J2ME  con respecto al len-guaje C  son:

∗ Multiplataforma: Significa 1 programa - se puede ejecutar enn mó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.

• Las aplicaciones móviles que poseen conectividad a Internet pueden uti-lizar la tecnología GPRS , en la cual se tarifa al usuario por Kbytes  re-cibidos y enviados, es por esto que es importante minimizar la cantidad

Page 124: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 124/318

 

102 CAPÍTULO 5. JAVA 2 MICRO EDITION 

de información intercambiada. Las relaciones que existen de acuerdoal 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.

• ¿Cuándo interesa desarrollar en J2ME ?:

— Cuando no hay tráfico de información, por ejemplo: juegos, con-versores 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 [10].

5.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 [10].

• Perfiles: Son unas bibliotecas Java  de clases  específicas orientadas aimplementar funcionalidades de más alto nivel para familias específicasde dispositivos.

Page 125: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 125/318

 

5.2. COMPONENTES DE J2ME  103

5.2.1 Máquinas Virtuales J2ME

Una máquina virtual  de Java  (JVM ) es un programa encargado de interpretarcódigo intermedio (bytecode ) de los programas Java  precompilados a códigomáquina ejecutable por la plataforma, efectuar las llamadas pertinentes alsistema 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 pesadas

en 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 deconfiguración se definió una máquina virtual  distinta. La VM  (Virtual Ma-chine ) correspondiente a CLDC  se denomina KVM  y la de la configuraciónCDC  se denomina CVM .

A continuación se detallan las principales características de cada una de

ellas:

KVM

Se corresponde con la máquina virtual más pequeña. Su nombre KVM proviene 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 126: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 126/318

 

104 CAPÍTULO 5. 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 ma-nejo de éstas depende en gran parte de las APIs  de cada dispositivo porlo que 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ás pequeña es la verificación de clases. El verificador de clases estándarde Java  es demasiado grande para la KVM , De hecho es más grande que lapropia KVM  y el consumo de memoria es excesivo, más de 100Kb para lasaplicaciones típicas.

Este verificador de clases es el encargado de rechazar las clases  no válidas

en tiempo de ejecución. Este mecanismo verifica los bytecodes  de las 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 127: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 127/318

 

5.2. COMPONENTES DE J2ME  105

• 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 KVM introducen un algoritmo de verificación de clases en dos pasos. Este procesopuede apreciarse gráficamente en la fig. 5.3 de la pág. 105.

 

Figura 5.3: Proceso de Verificación.

CVM

• La CVM  (Compact Virtual Machine ) ha sido tomada como máquina virtual 

Java  de referencia para la configuración CDC  y soporta las mismas carac-

terí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 128: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 128/318

 

106 CAPÍTULO 5. 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ón remota de métodos  (RMI ), Interfaz de depuración de la máquina virtual (JVMDI).

5.2.2 Configuraciones

Una configuración  es el conjunto mínimo de APIs Java  que permiten des-arrollar 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 me-moria que se denomina CLDC  y la configuración que se encuentra orientada

Page 129: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 129/318

 

5.2. COMPONENTES DE J2ME  107

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 compu-tacional y de memoria. Por ejemplo, decodificadores de televisióndigital, televisores con Internet, algunos electrodomésticos y siste-

mas de navegación en automóviles.— CDC  usa una máquina virtual Java  similar en sus características

a una de J2SE , pero con limitaciones en el apartado gráfico y 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  y

ROM .— 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 Javade la edición estándar. Las peculiaridades de la CDC  están conteni-das principalmente en el paquete javax.microedition.io, que incluyesoporte para comunicaciones http y basadas en datagramas [14].

La tabla 5.1 de la pág. 108 muestra las librerías incluidas en la CDC .

• Configuracion de dispositivos limitados con conexión, CLDC  (Conected Limited Device Configuration ):

— La CLDC  está orientada a dispositivos dotados de conexión y con li-mitaciones 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 130: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 130/318

 

108 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Nombre del paquete DescripciónCDC  java.io Clases y paquetes estándar de E/S

  java.lang Clases e interfaces de la máquina virtual  java.lang.ref Clases de referencia

  java.lang.reflect Clases e interfaces de reflectión  java.math Paquete de matemáticas  java.net Clases e interfaces de red

  java.security Clases e interfaces de seguridad  java.security.cert Clases de certificados de seguridad

  java.text Paquete de texto  java.util Clases de utilidades estándar

  java.util.jar Clases y utilidades para archivos JAR  java.util.zip Clases y utilidades para archivos

ZIP y comprimidos  javax.microedition.io Clases e interfaces para conexión genérica CDC

Tabla 5.1: Librerías de configuración CDC.

— Las restricciones que contiene la configuración CLDC  vienen dadas

por 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 no vo-látil para la máquina virtual Java  y las bibliotecas CLDC , y 32Kb de memoria volátil para la máquina virtual  en tiempo deejecució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, con

conexió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 131: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 131/318

 

5.2. COMPONENTES DE J2ME  109

∗ Un subconjunto de las bibliotecas del núcleo de Java .∗ Soporte para acceso a redes.∗ Soporte para E/S básica.∗ Seguridad.

La tabla 5.2 de la pág. 109 muestra las librerías incluidas en la CLDC.

Nombre del paquete CLDC Descripción  java.io Clases y paquetes estándar de E/S

  java.lang Clases e interfaces de la máquina virtual

  java.util Clases e interfaces, utilidades estándar  javax.microedition.io Clases e interfaces de conexión genérica

Tabla 5.2: Librerías de configuración CLDC.

5.2.3 Perfiles

Un perfil es el que define las APIs que controlan el ciclo de vida de la aplicación,

interfaz de usuario, etc. Concretamente, un perfil es un conjunto de APIs orientado a un ámbito de aplicación determinado.

Los perfiles identifican un grupo de dispositivos por la funcionalidad 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.

Anteriormente se mencionó que para una configuración determinada seusaba una Máquina Virtual Java específica. Teníamos que con la configura-

Page 132: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 132/318

 

110 CAPÍTULO 5. JAVA 2 MICRO EDITION 

ción CDC se utilizaba la CVM y que con la configuración CLDC se utilizabala KVM. Con los perfiles ocurre lo mismo. Existen unos perfiles que se cons-truirán sobre la configuración CDC  y otros que se construirán sobre la CLDC .

 

Figura 5.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. 5.4 de la pág. 110 se puede ver cómo quedaría el esquema delentorno de ejecución al completo.

A continuación se describirá con más detenimiento cada uno de estos per-files:

Page 133: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 133/318

 

5.2. COMPONENTES DE J2ME  111

Foundation Profile: Este perfil  define una serie de APIs  sobre la CDC orientadas a dispositivos que carecen de interfaz gráfica como, por ejemplo,decodificadores de televisión digital [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 5.3 de la pág. 111.

Paq. del Fundation Profile Descripción  java.lang Soporte del lenguaje Java  java.util Añade soporte completo para

zip y otras funcionalidades  java.net Incluye sockets TCP/IP

y conexiones HTTP  java.io Clases Reader y Writer de J2SE

  java.text Incluye soporte para internacionalización  java.segurity Incluye códigos y certificados

Tabla 5.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 5.4 de la pág. 112 muestra los paquete que conforman el perfil.RMI Profile: Este perfil requiere una implementación del Foundation 

Profile . 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.

Las siguientes propiedades se han eliminado del J2SE RMI v1.3 :

Page 134: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 134/318

 

112 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Paq. del Personal DescripciónProfile

  java.applet Clases necesarias para crear applets  java.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étodos

editores de entrada para cualquier entornode ejecución Java

  java.awt.image Clases para crear y modificar imágenes  java.beans Clases que soportan JavaBeans

  javax.microedition.xlet Interfaces que usa el Personal Profilepara la comunicación

Tabla 5.4: Librerías del Personal Profile.

Page 135: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 135/318

 

5.2. COMPONENTES DE J2ME  113

• 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á cons-truido sobre la configuración CLDC. MIDP fue el primer perfil definido paraesta plataforma.

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éfo-nos móviles, buscapersonas (pagers ) o PDAs  de gama baja con conectividad.

El perfil MIDP  especifica las APIs  relacionadas con:

• La aplicación (semántica y control de la aplicación MIDP).

Page 136: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 136/318

 

114 CAPÍTULO 5. JAVA 2 MICRO EDITION 

• 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 5.5 de la pág. 114 se pueden apreciar cuáles son los paquetesque están incluidos en el perfil MIDP .

Paq. del MIDP Descripción  javax.microedition.lcdui Clases e interfaces para GUIs  javax.microedition.rms Soporte para el almacenamiento

persistente del dispositivo  javax.microedition.midlet Clases de definición de la aplicación

  javax.microedition.io Clases e interfaces de conexión genérica  java.io Clases e interfaces de E/S básica

  java.lang Clases e interfaces de la máquina virtual

  java.util Clases e interfaces de utilidades estándar

Tabla 5.5: Librerías del MIDP Profile.

5.3 Requerimientos Funcionales Para Detectar unaAplicación J2ME

Los dispositivos deben proporcionar mecanismos mediante los cuales se pue-dan 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.

Otros mecanismos como Bluetooth, cable serie, etc, pueden ser soportadospor el dispositivo y a partir de estas conexiones se pueden instalar aplicaciones(MIDlets).

Page 137: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 137/318

 

5.4. LOS MIDLETS  115

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  (Proxy Authentication Required ).

• Instalar el MIDlet  en el dispositivo.

• Ejecutar MIDlets .

• Permitir al usuario borrar MIDlets  instalados.

5.4 Los MIDlets

Los MIDlets  son aplicaciones creadas usando la especificación MIDP . 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áquina virtual  usada en estos dispositivos [14].

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.

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 ”.

Page 138: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 138/318

 

116 CAPÍTULO 5. JAVA 2 MICRO EDITION 

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”).

5.4.1 El Gestor de Aplicaciones

El gestor de aplicaciones o AMS (Application Management System ) es el soft-ware encargado de gestionar los MIDlets . Este software reside en el dispositivoy 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.

5.4.2 Ciclo de Vida de un Midlet

Como puede ilustrarse en la fig. 5.5 de la pág. 117 el ciclo de vida de un MIDletpasa 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 siguiente

manera:

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

Page 139: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 139/318

 

5.4. LOS MIDLETS  117

Figura 5.5: Ciclo Vida de un MIDlet.

a descargar. Por tanto, el gestor de aplicaciones tiene que proporcionarlos mecanismos necesarios para realizar la elección del MIDlet a descar-

gar. El AMS puede ser capaz de realizar la descarga de aplicacionesde diferentes maneras, dependiendo de las capacidades del dispositivo.Por ejemplo, esta descarga se debe poder realizar mediante un cableconectado a un ordenador o mediante una conexión inalámbrica.

2. Instalación: En esta fase el gestor de aplicaciones controla todo el proce-so de instalación del MIDlet informando al usuario tanto de la evoluciónde la instalación como de si existiese algún problema durante ésta.

3. 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.

4. 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.

5. Borrado: Una vez instalado el MIDlet en el dispositivo, este permanece

Page 140: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 140/318

 

118 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Figura 5.6: Estados de un MIDlet.

almacenado 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.

5.4.3 Estados de un MIDlet

Además de gestionar el ciclo de vida de los MIDlets , el AMS  es el encargado decontrolar los estados del MIDlet durante su ejecución. Durante ésta el MIDlet es cargado en la memoria del dispositivo y es aquí donde puede transitar entre3 estados diferentes: activo, en pausa  y destruido como puede apreciarse en lafig. 5.6 de la pág. 118.

Como se puede ver en la fig. 5.6 de la pág. 5.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.

Page 141: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 141/318

 

5.4. LOS MIDLETS  119

5.4.4 El paquete javax.microedition.midlet

El paquete javax.microedition.midlet  define las aplicaciones MIDP y su com-portamiento con respecto al entorno de ejecución.

En la tabla 5.6 de la pág. 119 se puede apreciar cuáles son las clases queestán incluidas en este paquete.

Clases DescripciónMIDlet Aplicación MIDP

MIDletstateChangeException Indica que el cambio de estado ha fallado

Tabla 5.6: Clases del Paquete javax.microedition.midlet.

5.4.5 La Clase MIDlet

Como se ha mencionado con anterioridad, un MIDlet es una aplicación reali-zada usando el perfil MIDP.

La aplicación desarrollada debe extender o heredar de esta clase para que

el 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,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:

Page 142: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 142/318

 

120 CAPÍTULO 5. JAVA 2 MICRO EDITION 

— 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 MI-DletstateChangeException 

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 al MIDlet 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”.

• 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)

Page 143: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 143/318

 

5.4. LOS MIDLETS  121

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”. Es-te mé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” eneste momento pero sí pueda hacerlo en un momento posterior, se lanzaría la

excepción MIDletstateChangeException .Los métodos anteriormente mencionados se utilizan para la comunicación

entre 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 el MIDlet ,mientras que los métodos resumeRequest(), notifyPaused() y notifyDestroyed()los utiliza el MIDlet  para comunicarse con el AMS .

5.4.6 Estructura de los MIDlets

Es posible decir que los MIDlets, al igual que los applets carecen de la funciónmain().

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{

public MiMidlet() {/* Éste es el constructor de clase. Aquí se deben

* inicializar las variables.

*/

}

public startApp(){

Page 144: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 144/318

 

122 CAPÍTULO 5. JAVA 2 MICRO EDITION 

/* 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{

private Display pantalla;

private Form formulario = null;

public HolaMundo(){

pantalla = Display.getDisplay(this);

formulario = new Form(”Hola Mundo”);

Page 145: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 145/318

 

5.5. INTERFACES GRÁFICAS DE USUARIO 123

}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 .

5.5 Interfaces Gráficas de Usuario

Teniendo en cuenta la diversidad de aplicaciones que se pueden realizar paralos dispositivos MID  y los elementos que proporcionan tanto la configuraciónCLDC  como el perfil MIDP  se pueden clasificar a los elementos en dos grandesgrupos:

• Por un lado existen los elementos que corresponden a la interfaz de usuario de alto nivel. Esta interfaz usa componentes tales como boto-

nes, cajas de texto, formularios, etc. La finalidad de usar estas APIs  dealto nivel  es su portabilidad . Al utilizar esta interfaz de usuario se pierdeel control del aspecto de las aplicaciones desarrolladas, ya que la estéticadepende exclusivamente del dispositivo donde se ejecute. La ventaja dela utilización de esta interfaz de usuario de alto nivel es la gran porta-bilidad que se consigue. Generalmente esta interfaz es utilizada para lacreación de aplicaciones de negocios.

Page 146: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 146/318

 

124 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Figura 5.7: Jerarquía de Clases.

• Por otro lado existen los elementos que forman parte de la interfaz de usuario de bajo nivel. Al utilizar las APIs  de bajo nivel  se puede tener

un control total de todo lo que está dibujado en la pantalla , 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. 5.7 de la pág. 124se puede apreciar laorganización de estas clases.

5.5.1 La Clase Display

La clase Display  representa el manejador de la pantalla y los dispositivos deentrada. 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 pantalla del dispositivo donde se ejecute el MIDlet .

En la tabla 5.7 de la pág. 126 se puede ver los métodos incluidos en esta

Page 147: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 147/318

 

5.5. INTERFACES GRÁFICAS DE USUARIO 125

clase.

5.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 5.8 de la pág. 127.

5.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  como

un botón de Windows .Se implementan en los MIDlets  para poder detectar y ejecutar una acción

simple.

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.

• Tipo: La declaración del tipo sirve para que el dispositivo identifiqueel Command y le dé una apariencia específica acorde con el resto de

aplicaciones 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 5.9de la pág 127.

Page 148: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 148/318

 

126 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Métodos Descripciónvoid callSerially Retrasa la ejecución del método run()

(Runnable r) del objeto rboolean flashBacklight Provoca un efecto de flash

(int duracion) en la pantallaint getBestImageHeight Devuelve el mejor alto

(int imagen) de imagen

int getBestImageWidth Devuelve el mejor ancho(int imagen) de imagenint getBorderStyle Devuelve el estilo de

(bolean luminosidad) borde actualint 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/n

int numAlphaLevels() Devuelve el número de nivelesalpha soportados

int 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 itemboolean vibrate Realiza la operación de(int duracion) vibración del dispositivo

Tabla 5.7: Métodos de la Clase Display.

Page 149: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 149/318

 

5.5. INTERFACES GRÁFICAS DE USUARIO 127

Métodos Descripciónvoid addCommand añade el Command cmd(Command cmd)int getHeight() Devuelve el alto de la pantalla

Ticker getTicker() Devuelve el Ticker asignado a la pantallaString getTitle() Devuelve el título de la pantallaint getWidth() Devuelve el ancho de la pantalla

bolean isShown() Devuelve true si la pantalla está activavoid removeCommand Elimina el Commando cmd

(Command cmd) de la pantallavoid setCommandListener Establece un Listener para la

(CommandListener l) captura de eventosprotected void sizeChanged El AMS llama a este método

(int w, int h) cuándo el área disponiblepara el objeto Displayable es modificada

void setTicker(Ticker ticker) Establece un Ticker a la pantallavoid setTitle(String title) Establece un título a la pantalla

Tabla 5.8: Métodos de la Clase Displayable.

Tipo DescripciónBACK Petición para volver a la pantalla anterior

CANCEL 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ónun Listener para la captura de eventos

Tabla 5.9: Tipos de Commands.

Page 150: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 150/318

 

128 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Ejemplo de un Command con la etiqueta “Atras ”:new Command(“Atras”,Command.BACK,1)

La tabla 5.10 de la pág. 128 muestra los métodos de la clase Command.

Método Devuelve el tipo del Commandpublic int Petición para volver a la

getCommandType() 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

Tabla 5.10: Métodos de la Clase Command.

No solo basta con crear objetos Command , para poder controlar algúnevento de la aplicación . Otra tarea pendiente es implementar la interfazCommandListener , la cual define un método abstracto llamado CommandAc-tion(Command d, Displayable d), donde debe ser implentado dicho método,ya que una interfaz sólo define métodos abstractos, es tarea de la clase queimplementa dicha interfaz 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 .

5.5.4 Interfaz de Usuario de Alto Nivel

Para comenzar se verá la clase Screen  que es la superclase de todas las clasesque 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 MIDP 2.0, que es la más reciente, estos cuatro métodos han sido incluidos en la claseDisplayable .

Page 151: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 151/318

 

5.5. INTERFACES GRÁFICAS DE USUARIO 129

La Clase Alert

El objeto Alert  representa una pantalla de aviso. Normalmente se usa cuandose quiere avisar al usuario de una situación especial como, por ejemplo, unerror .

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:

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 5.11 de la pág. 129.

Método Devuelve el tipo del CommandALARM Aviso de una Petición previa

CONFIRMATION Indica la aceptació de una acció

ERROR Indica que ha ocurrido un errorINFO Indica algún tipo de informaciónWARNING Indica que puede ocurrir algún problema

Tabla 5.11: Tipos de Alerta.

Page 152: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 152/318

 

130 CAPÍTULO 5. JAVA 2 MICRO EDITION 

La Clase List

La clase List  hereda de la clase Screen , pero presenta una funcionalidad másamplia que la clase Alert . La clase List  proporciona una pantalla que contieneuna lista de elementos sobre los que el usuario puede seleccionar. Esta claseimplementa la interfaz Choice , que define constantes que describen tres tiposbá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.

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 5.12 de la pág. 131 se puede observar los distintosmétodos de la clase List .

La Clase TextBox

La clase TextBox  implementa un componente de edición de texto, que ocupatoda 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 .

Page 153: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 153/318

 

5.5. INTERFACES GRÁFICAS DE USUARIO 131

Métodos Descripciónint append(String texto, Añade un elemento

Image imagen) al final de la listavoid 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 especificada

int getFitPolicy() Devuelve el modo en el que se muestranlas entradas de la lista por pantalla

Font getFont(int pos) Devuelve la fuente del elemento posImage getImage(int pos) Obtiene la imagen de una

posicióndeterminadaint getSelectedFlags Almacena el estado de selección

(bolean[] array) en un arrayint getSelectedIndex() Obtiene el (i)ndice del

elemento seleccionadoString getString(int pos) Obtiene el texto del elemento

indicado por posboolean isSelected(int pos) Determina si est(a) seleccionado

el elemento

void 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 Establece la fuente de la

(int pos, Font fuente) entrada indicada en posvoid setSelectCommand Selecciona el Command a usar

(Command cmd)int setSelectedFlags Reemplaza el estado de selección

(bolean[] array) por el de arrayint setSelectedIndex(int pos, Reemplaza el estado de la selección

boolean selec)int size() Obtiene el número de elementos

Tabla 5.12: Métodos de la Clase List.

Page 154: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 154/318

 

132 CAPÍTULO 5. JAVA 2 MICRO EDITION 

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.

• 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 contenedor deun 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,por ejemplo, se desea usar una misma imagen en más de un formulario, sedebe borrar esa imagen de un formulario antes de insertarla en el que se va amostrar por pantalla.

Page 155: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 155/318

 

5.5. INTERFACES GRÁFICAS DE USUARIO 133

Si no se cumple esta regla, se lanzaría la excepción IllegalStateException .La tabla 5.13 de la pág.133 muestra los métodos de la clase Form .

Métodos Descripciónint append(Image imagen) Añade una imagen al formulario

int append(Item item) Añade un item al formularioint append(String texto) Añade un String al formulario

void delete(int num) Elimina el Item que ocupala posición num

void deleteAll() Elimina todos los Items del formulario

Item get(int num) Devuelve el Item que se encuentraen la posici(o)n num

int getHeight() Devuelve la altura del áreadisponible para los Items

int getWidth() Devuelve la anchura del área disponiblepara los Items

void insert(int num, Inserta un Item justo antes delItem item) que ocupa la posición num

void set(int num, Reemplaza el Item que ocupa laItem item) posici(o)n num

boolean isSelected(int pos) Determina si est seleccionado el elemento

void setItemStateListener Establece un listener(ItemStateListener listener eventos capturar

int size() Devuelve el número de Itemsdel formulario

Tabla 5.13: Métodos de la Clase Form.

Manejo de Eventos

El manejo de eventos  en un formulario es muy similar al manejo de eventos de los Command  vistos anteriormente. Nada 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 se

Page 156: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 156/318

 

134 CAPÍTULO 5. JAVA 2 MICRO EDITION 

ejecuta 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.*;

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 157: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 157/318

 

5.5. INTERFACES GRÁFICAS DE USUARIO 135

La Clase StringItem

La clase StringItem  es la clase más simple que deriva de Item . Es una cadenano modificable de texto, es decir, una cadena de texto con la que el usuariono puede interactuar de ninguna manera.

Para construir un StringItem  se hace uso de cualquiera de sus dos cons-tructores:

• 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 5.14 de lapág. 135

Métodos Descripciónint getAppearanceMode() devuelve la apariencia del texto

Font 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

Tabla 5.14: Métodos de la Clase StringItem.

La Clase ImageItem

La clase ImageItem  brinda la posibilidad de incluir imágenes en un formulario.

Page 158: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 158/318

 

136 CAPÍTULO 5. JAVA 2 MICRO EDITION 

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, int apariencia).

El parámetro textoalt especifica una cadena de texto alternativa a la imagenen 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 5.15 de lapág. 137.

La Clase TextField

Un texfield  es un campo de texto que puede ser insertado en un formulario yen el cuál se puede editar texto. Tiene similitud con la clase TextBox . Susdiferencias son:

Page 159: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 159/318

 

5.6. RMS (RECORD MANAGEMENT SYSTEM) 137

Métodos DescripciónString 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 imagen

void setLayout(int layout) Establece un nuevo posicionadoen pantalla

Tabla 5.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 TextBox 

se 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 5.16 de la pág. 138

5.6 RMS (Record Management System)

El sistema de gestión de registros  (Record Management System, RMS ) se com-pone de una serie de clases  e interfaces que proporcionan soporte a un sistemasimple de base de datos que es usado para almacenar información.

Page 160: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 160/318

 

138 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Métodos Descripciónvoid delete(int desplazamiento, Borra caracteres del TextField

int longitud)int getCaretPosition() Devuelve la posici n del cursor en pantalla

Image getImage() devuelve la imagenint getChars(char[] datos) Copia el contenido del TextField en datosint getConstraints() Devuelve las restricciones de entrada

int 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 por

int des, int long) un subconjunto de caracteres de datos

void setConstraints Establece las restricciones(int restricciones) de entrada

void setInitialInputMode Establece un tipo(String caracteres) de entrada inicial

int setMaxSize(int capacidad) Establece el tamaño máximo del TextFieldvoid setString(String texto) Establece el contenido del TextFieldvoid setString(String texto) Establece el contenido del TextField

int size() Devuelve el número de caracteres

Tabla 5.16: Métodos de la Clase TextField.

Page 161: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 161/318

 

5.6. RMS (RECORD MANAGEMENT SYSTEM) 139

El objetivo del RMS  es almacenar datos de tal forma que estén disponiblesuna vez que el MIDlet  pare su ejecución.

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  (record store  ).

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 ) [14].

5.6.1 Modelo de Datos

Como ya se ha dicho, el RMS  está implementado en una base de datos  basadaen registros ; ver fig. 5.8 de la pág. 139.

Figura 5.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. 5.9 de la

Page 162: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 162/318

 

140 CAPÍTULO 5. JAVA 2 MICRO EDITION 

pág 140.

Figura 5.9: Acceso a un RMS a Través de un MIDlet Suite.

5.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 de

una 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.

Page 163: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 163/318

 

5.6. RMS (RECORD MANAGEMENT SYSTEM) 141

Figura 5.10: Esturctura de Un Record Store.

Cada uno de estos registros está formado por dos unidades:

• 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. 5.10 de la pág. 141 se ilustra la estructura de un Record Store .

5.6.3 Creación de un Record Store

El API  de MIDP  incluye un paquete para el RMS , llamado javax.microedition.rms .Este paquete incluye clases  e interfaces que proporcionan un marco de 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  de

una 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).

Page 164: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 164/318

 

142 CAPÍTULO 5. JAVA 2 MICRO EDITION 

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:

• 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 Store a 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 aalguna MIDlet suite especificada por los parámetros vendorName  y suiteName .

El acceso vendrá limitado por el tipo de autorización del Record Store cuando 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, Re-cordStoreException.

En la tabla 5.17 de la pág. 143 se pueden apreciar los métodos que pro-porcionan operaciones con los Record Stores .

Page 165: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 165/318

 

5.6. RMS (RECORD MANAGEMENT SYSTEM) 143

Métodos DescripciónString getName() Devuelve el nombre del Record Storeint getVersion() Devuelve la versi n del Record Store

long getLastModified() Devuelve la marca temporal

int getNumRecords() Devuelve el número de registrosint getSize() Devuelve el número de bytesocupado por el Record Store

int getSizeAvailable() Devuelve el tama(n)o disponiblepara añadir registros

String[] listRecordStores() Devuelve una lista con losnombres de los Record Stores

void deleteRecordStore Elimina del dispositivo al Record(String name) Store especificado por el

parámetro nameRecordEnumeration enumerate- devuelve un objeto

Records(RecordFilter RecordEnumerationfilter, RecordComparator

comparator, booleanactualizado)

void addRecordListener Añade un listener para(RecordListener listener) detectar cambios en el Record Store

void removeRecordListener Elimina un listener(RecordListener listener)

Tabla 5.17: Métodos Generales de la Clase RecordStore.

Page 166: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 166/318

 

144 CAPÍTULO 5. JAVA 2 MICRO EDITION 

5.6.4 Manipulación de Registros

Una vez creado o abierta la comunicación con el Record Store , se puede leer,escribir, modificar o borrar registros como se desee. Para ello, se usan losmétodos de la clase RecordStore  que se ven en la tabla 5.18 de la pág.144.

Métodos Descripciónint addRecord(byte[] datos, Añade un registro

int offset, int numBytes) al Record Storevoid deleteRecord(int id) Borra el registro id del Record Store

Int getNextRecordId() Devuelve el siguiente id del registro

que se vaya a insertarbyte[] getRecord(int id) Devuelve el registro con identificador id

int getRecord(int id, Devuelve el registro con identificadorbyte[] buffer,int offset) id en buffer a partir de offset

int getRecordSize(int id) Devuelve el tama(n)o del registro idvoid setRecord(int id,byte[] Sustituye el registro id

datonuevo, int offset, con el valor de datonuevoint tamaño)

Tabla 5.18: Métodos Para Manejo de Registros.A continuación se mostrará un ejemplo que utiliza un Record Store  de

 jugadores, donde se pueden ingresar nuevos jugadores y su puntaje obtenido.

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

import javax.microedition.lcdui.*;

import javax.microedition.rms.*;

import java.io.*;public class Rms extends MIDlet implements CommandListener{

protected Display d;

protected Form form;

protected TextField textField;

Page 167: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 167/318

 

5.6. RMS (RECORD MANAGEMENT SYSTEM) 145

protected TextField textField1;protected Command ingresar, volver;

protected Alert alert;

protected TextField textField2;

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;

}

Page 168: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 168/318

 

146 CAPÍTULO 5. JAVA 2 MICRO EDITION 

public TextField getTextField() {if (textField == null) {

textField = new TextField(“Nombre jugador”, “”, 255,

TextField.ANY);

}

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”);

Page 169: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 169/318

 

5.6. RMS (RECORD MANAGEMENT SYSTEM) 147

abrirRecordStore();leerRegistro();

cerrarRecordStore();

}

}

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;

}

Page 170: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 170/318

 

148 CAPÍTULO 5. JAVA 2 MICRO EDITION 

private void cargarDatos(){

abrirRecordStore();

// luego se graban los datos y despues cierra la conexion

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();

Page 171: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 171/318

 

5.6. RMS (RECORD MANAGEMENT SYSTEM) 149

dos = new DataOutputStream(baos);dos.writeUTF(cliente);

dos.writeUTF(doc);

dos.writeUTF(pun);

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();

}

Page 172: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 172/318

 

150 CAPÍTULO 5. JAVA 2 MICRO EDITION 

bais.close();dis.close();

}catch(Exception e){

System.out.println(“error al leer registros”);

}

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);

}

}

Page 173: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 173/318

 

5.6. RMS (RECORD MANAGEMENT SYSTEM) 151

return form2;

}

public void mostrarDatos(){

d.setCurrent(getForm2());

}

}

En la fig. 5.11 de la pág. 151 se puede apreciar las pantallas del ejemploen un emulador de Nokia.

Figura 5.11: Ejemplo RMS.

5.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++){

Page 174: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 174/318

 

152 CAPÍTULO 5. JAVA 2 MICRO EDITION 

longitud = rs.getRecordSize(i);registro = rs.getRecord(i);

System.out.println(“Registro ”+i+“: ”+ new String(registro,0,longitud));

}

Sin embargo, la clase RecordStore  proporciona la interfaz RecordEnumera-tion  que facilita ésta tarea.

Utilizando esta interfaz se puede sustituir el bucle anterior por el siguiente

có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 RecordEnume-ration  es mucho más intuitiva y permite realizar acciones como mover haciadelante o hacia atrás de una manera muy sencilla.

5.6.6 Búsqueda de Registros

Para realizar una búsqueda eficiente de registros, se debe implementar la in-

terfaz 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 175: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 175/318

 

5.7. COMUNICACIONES EN J2ME  153

5.7 Comunicaciones en J2ME

A pesar de la cantidad de restricciones que soportan los dispositivos MID  ytambién restricciones propias del lenguaje Java , la gran ventaja que posee estetipo de dispositivos es la posibilidad de estar siempre “conectados”.

La posibilidad de llevar un dispositivo con poco tamaño y que permitacomunicarse en cualquier momento y lugar abre un abanico de posibilidadesen el desarrollo de aplicaciones [14].

Las aplicaciones MIDP  para trabajar en red utilizan las clases contenidas

en los paquetes javax.microedition.io y java.io de la siguiente manera:

• El primer paquete contiene numerosas clases  que permitirán crear ymanejar diferentes conexiones de red. Estas conexiones podrán usardiferentes 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. 5.12 de la pág. 154 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.

5.7.1 Clases y Conexiones del Generic Connection Framework

Lo que proporciona el Generic Connection Framework  es una sola clase Con-nector  que esconde los detalles de la conexión.

Esta clase puede por sí misma crear cualquier tipo de conexión: Archivos,Http, socket,etc .

Page 176: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 176/318

 

154 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Figura 5.12: Jerarquía de Interfaces.

Clase Connector

Como se he dicho anteriormente, el GCF  proporciona la clase Connector  queesconde los detalles de la conexión. De esta forma se pueden realizar cual-quier tipo de conexión usando sólo esta clase y sin preocuparnos de cómo seimplementa 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() devuelve

Page 177: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 177/318

 

5.7. COMUNICACIONES EN J2ME  155

un objeto que implementa la interfaz Connection .En la tabla 5.19 de la pág. 155 se puede apreciar los métodos de la clase

Connector .

Métodos Descripciónpublic static Connection Crea y abre una conexión

open(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ón

String dir, int mode, especificando el permisoboolean tespera) y tiempo de esperapublic static DataInputStream Crea y abre una conexión de

openDataInputStream(String dir) entrada devolviendo paraello un DataInputStream

public static DataOutputStream Crea y abre una conexi[on deopenDataOutputStream(String dir) salida a través de

un DataOutputStreampublic static InputStream Crea y abre una conexión de

openInputStream(String dir) entrada usando un InputStreampublic static OutputStream Crea y abre una conexión de

openOutputStream(String dir) salida devolviendo paraello un OutputStream

Tabla 5.19: Métodos de la Clase Connector.

Los tipos de permisos se pueden ver en la tabla 5.20 de la pág 156.

La Interfaz Connection

La interfaz Connection se encuentra en lo más alto de la jerarquía de interfacesdel Generic Connection Framework , por lo que cualquier otra interfaz derivade é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:

Page 178: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 178/318

 

156 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Modo DescripciónREAD Permiso de solo lectura

READ_WRITE Permiso de lectura y escrituraWRITE Permiso de solo escritura

Tabla 5.20: Tipos de Permisos.

public void close(), que realiza el cierre de la conexión.

Interfaz InputConnection

La interfaz InputConnection  representa una conexión basada en streams de entrada . 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();

Interfaz OutputConnection

La interfaz OutputConnection  representa una conexión basada en streams de 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 .

Page 179: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 179/318

 

5.7. COMUNICACIONES EN J2ME  157

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);

}

5.7.2 Comunicaciones HTTP

El protocolo HTTP  es un protocolo de tipo petición / respuesta . El funcio-namiento de este protocolo es el siguiente: El cliente realiza una petición alservidor 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 unservidor web (servidor). En este caso la comunicación se realiza a través deun MIDlet (cliente) y un Servlet (servidor) que recibirá peticiones y devolverálos resultados.

Una conexión HTTP  pasa por tres estados que se pueden ver en la fig.5.13de la pág 158.

Establecimiento de la Conexión

En este estado es donde se van a establecer los parámetros de la comunicación.

Page 180: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 180/318

 

158 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Establecimiento

de

conexión

Sin

ConexiónConectado

 

Establecimiento

de

conexión

Sin

ConexiónConectado

Figura 5.13: Estados de una Conexión HTTP.

Page 181: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 181/318

 

5.7. COMUNICACIONES EN J2ME  159

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 5.21 de la pág.159 se pueden apreciar estos métodos.

Método Descripciónpublic void setRequestMethod(String tipo) Establece el tipo de petición

public void setRequestProperty Establece una propiedad de la(String clave, String valor) petición

Tabla 5.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 5.22 de la pág. 5.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

Tabla 5.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 5.23 de la pág. 160 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;

Page 182: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 182/318

 

160 CAPÍTULO 5. JAVA 2 MICRO EDITION 

Campo Descripciónpublic void setRequest- Establece el tipo de peticiónMethod (String tipo)

User-Agent Tipo de contenido quedevuelve 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 dela petición o se quiere dejar abierta

Cache-Control Sirve para controlar el almacenamientode información

Expires Tiempo m ximo para respuesta del servidorIf-Modified-Since Pregunta si el contenido solicitado se ha

modificado desde una fecha dada

Tabla 5.23: Campos de la Cabezera.

HttpConnection hc = (HttpConnection)Connector.open(url);

//se informa el tipo de conexión a realizar

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“&”.

Page 183: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 183/318

 

5.7. COMUNICACIONES EN J2ME  161

Peticiones POSTEn este tipo de conexión, el cuerpo de la petición se envía en un stream

después de iniciar la conexión. El siguiente ejemplo muestra cómo se realizael enví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();

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

Page 184: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 184/318

 

162 CAPÍTULO 5. JAVA 2 MICRO EDITION 

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.

• 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().

Page 185: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 185/318

 

5.7. COMUNICACIONES EN J2ME  163

Estado de Cierre

La conexión entra en este estado una vez que se termina la comunicación entreel 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 del MIDlet como del Servlet que recibe la peticion y devuelve una respuesta.

Código 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, Run-nable{

private Display mDisplay;

private Form mMainScreen;

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);

Page 186: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 186/318

 

164 CAPÍTULO 5. JAVA 2 MICRO EDITION 

}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...”);

mDisplay.setCurrent(waitForm);

Thread t = new Thread(this);

t.start();

}

}

// metodo Runnable

public void run() {

String url = “http://localhost:9080/hiloServer/ServerHilo”;

Page 187: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 187/318

 

5.7. COMUNICACIONES EN J2ME  165

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();

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) {

Page 188: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 188/318

 

166 CAPÍTULO 5. JAVA 2 MICRO EDITION 

try { in.close(); }catch (IOException ioe) {}

}

if (hc != null) {

try { hc.close(); }

catch (IOException ioe) {}

}

}

mDisplay.setCurrent(resultsForm);

}

Código 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 {

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;

Page 189: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 189/318

 

5.7. COMUNICACIONES EN J2ME  167

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 190: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 190/318

Page 191: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 191/318

 

Capítulo 6

Introducción al DB2 

6.1 Bases de Datos

La necesidad de mejorar la manera de acceder y manejar los datos ha evolucio-nado con el transcurso del tiempo hasta llegar a la generación de los sistemasde 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 y relacionados entre sí, y un conjunto de programas que permitan a los usuarios acceder 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 almacena-miento 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

169

Page 192: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 192/318

 

170 CAPÍTULO 6. 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 “conjunto

exhaustivo, 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ón diferente y no predecible en tiempo, donde la información se encuentra alma-cenada en una memoria auxiliar que permite el acceso directo a un conjuntode programas que manipulan esos datos ” [19].

6.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.

6.1.2 Ventajas de las Bases de DatosAlgunas 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 manualmen-te.

Ahorro de trabajo: ya que las máquinas son encargadas de manejar estas

bases 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 193: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 193/318

 

6.2. SISTEMA DE ADMINISTRACIÓN DE BASES DE DATOS  171

Disminución de la Redundancia: La duplicación de los datos implicamayor trabajo en el mantenimiento. Gracias a que las bases de datos dismi-niyen 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.

6.2 Sistema de Administración de Bases de DatosUna base de datos es una colección de tablas y objetos relacionados entre sí yorganizados como un grupo. La estructura de una base de datos se muestraen la fig.6.1 de la pág. 172.

Un DBMS es un conjunto de programas que maneja todos los accesos alas bases de datos; ver fig. 6.2 de la pág 172.

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 194: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 194/318

 

172 CAPÍTULO 6. INTRODUCCIÓN AL DB2

Figura 6.1: Estructura de Una Base de Datos

Figura 6.2: Sistema de Administracion de Bases de Datos

Page 195: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 195/318

 

6.3. ORGANIZACIÓN DE BASES DE DATOS 173

6.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.

6.3.1 Bases de Datos Jerárquicas

Estructura los campos en nodos en una estructura jerárquica. Los nodos sonpuntos 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 en

particular, 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 fig.6.3 de la pág. 174).

El Nodo Padre  es la Ciudad de Salida en este caso es (Caracas), Nodos Hijos  representando las Ciudades Destino que tiene a su vez Nodos Hijos ,que son el Número de Vuelo. El Número de Vuelo tendrá también Nodos Hijos , 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 padrepor hijo y ausencia de relaciones entre los nodos hijos.

Page 196: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 196/318

 

174 CAPÍTULO 6. INTRODUCCIÓN AL DB2

Figura 6.3: Modelo de Bases de Datos Jerárquica

6.3.2 Bases de Datos en Red

Se trata también de una organización jerárquica de nodos, pero un nodo hijopuede tener más de un solo nodo padre (relación muchos a muchos). Existenlos punteros, que son conexiones adicionales entre nodos padres y nodos hijos,que permiten acceder a un nodo por vías distintas accediendo al mismo endirecció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 fig. 6.4 de la pág.175).

Cada Producto puede ser distribuido por más de un Vendedor , así mismocada Vendedor  puede encargarse de diferentes Ciudades .

6.3.3 Bases de Datos Relacional

Esta organización ofrece la mayor flexibilidad ya que los datos se almacenan enTablas  diferentes, conformadas así mismo por Filas y Columnas . Una tablase denomina relación. En una Tabla  las Filas  contienen los Registros . LasColumnas  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.

Page 197: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 197/318

 

6.3. ORGANIZACIÓN DE BASES DE DATOS 175

Figura 6.4: Modelo de Bases de Datos en Red

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 de Clientes  y Tabla de Pedidos  (ver fig. 6.5 de la pág. 176).

Las órdenes que pertenecen a un determinado cliente son identificadas

colocando 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 Base de Datos Relacionales

• Estructuras muy simples.

• Poca riqueza semántica.

• No soporta tipos definidos por el ususarios (sólo Dominios ).

• No soporta Recursividad .

• Falta de Procesamiento/Disparadores .

• No admite Herencia .

Page 198: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 198/318

 

176 CAPÍTULO 6. INTRODUCCIÓN AL DB2

Figura 6.5: Modelo de Bases de Datos Relacional

6.4 Introducción a DB2 UDB 

DB2 UDB Universal Database  es una Base de Datos Universal. Es completa-mente escalable, veloz y confiable.

Corre en modo nativo en casi todas las plataformas como ser: Windows Vista, NT, Sun Solaris, HP-UX, AIX U, OS/2 entre otros.

DB2  es un software de base de datos relacional . Es completamente 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 fuertementeescalable. 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.

Page 199: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 199/318

 

6.4. INTRODUCCIÓN A DB2 UDB 177

6.4.1 Características Generales del DB2 UDB 

DB2 UDB  es el producto principal de la estrategia de Data Management de IBM .

DB2 UDB  es un sistema para administración de Bases de Datos Relacio-nales (RDBMS). Es multiplataforma, especialmente diseñada para ambientesdistribuidos, permitiendo que los usuarios locales compartan información conlos recursos centrales. Es el sistema de gestión de datos que entrega una pla-taforma de base de datos flexible y rentable para construir un sistema robustopara 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 protecciónde los datos  aún en caso de que los sistemas sufran un colapso, y de Seguridad permitiendo realizar respaldos en línea con distintos grados de granularidad,

sin que esto afecte la disponibilidad de acceso a los datos  por parte de losusuarios.

Múltiples Usos

Provee la capacidad de hacer frente a múltiples necesidades, desde Procesa-miento Transaccional de Misión Crítica (OLTP), hasta análisis exhaustivo delos datos para el soporte a la toma de decisiones (OLAP).

Escalabilidad

Sus características distintivas de Escalabilidad  le permiten almacenar informa-ción en un amplio rango de equipos, desde un PC portátil hasta un complejoambiente de mainframes  procesando en paralelo.

Page 200: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 200/318

 

178 CAPÍTULO 6. INTRODUCCIÓN AL DB2

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 como unabase de datos muy poderosa, pero difícil de instalar y usar.

En esta versión (DB2 UDB V. 8.1), IBM  agregó muchas herramientasgráficas para facilitar el uso para los usuarios, como también para los adminis-tradores y desarrolladores. Dicha versión incluye guías para operaciones comoinstalación, configuración de performance, setup, etc. Además, se agregaronherramientas para facilitar las tareas de integración con otras bases de datos,tecnologías de networking  y desarrollo de aplicaciones.

Universalidad

DB2 UDB es, además, la única base de datos realmente universal; es multi-

plataforma (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 fig. 6.6 de lapág.179) .

• Documentos XML ( XML Extender) (ver fig. 6.7 de la pág.179).

Funciones Complementarias del DB2 UDB

Conectividad

Las herramientas de conectividad  permiten acceder a los datos  más allá dedonde ellos se encuentren. El slogan cualquier cliente, a cualquier servidor,

Page 201: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 201/318

 

6.4. INTRODUCCIÓN A DB2 UDB 179

Figura 6.6: AIV Extender

Figura 6.7: XML Extender

Page 202: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 202/318

 

180 CAPÍTULO 6. 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 , desdeWindows Vista, NT , Windows 95/98 , OS/2  o cualquiera de los Unix  sopor-tados. Además, el producto Datajoiner  posibilita acceder de forma única ytransparente a los datos residentes en Oracle, Sybase, Informix, Microsoft SQLServer, IMS, VSAM  y otros.

6.5 DB2 UDB Versión 8.1

La versión 8.1 ofrece un soporte más potente para Business Intelligence, Ges-tión de Datos y Soluciones e-business.

DB2 Universal Database Versión 8.1 contiene muchas características nue-vas, que incluyen el Centro de desarrollo, funciones ampliadas de XML Exten-der, soporte de Linux para DB2 Warehouse Manager, integración de SpatialExtender con herramientas de IBM Business Intelligence, un nuevo Centro deduplicación, mejoras de enlace y rendimiento de DB2 Data Links Manager.Nuevas herramientas de gestión y supervisión de bases de datos, soporte de 64bits  ampliado y nuevos asistentes de Instalación de DB2  y Centro de control 

de DB2 .

6.5.1 Centro de Desarrollo

En la versión 8.1, el Centro de desarrollo sustituye al Stored Procedure Builder de anteriores versiones y proporciona un funcionamiento incrementado.

Mediante el Centro de desarrollo, el usuario puede desarrollar procedimien-tos almacenados y funciones definidas por el usuario como se muestra en la fig.6.8 de la pág. 181. También es posible correlacionar tipos estructurados delos Enterprise JavaBeans . Los asistentes simplifican las tareas de desarrollo.

Las nuevas características incluyen:

• Soporte de varios proyectos y conexiones de base de datos.

• La Vista de servidor para examinar los objetos de desarrollo en el servi-dor.

Page 203: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 203/318

 

6.5. DB2 UDB VERSIÓN 8.1 181

• Depurador de SQL para depurar rutinas; incluye vistas para puntos deinterrupción, variables y pila de llamadas.

• Una interfaz mejorada para controlar el entorno de desarrollo.

• Asistentes para construir funciones definidas por el usuario para MQSe-ries, fuentes de datos OLE DB y documentos XML.

• Asistentes para exportar, importar y desplegar rutinas e información deproyectos Productos y Paquetes Nuevos.

Figura 6.8: Centro de Desarrollo

6.5.2 Mejoras en XML Extender

Se han añadido nuevas características a XML Extender : ahora, XML Extendersoporta servicios de Web con los servicios Web Object Runtime Framework (WORF), conjunto de herramientas para implantar servicios de Web con DB2.Asimismo, XML Extender soporta ahora MQSeries , de forma que es posibleenviar documentos XML a las colas de mensajes de MQSeries , y recuperarlosde las mismas.

Page 204: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 204/318

 

182 CAPÍTULO 6. INTRODUCCIÓN AL DB2

6.5.3 DB2 Warehouse Manager

Se han añadido nuevas características y mejoras a DB2 Warehouse Manager :

Con el soporte de carga paralela nativa para DB2 Universal Database En-terprise Server Edition , es posible cargar grandes volúmenes de datos con másrapidez.

DB2 Warehouse Manager  tiene capacidades ampliadas, por lo que se puedeincrementar y mejorar el rendimiento de las operaciones de depósito, mani-pular y localizar metadatos más deprisa, y ejecutar el agente de depósito,programas y transformadores en Linux.

Los conectores para la Web y SAP se han mejorado en el paquete de DB2 Warehouse Manager .

6.5.4 Centro de Depósito de Datos de DB2

Se han añadido nuevas características al Centro de depósito de datos:

El soporte de servidor de depósito se amplía a AIX. El servidor de depósi-to y el iniciador de sesiones de depósito, que se ejecutan como servicios en

Windows, se ejecutan como daemons en AIX.Es posible exportar e importar metadatos del lenguaje de código y exportar

estos objetos:

• Tablas, archivos y vistas de origen.

• Tablas y archivos de destino.

El proceso en cascada (varios intervalos) permite gestionar varios pasosdefiniendo y habilitando una planificación y un flujo de tareas para los procesos

que contienen los pasos.Con el nuevo paso Select and Update de SQL, se puede actualizar una

tabla de destino del depósito de datos sin sustituir la tabla completa ni grabarcódigo adicional.

Ahora, la Guía de aprendizaje de Business Intelligence se compone de dosguías de aprendizaje más cortas: Guía de aprendizaje de Business Intelligence:

Page 205: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 205/318

 

6.5. DB2 UDB VERSIÓN 8.1 183

Introducción al Centro de depósito de datos y Guía de aprendizaje de BusinessIntelligence: Lecciones ampliadas sobre depósito de datos.

6.5.5 Asistentes de DB2

Asistente para la Configuración de DB2

La instalación de DB2 en plataformas Windows y UNIX resulta más fácilmediante la utilización del Asistente para la configuración de DB2. Esta in-terfaz gráfica permite instalar productos DB2 directamente o crear archivos

de respuestas para permitir una instalación posterior. En los sistemas UNIX,también se puede utilizar el Asistente para la configuración de DB2 para re-alizar funciones de gestión de instancias.

Asistentes del Centro de Control

En DB2 Versión 8.1, los asistentes que están disponibles en las Herramientasde administración se han ampliado para abarcar un ámbito más amplio defunciones, en comparación con las de que se disponía en versiones anterioresde DB2 . Por ejemplo, un asistente de DB2 Versión 8.1 brinda el conjunto

total de opciones disponibles para crear una tabla.Como se puede observar en la fig.6.9 de la pag.184 el asistente para creación

de tablas, que va guiando paso a paso al usuario a través de una interfazamigable, permitiendo crear campos de la tabla, definir una clave, definir uníndice y tambien restricciones a la tabla.

6.5.6 Centro de Mandatos

El centro de mandatos permite realizar funciones sobre la base de datos co-

mo realizar consultas SQL (insert, delete, update, select), crear estructurasde tablas, modificar indices, etc. Donde un usuario avanzado puede escribirdirectamente la sentencia y ejecutarla; ver fig.6.10de la pag.184.

Para usuarios menos avanzados también se dispone de un asistente lla-mado “SQL ASSIST ” que va ayudando al usuario para la realización de unaconsulta.

Page 206: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 206/318

 

184 CAPÍTULO 6. INTRODUCCIÓN AL DB2

Figura 6.9: Asistente Para Crear Tabla

Figura 6.10: Centro de Mandatos

Page 207: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 207/318

 

Capítulo 7

WebSphere Studio

7.1 ¿Que 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.

• 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 servicio atodos los visitantes del sitio en la web. Administra cargas pico en los servidoresweb, 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.

185

Page 208: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 208/318

 

186 CAPÍTULO 7. WEBSPHERE STUDIO

7.2 Plataforma de Software

La creciente complejidad de los aplicativos de e-business crea muchos desafí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. Las

soluciones de software WebSphere  ofrecen las herramientas necesarias paraalcanzar los objetivos de e-business.

Al proporcionar un banco de trabajo abierto que integre y simplifiquediferentes tareas, roles y herramientas, el software WebSphere  ayuda a que elequipo desarrolle, entregue y administre los aplicativos de e-business [11].

El ambiente de desarrollo del software WebSphere :

• Da soporte al desarrollo y cambios rápidos de nuevos aplicativos utili-zando un paradigma de desarrollo basado en reglas.

• Proporciona código pre-construido, pre-testeado.

• Proporciona herramientas especializadas para página Web y desarrollode módulos migrables.

Adicionalmente, servicios basados en estándares Web permiten mezclar ycombinar componentes funcionales de diferentes orígenes de tal forma que sepuede proveer nuevos procesos y servicios al mercado rápida y eficientemente.

La capacidad de un portal de negocios tiene importancia crítica para per-mitir que las personas interactúen y transaccionen de forma personalizada condiversos recursos de negocios. Empieza dejando a la medida los ambientesde usuarios para sus necesidades específicas, integrándolo entonces con otrosusuarios para permitir colaboración en tiempo real, y con los diversos ambien-tes de TI.

Todo esto permite que las personas trabajen en conjunto de forma másproductiva mientras actúan sobre la información que necesitan. La capacidad

Page 209: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 209/318

 

7.2. PLATAFORMA DE SOFTWARE  187

del portal de negocios es proporcionada por la familia WebSphere Portal  y lafamilia WebSphere Commerce  .

7.2.1 WebSphere for Commerce - Soluciones B2B

El e-commerce consiste en realizar negocios con sus clientes, proveedores ycontratistas comerciales sin dificultades en cuanto al tiempo, limitaciones or-ganizacionales o fronteras geográficas.

Con el software With WebSphere Commerce , se establecen relaciones másestrechas, más productivas con sus clientes y contratistas comerciales en todoslos puntos de contacto. Facilita que sus clientes y contratistas comercialeshagan negocios hoy y que continúen mañana.

7.2.2 WebSphere for Commerce - Soluciones B2C

El software WebSphere Commerce  le permite ir a la línea de las ventas onlinea los consumidores.

Crea campañas de marketing dinámicas, fija como objetivo diferentes seg-mentos de mercado, elabora promociones de producto personalizadas, y mejora

el servicio a clientes.

Esta solución ayuda a crear rápidamente y mantener eficientemente unsitio interactivo, de alto volumen.

WebSphere Commerce  proporciona:

• Personalización del B2B para ayudar a administrar las relaciones denegocio.

• Tecnología de ventas asistidas para conducir a los clientes y contratistas

a través de la agrupación de requisitos y del proceso de selección delproducto.

• Herramientas de cooperación online y de formación de equipo virtualpara mejorar la eficacia de contratistas comerciales, canal y clientes.

• Administración de pedidos anticipado resultando en capacidades de op-timización de operaciones.

Page 210: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 210/318

 

188 CAPÍTULO 7. WEBSPHERE STUDIO

• Capacidades avanzadas de inteligencia de negocios para decisiones fun-damentas del e-business.

7.2.3 WebSphere for Commerce-Soluciones de Portal

La integración del WebSphere Commerce  y WebSphere Portal  permite que lasempresas se dirijan a múltiples sectores con necesidades de personalización po-sitivas de soluciones de comercio tanto para las áreas B2B o B2C. Actualmente,muchas empresas crean sitios separados para cada división, lo que demanda

mucho tiempo y cuesta caro.El abordaje racionalizado proporciona rápido retorno de inversión al elimi-

nar la necesidad de que la empresa mantenga múltiples sitios. Las empresastambién aumentan la eficiencia de interacciones con clientes y contratistas, loque mejora la retención del cliente.

Los productos IBM WebSphere Commerce  y WebSphere Portal  proporcio-nan un único punto de interacción con información dinámica y personalizada,aplicativos, procesos y personas, que son esenciales para construir portalesexitosos para el B2B y B2C.

Con el portal habilitado para el comercio, se puede crear un ambientepersonalizado de comercio provechoso para ambos ambientes, B2B y B2C:

• Ambientes B2B: organizar eficientemente información online, serviciosy aplicativos para contratistas de negocio y proveedores a lo largo demúltiples divisiones en un portal.

• Ambientes B2C o de ventas al por menor: obtener ventas cruzadas eimpulsar los beneficios, mediante la oferta de acceso a productos, infor-

mación y servicios desde la Web y de dispositivos inalámbricos, así comoacceso consolidado a catálogos múltiples.

Con un portal de e-commerce integrado, se les puede ofrecer a los clien-tes, contratistas y proveedores acceso 24x7 a los aplicativos online - rápida y  fácilmente .

Page 211: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 211/318

 

7.2. PLATAFORMA DE SOFTWARE  189

7.2.4 WebSphere for Commerce-Soluciones Digital Media

Empresas de medios con volúmenes crecientes de activos digitales -fotos, vídeoclips, archivos en audio, ilustraciones e imágenes animadas- enfrentan nuevasexigencias reguladoras y el desafío de colocar esos activos disponibles onli-ne. El software WebSphere  permite administrar estos activos digitales  máseficazmente, alcanzando clientes en todos el mundo a través de la Web.

WebSphere Commerce para Medios Digitales  permite almacenar, buscar,ver, administrar, colaborar, comprar, vender y hacer download de activos digi-tales, alcanzando clientes en todo el mundo por la Web. Esta nueva oferta de

servicio de e-commerce combina el software WebSphere Commerce  aprobadopor la industria con las capacidades del IBM Content Manager, reforzado porla tecnología Java.

WebSphere Commerce para Medios Digitales  permite enriquecer la expe-riencia del consumidor y la interfase de compra B2B, creando nuevas relacionescon clientes al mismo tiempo en que fortalece las existentes y ayudando a ge-nerar y aumentar ganancias así como sus márgenes de beneficios.

WebSphere  ofrece un amplio portafolio de soluciones clasificadas en tresáreas críticas:

• Infraestructura y herramientas de Desarrollo (Fundation & Tools):

— Application server.

— WebSphere studio:

∗ IBM WebSphere Studio Site Developer.∗ IBM WebSphere Studio Application Developer.∗ IBM WebSphere Studio Application Developer Integration Edi-

tion.∗ IBM WebSphere Studio Enterprise Developer.

∗ IBM WebSphere Studio Homepage Builder.— Host Access.

• Alcance y experiencia con el usuario (Business Portals):

— WebSphere Portal.

— WebSphere Everyplace.

Page 212: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 212/318

 

190 CAPÍTULO 7. WEBSPHERE STUDIO

— WebSphere Commerce.

• Integración de negocio (Business Integration):

— WebSphere Business Integrator.

— WebSphere MQ Integrator.

7.3 Productos WebSphere Studio

WebSphere Studio es una familia de productos de software propietario de IBM ,aunque el término se refiere de manera popular a uno de sus productos espe-cíficos: WebSphere Application Server (WAS).

Todos los productos del WebSphere Studio fueron construidos sobre elWorkbench de Eclipse  como un sistema de plug-ins  conforme al estándar APIs del Workbenchs.

La familia del WebSphere Studio tiene actualmente los siguientes miembros(ver fig. 7.1 de la pág. 191):

• WebSphere Studio Site Developer Advanced .

• WebSphere Studio Application Developer .

• WebSphere Studio Application Developer Integration Edition .

• WebSphere Studio Enterprise Developer  .

Cada producto de la familia WebSphere Studio presenta el mismo entornode desarrollo integrado (IDE) y una base común de herramientas, por ejemplopara el desarrollo Java y Web (ver fig. 7.2 de la pág. 191).

Page 213: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 213/318

 

7.3. PRODUCTOS WEBSPHERE STUDIO 191

Figura 7.1: La familia del WebSphere Studio.

Figura 7.2: WebSphere Studio, entorno de desarrollo .

Page 214: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 214/318

 

192 CAPÍTULO 7. WEBSPHERE STUDIO

7.4 WebSphere Studio Application Developer

WebSphere Studio Application Developer  es un producto que se ha des-

arrollado basado en el Workbench  (banco de trabajo) de Eclipse .La plataforma del Workbench  de Eclipse  fue diseñada por IBM  y lanzada

a la comunidad de open-source  (código abierto).

Este Workbench  se ha diseñado para proveer la máxima flexibilidad en eldesarrollo de las herramientas y las nuevas tecnologías que pueden emerger enel futuro.

La familia del WebSphere Studio Application Developer  se basa en un am-biente integrado de desarrollo (IDE), donde este permite desarrollar, probar,eliminar errores y desplegar su usos. Donde también proporciona la ayuda

para cada fase del desarrollo del ciclo vida.Los líderes de la industria de software como: IBM, Borland, Merant, QNX 

Software Systems, Rational Software, RedHat, SuSE, TogetherSoft y WebGain formaron inicialmente la eclipse.org que actualmente administra los directoresdel Eclipse open source project .

Eclipse es una plataforma abierta para la integración de herramienta cons-

Page 215: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 215/318

 

7.4. WEBSPHERE STUDIO APPLICATION DEVELOPER  193

truida por una comunidad abierta de los abastecedores de la herramienta.Eclipse  se ha diseñado a partir de la necesidad de Construir, Integrar los

desarrollos útiles del uso de las tecnologías.

El valor más importante que tiene esta plataforma es: el rápido desarrollode herramienta siendo esta una de las características basadas en un modeloplug-in  (con enchufe) (ver fig. 7.3 de la pág. 193).

Figura 7.3: Plataforma de Eclipse.

7.4.1 Ventajas de Utilizar a WebSphere Studio Application 

Developer 

La ventaja fundamental consiste en la integración de todos los entornos de

desarrollo Java, Web en una única plataforma de desarrollo.

J2EE:

• Herramientas de importación/exportación, generación de código, ediciónde deployment descriptors estandars, extensiones y bindings (mapeos)específicos para WebSphere Application Server (WAS).

Page 216: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 216/318

 

194 CAPÍTULO 7. WEBSPHERE STUDIO

• Herramienta de mapeo EJB-RDB  soportanto tanto top-down, comobottom-up y meet-in-the-middle.

• Herramientas de edición gráfica de esquemas de bases de datos.

• Herramientas para la creación, edición y validación de ficheros EAR.

• Editores para deployment descriptors (ejb-jar.xml y application.xml).

Desarrollo Java:

• Nuevo Editor Visual Java  para GUIs (Swing y AWT).• Nueva generación de JavaDoc.

• Soporte JDK 1.3.

• Capacidad de utilizar diferentes JREs.

• Compilación incremental automática.

• Posibilidad de ejecutar código incluso con errores.

• Protección contra crashs y auto-recovery.

• Error Reporting y corrección.

• Editor Java con asistente contextual.

• Herramientas de refactoring de código.

• Búsquedas inteligentes y herramientas para comparar código y ”merge”.

• Scrapbook para evaluación rápida de código.

Web Services:

• Nuevo soporte UDDI Version 2.

• Soporte UDDI  privado.

• Nuevo soporte de WSIL.

• Posibilidad de crear un web service a partir de un fichero ISD .

Page 217: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 217/318

 

7.4. WEBSPHERE STUDIO APPLICATION DEVELOPER  195

• Visualización de UDDI business entry  para localización de web servicesexistentes.

• Creación de web services a partir de código existente (JavaBeans, RLSs,DB2 XML Extender calls, procedimientos almacenados DB2 y queries SQL).

• Crear wrappers SOAP y HTTP GET/POST  de código existente.

• Generación de proxies desde el Web Services Client/Wizard  para tratarmensajes SOAP .

• Generación de una aplicación de ejemplo, a partir de la cual crear elresto.

• Realizar el test de un web service local o remoto.

• Deployment de un web service sobre el entorno de test de tanto WebS-phere Application Server  como Tomcat.

• Publicar web services en un UDDI business registry .

• Nuevos menús pop-up para la creación y consumo de web services, ade-más de los típicos wizards.

XML:

• Entorno totalmente visual.

• Editor de XML con posibilidades de validación de documentos.

• Editor de DTD  con posibilidades de validación de documentos.

• Editor de XML schemas.

• Editor de XSL.

• Debugger de XSL y herramienta de transformación para aplicar XSL a XML.

• Editor de mapping XML - XML.

• Wizard de creación de XML a partir de queries SQL.

• Editor de mapping RDB - XML.

Page 218: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 218/318

 

196 CAPÍTULO 7. WEBSPHERE STUDIO

Desarrollo web:

• Nuevo soporte para XHTML y Struts .

• Nuevo entorno visual de construcción de aplicaciones basado en struts.

• Editor visual de HTML y JSPs.

• Edición y validación de JavaScript.

• Soporte de JSP  Custom tags (taglibs) 1.2.

• Edición de imágenes y animaciones.

• Edición de CSS .

• Importación via HTTP/FTP .

• Exportación vía FTP  a un servidor.

• Visualización de links, broken links, etc.

• Wizards para la creación de servlets.

• Wizards para la creación de proyectos J2EE .

• Wizards para la creación de aplicaciones web.

Testing y Deployment:

• Incrementa la productividad de forma muy importante.

• Entorno ligero de carga rápida.

• Permite pruebas unitarias locales.

• Permite debugger de código en el servidor a través del debugger integra-do.

• Permite configurar deiferentes aplicaciones web.

• TCP/IP  monitoring server.

• Permite instalar los siguientes entornos, tanto locales como remotos:(WebSphere Application Server AEs Version 4.0.3 and Version 5, WebS-phere Application Server - Express Version 5, Apache Tomcat).

Page 219: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 219/318

 

7.4. WEBSPHERE STUDIO APPLICATION DEVELOPER  197

Tracing, Monitoring y Performance:

• Performance Analyzer muestra los tiempos de ejecución y ayuda a de-tectar memory leaks.

• Muestra información de los objetos existentes.

• Tiene capacidades de “Pattern extraction”.

• Es posible monitorizar varios procesos simultaneamente, incluso corrien-do en diferentes máquinas.

• Codificación por colores de las clases.

• Presentación de los resultados en modo gráfico y estadístico.

• Soporte de profiling a nivel de objetos.

• Análisis de los logs de WebSphere Application Server  e interacción conla bases de datos de problemas.

• Edición de items en la base de datos de problemas.

Debugger:

• Muy similar al existente en VisualAge for Java.

• Permite realizar debug tanto a código local como a código residente enel servidor.

7.4.2 Desarrollando Aplicaciones Java

Los lineamientos que se deben seguis para crear una aplicacion Java en WebS-

phere Application Developer son los siguientes:

• Crear un proyecto Java.

• Crear paquetes dentro del proyecto.

• Crear clases.

Page 220: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 220/318

 

198 CAPÍTULO 7. WEBSPHERE STUDIO

• Ejecutar el programa.• Localizar errores.

Para crear un proyecto Java se debe seleccionar archivo → Nuevo → Pro-yecto, de desplegará el cuadro de diálogo de Nuevo Proyecto, se debe seleccio-nar Java y proyecto Java en el diálogo y hacer click en siguiente para iniciar elasistente de creación de proyectos. Luego se debe indicar en la primer páginael nombre del proyecto y click en aceptar; (ver fig.7.4 de la pag. 198).

Figura 7.4: Asistente de Proyecto Java.

El proyecto es creado con las opciones que se hayan configurados anterior-mente en las preferencias o con las que tiene por defecto. Estas preferenciaspuede ser modificadas dirigiendose al menu Ventana → Preferencias y luegoJava → Proyecto Nuevo.

Se pueden agregar paquetes al proyecto para tener una estructura másordenada de la aplicación. Para ello se debe seleccionar en la vista de explo-ración de paquetes Nuevo → Paquete en el menú. En la ventana de diálogo setiene que indicar el nombre del paquete y hacer clic en finalizar; ver fig. 7.5de la pag. 199.

Luego de haber finalizado el código y compilado los errores, se puede eje-cutar el programa. Se tiene que seleccionar la opcion ejecutar  de la barra de

Page 221: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 221/318

 

7.5. WEBSPHERE APPLICATION SERVER  199

Figura 7.5: Paquete Java.

herramientas.

Si es la primera vez que se ejecuta ese código se abre el diálogo ejecutar configuraciones . Como se puede ver en la fig. 7.6 de la pág. 200 se puede

seleccionar el tipo de configuración para ejecutar el programa.

7.5 WebSphere Application Server

7.5.1 Introducción

El WebSphere Application Server  representa una familia de software para ser-vidores 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 plata-forma abierta Java 2 y Java 2 Enterprise Edition (J2EE) y también proveesoporte para servicios bajo normas abiertas en la Web [3].

WebSphere Application Server, es una plataforma de alto desempeño y ex-trema escalabilidad para diseminar aplicativos dinámicos de e-business , pro-

Page 222: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 222/318

 

200 CAPÍTULO 7. WEBSPHERE STUDIO

Figura 7.6: Diálogo de Configuración de Ejecución.

porciona las funciones esenciales de e-business  de manipulación de transaccio-nes y ampliación de datos back-end  del negocio y aplicativos para la Web.

La plataforma ayuda a construir aplicativos que ejecutan esas funciones

con seguridad sólida, fiabilidad y escalabilidad.

7.5.2 WebSphere Application Server Como Plataforma Parael Comercio Electrónico

Brinda un soporte amplio para aplicaciones de comercio electrónico. Se carac-teriza por su flexibilidad para adaptarse a cambios en los mercados y en losobjetivos comerciales.

Construyendo aplicaciones en esta robusta plataforma, se pueden integrar

diversos 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. 7.7 de la pág. 201 se puede observar la plataforma del Software

Page 223: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 223/318

 

7.5. WEBSPHERE APPLICATION SERVER  201

Figura 7.7: WebSphere para e-bussines.

de WebSphere para e-bussines.

7.5.3 Application Server - Advanced Edition

La Edición Avanzada es la oferta del principal servidor de aplicativo dirigidoa desarrolladores profesionales de tecnología Java  que necesitan funcionalidadde servicios J2EE  y Web para aplicativos dinámicos de e-business .

Esta Edición del WebSphere Application Server, está disponible en tresconfiguraciones:

• Edición Avanzada :

— Proporciona integración sólida a las bases de datos, middlewareorientado 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 :

Page 224: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 224/318

 

202 CAPÍTULO 7. WEBSPHERE STUDIO

— 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 aplicati-vos 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 Linux en zSeries :

— La Edición Avanzada del WebSphere Application Server, para Li-nux en zSeries continúa cumpliendo el compromiso de IBM en cuan-to a mantener cobertura amplia para plataformas para el WebSphe-re Application Server .

— Este producto WebSphere tiene la combinación potente de un con- junto de dispositivos rico y soporte a estándares abiertos del WebS-phere Application Server  y el ambiente operacional familiar del sis-tema 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.

7.5.4 Application Server - Enterprise Edition

La Edición empresarial del IBM WebSphere Application Server , en junto conIBM WebSphere Studio Application Developer Integration Edition , ofrece unacombinación potente de tiempo de ejecución y herramienta que permite inte-grar activos IT existentes, mejorar la productividad del desarrollador y creary 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.

Page 225: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 225/318

 

7.5. WEBSPHERE APPLICATION SERVER  203

• 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.

7.5.5 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.

7.5.6 Servidor HTTP

IBM WebSphere Application Server  trabaja con un servidor HTTP para ma-nejar las peticiones de servlets y otros contenidos dinámicos desde las aplica-ciones 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.

7.5.7 Servidor de Aplicaciones

El servidor de aplicaciones colabora con el servidor Web intercambiando peti-ciones de clientes y respuestas de aplicaciones. Puede definir varios servidoresde aplicaciones, cada uno de ellos ejecutándose en su propia Máquina Virtual Java  (JVM).

Page 226: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 226/318

 

204 CAPÍTULO 7. WEBSPHERE STUDIO

7.5.8 Contenedor de EJB

El contenedor de EJB proporciona los servicios de tiempo de ejecución nece-sarios para desplegar y manejar componentes EJB, conocidos como enterprise beans . Es un proceso de servidor que maneja peticiones para beans de sesióny 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.

7.5.9 Contenedor Web

Los servlets y los archivos JSP (Java Server Pages) son componentes del ser-vidor 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 depetición y un objeto de respuesta, e invoca el método de servicio de servlets.El contenedor Web invoca el método destroy() del servlet cuando corresponday descarga el servlet, y después la JVM ejecuta la recolección de basura.

Page 227: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 227/318

 

7.5. WEBSPHERE APPLICATION SERVER  205

7.5.10 Contenedor de Clientes de Aplicaciones

Los clientes de aplicaciones son programas Java que se ejecutan normalmenteen un sistema de sobremesa con una interfaz gráfica de usuario (GUI) . Tienenacceso a toda la gama de componentes y servicios de servidor J2EE.

El contenedor de clientes de aplicaciones maneja programas de aplicacio-nes de Java que acceden a los beans enterprise, Java Database Connectivity(JDBC) y las colas de mensajes de Java Message Service. El programa Clientede aplicaciones J2EE se ejecuta en las máquinas cliente.

Este programa sigue el mismo modelo de programación Java que otrosprogramas Java; no obstante, el cliente de aplicaciones J2EE depende deltiempo de ejecución del cliente de aplicaciones para configurar su entorno deejecución, y utiliza el espacio de nombres JNDI (Java Naming and DirectoryInterface) para acceder a los recursos.

7.5.11 Sistema Principal Virtual

Un sistema principal virtual es una configuración que permite que una únicamáquina de sistema principal parezca varias máquinas de sistema principal.

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.

7.5.12 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, dife-rente 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óni-

Page 228: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 228/318

 

206 CAPÍTULO 7. WEBSPHERE STUDIO

mos 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.

El WebSphere Application Server  proporciona un host virtual predefini-do, denominado “el default_host”, con algunos seudónimos comunes, comoel IP de la máquina, nombre corto del host, y el nombre del host com-pleto. El seudónimo comprende la primera parte del camino para el acce-so a un recurso, como un servlet. Por ejemplo, localhost:80  en la peticiónhttp://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.

7.6 Workplace Client Technology Micro Edition

Workplace Client Technology Micro Edition (WCTME) es una plataforma in-tergrada para la extensión de aplicaciones empresariales existentes hacia dispo-sitivos clientes manejados por servidor como ser un computador de escritorio,sistemas móviles, PDAs, y otros dispositivos móviles y pervasivos.

El paquete integrado combina las herramientas WebSphere Studio Device Developer  y Micro Environment Toolkit for WebSphere Studio, con los tiemposde ejecucion de WebSphere Everyplace Micro Environment , Service Manage-ment Framework  (SMF), y WebSphere Everyplace Custom Environment , yel middleware (DB2e, MQe, Web Services ), para construir, testear y lanzarsoftware cliente manejado por servidor en dispositivos pervasivos.

En escencia WCTME  es la plataforma base para la familia WCT que ofreceIBM  y provee una plataforma robusta que soporta dispositivos desde teléfonos celulares , PDAs y otros dispositivos con teclado, móviles y hasta sistemas deescritorio.

Independientemente de que si la computadora está siempre, ocasionalmen-te o rara vez conectada, el modelo WCTME  permite extender las aplicacionesy modelos de programación usando los estándares de la industria y sin tenerque volver a reescribir todo usando estos dispositivos.

La plataforma WCTME  está construido como una combinación de unaplataforma cliente rica basado en el modelo de Eclipse  (originalmente ideado

Page 229: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 229/318

 

7.6. WCTME  207

para herramientas, y motivado para ser una plataforma de aplicación más ge-nérica) al igual que el modelo basado en navegador. Eclipse es una plataformapara la construcción de herramientas de desarrollo de software potentes y ricasaplicaciones de escritorio [5].

7.6.1 WebSphere Everyplace Micro Environment

WebSphere Everyplace Micro Environment  es una implementación de IBM  dela especificación J2ME que cumple con la autorización y líneas guias funcio-

nales definidas por Sun Microsystem  para obtener “Java Powered Logos ”.

7.6.2 WebSphere Everyplace Custom Environment

Similar a Websphere Everyplace Micro Enviroment , WebSphere Everyplace 

Custom Environment  provee un conjunto mayor de librerías y funcionespara habilitar a clientes y asociados a crear versiones más a medida de la Java run times  específica, sin necesariamente tener que cumplir con estándaresestablecidos.

7.6.3 J9

La J9  es una implementación independiente de IBM  de la Maquina Virtualde Java . La combinación de la J9  junto con la configuración  y los perfiles conforman el ambiente de ejecución o run times .

Las configuraciones  y perfiles  son librerías de clases en Java .

7.6.4 WebSphere Studio Device Developer

WebSphere Studio Device Developer  es un IDE  de IBM  para J2ME  que ex-tiende Eclipse para el desarrollo de aplicaciones Java  o C/C++ que corren endispositivos pervasivos, y forma el nucleo de el WCTME .

Page 230: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 230/318

 

208 CAPÍTULO 7. WEBSPHERE STUDIO

7.6.5 Java 2 Micro Edition (J2ME)

J2ME  es un plataforma Java  para dispositivos embebidos.

Al igual que las plataformas Enterprise J2EE  y escritorio J2SE , J2ME es un conjunto de APIs Java  estándar que entrega el poder y los beneficiosde la tecnología Java  a medida para los dispositivos embebidos, incluyendointerfaces de usuario flexibles, modelo de seguridad robusto, gran rango deprotocolos de red y soporte para aplicaciones conectadas y desconectadas a lared.

7.7 WebSphere Studio Device Developer

Device developer es un IDE  (Integraded Development Enviroment ) para eldesarrollo, depuración y despliegue de aplicaciones que serán lanzadas en com-putadoras de mano y otros dispositivos pequeños [5].

Esto ayuda a los desarrolladores a crear aplicaciones que habilitan a losdipositivos (teléfonos celulares, PDAs, y computadoras de mano) a formar

parte de una solución “e-businnes end-to-end ”.El entorno de desarrollo integrado también viene con una copia del WebS-

phere Micro Environment  (IBM-compatible con J2ME JVM), con licencia pa-ra el desarrollo.

Con WebSphere Studio Device Developer  se extiende las capacidades delbanco de trabajo o workbench permitiendo:

• Crear aplicaciones WebSphere Studio Device Developer  y correrlas local-mente.

• Crear una Suite  de MIDlet  y correla localmente (en un emulador deMIDlet ).

• Lanzar y depurar aplicaciones en varios dispositivos.

Page 231: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 231/318

 

7.7. WEBSPHERE STUDIO DEVICE DEVELOPER  209

7.7.1 Componentes de WebSphere Studio Device Developer

El Workbrenck  de Device Developer  incluye como componetes a una J9 , uti-lidades, y un paquete de herramientas para el desarrollo más el SmartLinker para el preenlazado de archivos class en la aplicación.

J9 Runtimes, Utilidades y Herramientas

El WebSphere Studio Device Developer  incluye como componentes a un paque-te de J9  runtimes, utilidades y herramientas, para construcción y lanzamiento

de aplicaciones Java en el ambiente de desarrollo.

Actualmente, los ambientes de desarrollos soportados son:

• Windows XP/2000.

• Red Hat Linux 8.

MicroAnalyzer

MicroAnalyzer  es usado para perfilar y analizar la ejecución de los programasen un dispositivo embebido.

En la vista Analizer  se pueden agregar eventos de usuario al código yratrear su ejecución en una prueba física corriendo en una maquina virtual J9 .Esta información puede ser usada para optimizar los programas en cuanto avelocidad, tamaño y eficiencia global.

7.7.2 Herramienta de Desarrollo C (CDT) para Eclipse

Device Developer incluye el CDT  (C Development Tooling ) de Eclipse  quepermite escribir código C  e integrar con aplicaciones Java .

Se pueden crear proyectos en lenguaje C  en el espacio de trabajo, construiry compilar estos proyectos y enlazarlos a otros proyectos (estos son, WebSphere Studio Device Developer  o otros proyectos Java ) en el espacio de trabajo oWorkSpace .

Page 232: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 232/318

 

210 CAPÍTULO 7. WEBSPHERE STUDIO

7.7.3 Arquitectura de Device Developer

WebSphere Studio Device Developer  forma parte de la familia WebSphere. To-do producto WebSphere Studio tiene un apecto en común, el WebSphere StudioWorkbench  (WSWB ), que es la versión de IBM de la plataforma Eclipse .

Eclipse  es un IDE de código abierto (open-source). Utiliza un plug-indiseñado para ampliar su funcionalidad básica, ya que solo hace muy poco.

Debido a que es de código abierto, se podrá contribuir a su desarrollo.

Periódicamente, IBM  toma una instantánea de Eclipse  y los distribuye

como el WebSphere Studio Workbench , que está diseñado para ser una plata-forma de desarrollo para socios de negocio para ampliar la arquitectura básicay complementos.

Estas herramientas también deben ser capaces de conectar a Eclipse , así como los miembros de la familia de productos de WebSphere Studio.

7.7.4 Utilización del IDE

WebSphere Studio Device Developer  utiliza el concepto de espacio de trabajoo workspace, un directorio que contiene el código de trabajo (un subdirectoriopor cada proyecto), y un subdirectorio de metadatos que contienen informaciónsobre el código.

La creación de un acceso directo es importante cuando se desee utilizarmúltiples espacios de trabajo, puesto que se puede usar la bandera “-data ”para poner un específico espacio de trabajo en ejecución, por ejemplo, wsdd.exe -data  “C:\user_workspace \project ”, se utilizará el subdirectorio project en eldirectorio user_workspace como su espacio de trabajo.

WebSphere Studio Device Developer  también utiliza el concepto de proyec-

to, una colección de paquetes que componen la totalidad de una aplicación, yasea Java u otra. Por ejemplo, se podrá crear un proyecto Java, J2ME, MIDlet,C u otro tipo.

Se puede pensar a un proyecto como un super-paquete.

La pantalla de bienvenida actúa como un archivo readme para la versiónde la herramienta, y se muestra automáticamente la primera vez que invoca

Page 233: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 233/318

 

7.7. WEBSPHERE STUDIO DEVICE DEVELOPER  211

 

Figura 7.8: Barra de herramientas de WSDD.

el producto. También se encuentra en el menú Ayuda .

La herramienta se divide en Perspectivas, barras de herramientas, vista, y editores . La pantalla entera es a veces llamado el Workbench .

Una perspectiva  es una colección predefinida de barras de herramientas,vistas y editores  [4].

Barra de Herramientas

La barra de herramientas superior que se encuentra bajo el menu principal,contiene a todos los asistentes disponibles de WebSphere Studio Device Deve-

loper  (ver fig. 7.8de la pág. 211).Los asistentes se pueden utilizar para crear aplicaciones, probar código,

crear estructuras Java, crear proyectos, crear dispositivos, configurar disposi-tivos, generar construcciones de un proyecto para su distrubución.

La barra izquierda de herramientas contiene todas las perspectivas y / ovistas abiertas.

Page 234: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 234/318

 

212 CAPÍTULO 7. WEBSPHERE STUDIO

Perspectiva, Editores y Vistas

Una perspectiva  es un grupo de vistas y editores en la ventana del espacio detrabajo diseñadas para centrarse en una determinada tarea.

En una ventana del espacio de trabajo pueden existir una o varias pers-pectivas.

Cada perspectiva contiene una o varias vistas y editores.

Dentro de una ventana, cada perspectiva puede tener un conjunto distintode vistas, pero todas las perspectivas comparten el mismo conjunto de editores.También se puede personalizar perspectivas y guardarlas.

Una vista  es un componente visual del espacio de trabajo.

Se suele utilizar para navegar en una jerarquía de información (como losrecursos del espacio de trabajo), abrir un editor o visualizar propiedades deleditor activo.

Las modificaciones efectuadas en una vista se guardan inmediatamente.

Sólo puede existir una instancia de un tipo de vista concreto en una ventana

del espacio de trabajo.

Un editor  se utiliza para modificar los archivos, y es específico para el tipode archivo que está siendo editado.

Con WebSphere Studio Device Developer , se puede especificar editores ex-ternos para determinados tipos de archivo.

Sólo un editor puede estar activo en cualquier momento, varios editores sepodrán abrir, pero todos estarán en la misma ventana, disponible a través depestañas.

El editor del código fuente es una de las ventanas principales del WSDD.Este editor está siempre presente, aunque cambiemos entre las distintas

perspectivas.

Como su nombre lo indica, en este editor se muestra el código fuente de laclase con todos sus elementos. Pero además incluye diversas funcionalidadespara ayudar al desarrollador, entre ellas se tiene:

Page 235: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 235/318

 

7.7. WEBSPHERE STUDIO DEVICE DEVELOPER  213

• Utiliza distintos colores para diferenciar entre palabras reservadas, co-mentarios, cadenas de texto, y nombres de variables. De este modos sepueden encontrar e identificar más fácilmente una línea de texto o unainstrucción.

• Muestra los campos y métodos pertenecientes al objeto al que se estáhaciendo referencia según se va escribiendo (ver fig. 7.9 de la pág. 213).De esta forma, se puede elegir el que se quiera a través de la lista.

• Además, en la lista de métodos de los objetos, se indican los parámetrosnecesarios en la llamada al mismo, y el tipo del valor que devuelve, juntocon una breve descripción del mismo.

• Incluye una función automática para cerrar paréntesis y corchetes.

• En caso de cometer algún error de sintaxis, remarca la parte de códigoerrónea en rojo.

• Utiliza advertencias que son subrayados amarillos. Las advertencias noserán causa de error, pero ayudan a mejorar el código; por ejemplo,importar alguna clase que no se utilice nunca.

Figura 7.9: Métodos de un Objeto.

Dispositivos

Cada dispositivo requiere una configuración separada. Todos los dispositi-vos se comparten, por lo que cualquier proyecto puede ser desplegados en undispositivo específico.

Page 236: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 236/318

 

214 CAPÍTULO 7. WEBSPHERE STUDIO

WebSphere Studio Device Developer  soporta dispositivos Palm (a través deHotSync ), emulador Palm, y dispositivos PocketPC  (a través de ActiveSync )directamente.

WebSphere Studio Device Developer  también ejecutará proyectos a nivel lo-cal JVM , y aplicaciones MIDP  pueden ser desplegados en un emulador MIDP .

Otros proveedores pueden incluir emuladores soportados a través de plug-ins Eclipse . Estos deben estar disponibles a través del gestor de actualizacio-nes, o directamente desde el proveedor.

Añadir Emuladores

Una manera de probar las aplicaciones que se diseñan es añadiendo emuladoresque proveen los fabricantes. Webphere Studio Device Developer  permite añadiremuladores de distintos fabricantes.

Por ejemplo si se desea añadir un emulador de un teléfono celular Nokiaserie 40, se deben seguir los siguientes pasos:

• Descargar el emulador deseado desde el sitio oficial de Nokia.

• Instalar el SDK  de Nokia recien descargado.• Luego a través de la opción dispositivos → configurar y luego hacer click

en “Dispositivo Emulador de UEI ”.

• Luego se tiene que indicar la ruta donde se encuentra instalado el emu-lador para que Websphere Studio Device Developer  pueda invocarlo.

• Por último se debe asignar un nombre al nuevo dispositivo.

Los pasos anteriormente se pueden ver en la fig. 7.10 de la pág 215.

Page 237: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 237/318

 

Figura 7.10: Nuevo Dispositivo Emulador.

Page 238: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 238/318

 

216 CAPÍTULO 7. WEBSPHERE STUDIO

Page 239: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 239/318

 

Capítulo 8

Descripción de la Aplicación

8.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 típicas de una entidad ban-caria , donde se pueden realizar todo tipo de operaciones tales como:

• Dar de alta a un cliente y administrar sus datos.

• Crear cuentas bancarias para un cliente determinado.

• Conocer el saldo actual de una cuenta.

• Conocer los movimientos asociados una cuenta bancaria determinada.

• Realizar operaciones como: depósitos, extracciones, transferencias.

217

Page 240: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 240/318

 

218 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Para el desarrollo del trabajo se utilizó el lenguaje de programación Java ,debido a que sus características lo hacen adecuado para 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 portabilidad es 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 tiposde 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 aplicacio-nes para servidores utilizados en un entorno empresarial. Incluye la claseServlet  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 asistentes personales digitales  (PDAs ). Incluye la clase MIDlet  para el desarrollo

de aplicaciones en el cliente.

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 manejan:

• Administrador.

• Operador.

• Cliente/móvil.

• Cliente/web.

Cada uno de estos perfiles  determina las funciones que están disponiblespara el usuario. En el caso de uso que muestra la fig. 8.1 de la pág. 219se puede apreciar a grandes rasgos qué funciones del sistema se encuentrandisponibles de acuerdo al tipo de usuario.

Page 241: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 241/318

 

8.1. INTRODUCCIÓN  219

Figura 8.1: Casos de Usos del Sistema.

Page 242: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 242/318

 

220 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

8.2 Estructuración

La aplicación está estructurada en dos partes:

• La parte Web que está desarrollada en el lenguaje Java  concretamenteJ2EE  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 instalarse

en el dispositivo en cuestión.

8.2.1 La Aplicación Móvil (Mobile Banking)

Para el desarrollo móvil se optó por usar el modelo cliente / servidor  como seve en la fig. 8.2 de la pág. 221.

En donde:

Gestión de datos: Comprende la parte de la aplicación encargada del acceso

a 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.

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.

El diagrama de clases de la fig. 8.3 de la pág. 222 muestra cómo seestructura internamente el sistema móvil .

Como se ve, se estructura en ocho clases (Pantalla, Mprincipal, Cuenta,Comunicación, Balance, Tranferencia, MenuCuenta, Movimiento). La clase

Page 243: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 243/318

 

8.2. ESTRUCTURACIÓN  221

 

Figura 8.2: Arquitectura del Sistema.

Page 244: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 244/318

 

222 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.3: Diagrama de Clases de la Aplicación Móvil.

Page 245: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 245/318

 

8.2. ESTRUCTURACIÓN  223

MIDlet  es la clase general de toda aplicación móvil, como se desarrolla conla configuración CLDC  y el perfil MIDP . La aplicación contiene a la clasePantalla  que hereda de MIDlet , por lo tanto es un Midlet .

Esta clase Pantalla  es la clase principal que maneja todo el comporta-miento de la aplicación, iniciar la aplicación, pausar la aplicación, destruir laaplicación y gestionar las pantallas que se muestran.

A continuación se describen cada una de las clases con sus atributos ymétodos.

Pantalla

Esta clase extiende de la clase MIDlet  como se puede ver en el gráfico 8.3de la pág. 222, por lo tanto hereda sus métodos.

La clase MIDlet  del paquete javax.microedition, como se vió en el capítuloen cuestión, posee tres métodos abstractos, éstos son heredados e implemen-tados por la clase Pantalla .

La siguiente fig. 8.4 de la pág. 224 muestra los atributos y métodos quecorresponden a la clase Pantalla .

MPrincipal

Esta clase está destinada a manejar el menú principal de la aplicación . Lafig. 8.5 de la pág. 224 muestra los atributos y métodos de la clase MPrincipal.

MenuCuenta

Clase que muestra la interfaz sobre el menú de operaciones disponiblespara una cuenta determinada. En la fig. 8.6 de la pág. 225 se puede ver laestructuración de la misma.

Comunicacion

Es la clase principal  para la realización de todas las comunicaciones  con

el servidor , ya que posee métodos que permiten enviar peticiones y recibir lasrespuestas del servidor.

Esta clase implementa la interfaz Runnable  para la utilización de Thread (hilos de Java) que permite hacer una petición y a la vez seguir operando enla aplicación hasta recibir la respuesta del servidor . Mobile Banking  muestrapantallas de aviso al usuario cuando se está realizando una petición al servidor .

Page 246: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 246/318

 

224 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.4: La Clase Pantalla .

Figura 8.5: La Clase MPrincipal.

Page 247: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 247/318

 

8.2. ESTRUCTURACIÓN  225

Figura 8.6: La Clase MenuCuenta.

En la fig. 8.7 de la pág. 226 se describen los métodos y atributos de la

clase Comunicacion .Transferencia

Esta clase maneja toda la interfaz  e información acerca del módulo detransferencia de fondos. En la fig. 8.8 de la pág. 226 se puede apreciar eldetalle de la clase.

Balance

Esta clase mantiene un formulario que contiene información de una cuenta(saldo actual, tipo de cuenta, identificación de la cuenta).

Los métodos y atributos de la clase balance se pueden ver en la fig. 8.9 dela pág. 227.

Movimiento

La clase Movimiento se encarga de manejar la interfaz  y la informaciónde los movimientos realizados en la cuentas , contiene un objeto List  paramostrar la lista de movimientos y un formulario para mostrar el detalle de un

Page 248: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 248/318

 

226 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.7: La Clase Comunicacion.

Figura 8.8: La Clase Transferencia

Page 249: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 249/318

 

8.2. ESTRUCTURACIÓN  227

Figura 8.9: La Clase Balance.

movimiento específico.

La fig. 8.10 de la pág. 228 muestra sus métodos y atributos.

Además realiza operaciones de alta de registros y búsqueda de movimientos

almacenados en el celular.Cuenta

Gestiona la información a cerca de las cuentas bancarias que se encuentranalmacenadas en la base de datos del celular.

Posee métodos que realizan las siguientes operaciones:

• Búsqueda de una cuenta determinada.

• Inserción de una cuenta.

• Actualización de una cuenta.

En la fig. 8.11 de la pág. 229 se puede apreciar el contenido de esta clase.

Page 250: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 250/318

 

228 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.10: La Clase Movimiento.

Page 251: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 251/318

 

8.2. ESTRUCTURACIÓN  229

Figura 8.11: La Clase Cuenta.

La Aplicación Móvil en Funcionamiento

El interfaz gráfico de Mobile Banking  es una interfaz simple, permite una fácilinteracción con el usuario, es estándar para todos los terminales móviles quesoportan 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 interface de 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 a cerca 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.

Mobile Banking  proporciona la posibilidad de almacenar cierto tipo de in-formación (como ser cuentas, saldos de cuentas, movimientos de una cuenta , yciertas configuraciones ) en la zona de almacenamiento persistente del teléfono

Page 252: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 252/318

 

230 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

móvil .Para implementar esta funcionalidad, utiliza el sistema de gestión de re-

gistros, conocido como Record Management System  (RMS). Más adelante sedescribirá con más detalle la estructura de estos registros.

Mobile Banking  posee conectividad con un servidor Web, para lograr estoutiliza Internet móvil  y la tecnología GPRS  (General Packet Ratio Service )donde no se factura al usuario por tiempo de conexión, sino por datos enviadosy recibidos.

Por lo tanto la aplicación minimiza el intercambio de datos, intercambian-

do solamente datos puros y los almacena en el celular para poder trabajar demanera off-line . Esto quiere decir que el terminal móvil  debe poseer conecti-vidad a Internet como requisito para poder utilizar el sistema y por supuestopoder ejecutar aplicaciones Java .

Como se ha mencionado en el capítulo cinco (J2ME ) las aplicaciones quese desarrollan bajo la configuración CLDC  (Conected Limited Device Confi-guration ) y el perfil MIDP  (Mobile Information Device Profile ) se denominanMIDlets . Por lo tanto Mobile Banking como se desarrolló bajo la configuraciónCLDC 1.1 y el perfil MIDP 2.0  es un MIDlet .

La fig. 8.12 de la pág. 231 representa la pantalla principal de la aplicación

móvil, Mobile Banking .

Esta pantalla (pantalla principal ) permanece activa hasta que el usuariopresione el comando iniciar.

Al presionar el comando iniciar  inmediatamente se presenta al usuario elmenú principal  del sistema que cuenta con los siguientes ítems:

• INICIAR SESIÓN.

• MODO OFF-LINE.

• CONFIGURACIÓN.• AYUDA.

• SALIR.

Iniciar sesión : En este ítem la aplicación trabajará en modo “on-line ”, so-licitando previamente autenticación del usuario a través de un nombre usuario

Page 253: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 253/318

 

8.2. ESTRUCTURACIÓN  231

Figura 8.12: Pantalla Principal Mobile Banking .

Page 254: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 254/318

 

232 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

y clave , donde éstos son entregados al usuario al registrarse en el sistema ban-king .

Modo off-line : Al elegir esta instancia, la aplicación buscará si existen da-tos almacenados localmente en el celular , para poder mostrar al usuario losmismos. Es decir para que pueda ser operativa esta parte de la aplicación , elusuario por lo menos una vez tuvo que haber iniciado sesión y realizado algu-nas operaciones, caso contrario se avisará que no existen datos almacenadoslocalmente y por lo tanto no se puede operar en este modo.

Configuración : Esta opción es útil para poder configurar la url  única dondereside el servidor por ejemplo, http://www.servidorBanking.com  , esta infor-

mació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 Mobile Banking .

Salir : Esta opción permite al usuario salir de la aplicación.

Lo anteriormente mencionado se puede observar en la fig. 8.13 de la pág.233.

Iniciar Sesión

Para acceder o iniciar sesión  se debe completar un “usuario” y “clave ” eintentar conectarse. Para ello se le muestra al usuario la siguiente pantalla dela fig. 8.14 de la pág. 234, donde antes de ser enviados los datos son validadoslocalmente, por ejemplo si se intenta enviar usuario y clave vacíos o si la claveposee 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. 8.14 de la pág. 234 muestra la pantalla de ingreso y cómo laaplicación avisa al usuario de determinados errores.

Una vez que los datos sean ingresados correctamente serán enviados al ser-vidor , donde también son validados por el mismo, se puede decir que existe unavalidación en las dos partes, en el cliente  (MIDlet ) y en el servidor  (Servlet ).

Mientras los datos son enviados y procesados por el servidor, el aplicac-tivo muestra una pantalla informándole al usuario que se está realizando la

Page 255: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 255/318

 

8.2. ESTRUCTURACIÓN  233

Figura 8.13: Menú Principal.

Page 256: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 256/318

 

234 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.14: Pantallas de Ingreso al Sistema.

Page 257: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 257/318

 

8.2. ESTRUCTURACIÓN  235

conexión. En la fig. 8.15 de la pág. 235 se puede ver la pantalla mencionada.

Figura 8.15: Pantalla de Aviso de Conexión.

La clase Servlet  es la encargada de realizar la conexión a la base de datos y corroborar que los datos recibidos son realmente iguales a los datos alma-cenados en la base. Luego del proceso de búsqueda y verificación el Servlet envía al celular  un error o bien la información del cliente más sus cuentascorrespondientes si el resultado de la verificación resulta satisfactoria.

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.

• Nombre .

• Apellido.

Page 258: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 258/318

 

236 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

En una pantalla se muestra esta información del cliente, la misma se puedeapreciar en la fig. 8.16 de la pág. 236.

Figura 8.16: Información del Cliente.

En una pantalla posterior el usuario puede visualizar las cuentas que dis-pone para operar (ver fig. 8.17 de la pág. 237) en una lista y al seleccionaruna de ellas se presenta una nueva pantalla con las distintas operaciones quese pueden realizar en una determinada cuenta.

Las opciones disponibles son:

• Consultar Saldo.

• Transferencia .

• Consultar movimientos .

El menú de opciones se puede apreciar en la fig. 8.18 de la pág. 238.

Page 259: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 259/318

 

8.2. ESTRUCTURACIÓN  237

Figura 8.17: Lista de Cuentas.

Page 260: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 260/318

 

238 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.18: Menú de Operaciones de una Cuenta.

Page 261: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 261/318

 

8.2. ESTRUCTURACIÓN  239

Operaciones Sobre una Cuenta DeterminadaConsultar saldo: Este ítem del menú permite conocer el saldo actual que

contiene la cuenta.

A continuación se detalla la información de la cuenta del usuario que sepuede visualizar:

• Identificación única de la cuenta.

• Tipo de cuenta pudiendo ser una de las siguientes: Caja ahorro, cuenta corriente , plazo fijo.

• Saldo actual de la cuenta.

Toda esta información una vez descargada en el celular quedará almace-nada en el almacenamiento persistente  del dispositivo, para poder consultar aposteriori sin necesidad de realizar una petición al servidor .

En la fig. 8.19 de la pág. 240 se puede visualizar esta información.

Transferencia : Mobile banking  brinda la posibilidad de poder realizartransferencias de fondos a otra cuenta que posea el cliente o bien a una cuentade algún otro cliente, siempre y cuando la cuenta origen disponga de dinerosuficiente o bien si es una cuenta corriente posea un sobregiro que lo permita.

Los datos que se deben ingresar son la identificación de la cuenta destinomás el monto a transferir (ver fig. 8.20 de la pág. 241) y a continuaciónse presenta una pantalla de confirmación de la transferencia  a realizar, si elusuario acepta se envían los datos para poder realizar la transacción (ver fig.8.21 de la pág. 242).

La aplicación valida si se ingresa algún monto igual a “cero” o bien si nose ingresa el monto.

Del lado del servidor también existe un proceso de verificación de saldo dela cuenta origen y si la cuenta destino ingresada es válida para que se puedarealizar un depósito en la misma.

Si la transacción  se realiza satisfactoriamente se enviará al usuario unnúmero de transacción (ver fig. 8.22 de la pág. 243). O bien se enviará unmensaje que la transacción no pudo realizarse y el motivo; (ver fig. 8.23 de lapág. 8.23).

Page 262: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 262/318

 

240 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.19: Información de Saldo de una Cuenta.

Page 263: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 263/318

 

8.2. ESTRUCTURACIÓN  241

Figura 8.20: Ingreso de Datos Para una Transferencia.

Page 264: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 264/318

 

242 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.21: Confirmación de la Transferencia.

Page 265: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 265/318

 

8.2. ESTRUCTURACIÓN  243

Figura 8.22: Resultado Satisfactorio de una Transferencia.

Page 266: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 266/318

 

244 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.23: Error en una Transferencia.

Page 267: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 267/318

 

8.2. ESTRUCTURACIÓN  245

Figura 8.24: Lista de Movimientos de una Cuenta por Fecha y Hora.

Consultar movimientos : La aplicación posee la opción de poder consultarlos últimos movimientos  (hasta tres) realizados en una cuenta determinada,ya sean (extracciones, depósitos o transferencias realizadas ).

Para realizar esta funcionalidad primeramente se realiza la petición al ser-vidor, en ese momento se produce el proceso de sincronización  de los datos(movimientos ) desde el servidor  al cliente y se almacenan en la memoria per-manente del celular .

Como se puede apreciar en la fig. 8.24 de la pág. 8.24 la aplicación muestraun listado de movimientos  donde se indica la fecha y la hora, al seleccionarun movimiento particular se podrán visualizar en detalle el movimiento selec-cionado (ver fig. 8.25 de la pág. 246).

La próxima vez que el cliente desee consultar por movimientos  de la mismacuenta el aplicativo le preguntará si desea visualizar los movimientos  almace-nados localmente o desea realizar el proceso de sincronización . Esta adver-

Page 268: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 268/318

 

246 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.25: Detalle de un Movimientos en Particular.

Page 269: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 269/318

 

8.2. ESTRUCTURACIÓN  247

tencia se nota en la fig. 8.26 de la pág. 247.

Figura 8.26: Pantalla de Advertencia al Usuario.

Off-line

Esta funcionalidad de la aplicación de trabajar en modo “off-line ” permiteacceder a información ya solicitada, sin tener que realizar una petición alservidor . Es decir el aplicativo sólo intenta mostrar la información almacenada,no intenta realizar una ninguna conexión  con el servidor .

En este modo se pasa por alto la pantalla de login  o identificación  delusuario, ya que para poder utilizar el modo off-line se tuvo que haber operadoon-line  anteriormente. Si no existen datos almacenados localmente el usuarioserá avisado de la cuestión. Esta advertencia se puede apreciar en la fig. 8.27de la pág. 248.

La ventaja que brinda hacia los clientes es la minimización  de costos, al notener que intercambiar datos con el servidor  sobre datos ya solicitados. Porejemplo un cliente desea ver sus movimientos  del día, entonces se conecta unavez, los puede mirar y los mantiene en el celular  para próximas consultas sin

Page 270: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 270/318

 

248 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.27: Advertencia al Usuario.

Page 271: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 271/318

 

8.2. ESTRUCTURACIÓN  249

tener que volver a conectarse.La función de transferir fondos no está disponible en modo off-line .

Configuración

Como se mencionó anteriormente lo primero que debe hacer el usuario delsistema para poder utilizar Mobile Banking  es configurar la dirección (url)del servidor  para lograr una comunicación satisfactoria, ya que el servidor alberga a los servlets  de Java  que reciben las peticiones y hacen el procesoreal de conectarse a la base de datos , solicitar información y verificar si es uncliente 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. 8.28 de la pág. 8.28.

Figura 8.28: Pantallas 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.

Page 272: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 272/318

 

250 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Una vez que se tiene configurado correctamente la dirección del servidor se puede lograr la comunicación con el mismo. Se debe proporcionar los datosde acceso (usuario y clave).

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. 8.29 de la pág.250 se puede observar la pantalla de 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 una cuenta.

Figura 8.29: Pantalla de Ayuda del Sistema.

Page 273: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 273/318

 

8.2. ESTRUCTURACIÓN  251

Estructura de Registros Almacenados en el Teléfono

Gracias a la implementación del sistema de gestión de registros (RMS) sepueden guardar información en el teléfono celular .

En la fig. 8.30 de la pág. 251 se pueden ver los RecordStores  que utilizaMobile Banking , siendo un RecordStore  un almacén de registros.

Figura 8.30: RecordStores Utilizados por la Aplicación.

Sabiendo que los registros de un RecordStore  pueden guardar en un formatode tipo “bytes” se presenta la estructura de los mismos:

• RecordStore: servidor:

Id: identificación del registro dentro del RecordStore.

Url: Campo de tipo “String” que debe transformarse a bytes antes degrabarlo.

Generalmente este RecordStore mantiene un solo registro en donde se pue-de modificar el valor del

URL cuando se requiera.

• RecordStore: Cuentas:

Page 274: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 274/318

 

252 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Los campos que maneja son los siguientes:— idcuenta.

— tipocuenta.

— saldo.

Para delimitar un campo de otro se utiliza “@”, de la siguiente manera:

— registro = idCuenta_valor@tipoCuenta_valor@saldo_valor

donde registro es una cadena “String” y debe ser transformado a flujos de

bytes antes de serinsertado al RecorStore  “Cuentas”.

• RecordStore: Movimientos 

Guarda la siguiente información:

— idMovimiento.

— idcuenta.

— fecha.

— hora.— tipoMovimiento.

— monto.

En donde también se estructura de la misma manera que los registros delalmacén “cuentas” con el delimitador de campo “@”.

La aplicación utiliza algoritmos de parseo para poder mostrar correcta-mente la información guardada.

Las operaciones que realiza Mobile Banking sobre RMSs  son:

• Creación de los RecordStores.

• Inserción de registros.

• Búsqueda de algún registro.

• Consulta de registros.

Page 275: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 275/318

 

8.2. ESTRUCTURACIÓN  253

Figura 8.31: Proceso del Mensaje Calculado.

Autenticación en Mobile Banking

Para la realización de la autenticación  el sistema solicita al cliente un usuarioy una clave .

Estos datos mencionados son enviados al servidor  por medio de Internet ,y como se sabe que Internet  es una inmensa red pública, tiene la desventajaque es una red insegura.

Mobile Banking  soluciona este problema a través de la utilización de unpaquete llamado “bouncy castle cryptography ” que es un paquete “open sour-

ce”, es decir de código abierto y libre, realizado en Australia . Es una potentepieza de trabajo, que presenta un API  limpio y una gran caja de herramien-tas sobre algoritmos criptográficos . Además su código es liviano y apto paraejecutarse en teléfonos celulares .

Sun Microsystem brinda soluciones criptográficas  para la tecnología J2SE  através del JCA (Java Cryptography Architecture ) y la JCE  (Java Criptography Extensión ), el problema es que estas implementaciones son muy pesadas parala plataforma J2ME .

Gracias a el paquete “bouncy castle cryptography ” se pueden obtener algo-ritmos criptográficos más livianos aptos para la plataforma J2ME .

Mobile Banking  utiliza el concepto de “mensaje cifrado” para enviar laclave ocultada.

En lugar de enviar la clave como texto plano, se crea un mensaje compren-dido o cifrado a partir de la clave y se envía éste.

En la fig. 8.31 de la pág. 253 se puede observar el proceso.

Page 276: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 276/318

 

254 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

En donde:

• El midlet  crea un número aleatorio y un número tipo timestamp, ambosnúmeros junto con el usuario y la clave generan el valor del mensajecomprendido.

• El midlet  envía el usuario, el número timestamp, el número aleatorio yel valor cifrado calculado al servidor , la clave no se envía como textoclaro, es utilizada para calcular el valor cifrado.

• El servidor toma el usuario y busca la correspondiente clave  en la base

de datos, también toma el numero aleatorio y el timestamp, luego calculael valor cifrado.

• Si el valor cifrado calculado en el servidor  es igual al valor cifrado en-viado por el midlet  (cliente) entonces el cliente existe en la base.

8.2.2 La Aplicación Web

Se desarrolló con el lenguaje Java , utilizando las tecnologías de Servlet  y JSP ,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 UDB 8.1 de IBM . Para más información acerca de DB2  remitirse al capítulo seis.

Para mejor estructuración del sistema y a fin de incursionar en patronesde diseño, la aplicación se basa en el patrón MVC  (model view controller ) omodelo vista controlador.

El Patrón Modelo-Vista-Controlador

MVC (Model View Controller ) es un patrón de diseño aportado originalmentepor el lenguaje de programación SmalkTalk  a la ingeniería de software.

Consiste principalmente en dividir las aplicaciones en tres partes o capas:

• Modelo.

• Vista.

Page 277: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 277/318

 

8.2. ESTRUCTURACIÓN  255

Figura 8.32: Modelo-Vista-Controlador.

• Controlador.

El controlador  es el encargado de redirigir o asignar una aplicación a cadapetición; el controlador debe poseer de algún modo, un mapa de correspon-dencias entre peticiones y respuestas que se le asignan.

El modelo es la lógica de negocios.

Una vez realizadas las operaciones necesarias el flujo vuelve al controlador

y éste devuelve los resultados a una vista  adecuada.

El siguiente gráfico 8.32 de la pág. 255 muestra la interacción entre elmodelo, la vista y el controlador.

Implementación del MVC en la Aplicación

La aplicación está formada por archivos de clases Java , Servlets , JSPs  yHTMLs , donde cada uno se encuentra en una de las tres capas.

Estructura

La aplicación se estructura básicamente en tres paquetes bien diferenciados:

• Presentación : Contiene la interfaz gráfica, páginas JSPs  o HTMLs  quepermiten al usuario tener una vista de los datos e ingresar nuevos datos.

Page 278: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 278/318

 

256 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

• Control : Contiene las clases  que realizan el control de flujo de la apli-cación, se encargan de atender a las peticiones que provienen de la capade presentación.

• Modelo de negocios : Se puede decir que es el paquete base de la aplica-ción, ya que contiene clases que manejan el modelo de negocios, comoser:

— Clientes.

— Cuentas.

— Movimientos.

La fig. 8.33 de la pág. 256 muestra un diagrama de la estructura depaquetes mencionada.

Figura 8.33: Diagrama de Paquetes.

El modelo de negocios  que se puede apreciar en la fig. 8.34 de la pág. 257contiene las siguientes clases:

• Cliente : Mantiene información de clientes del banco.

• Cuenta : Mantiene información de una cuenta bancaria, un cliente puedetener más de una cuenta.

Page 279: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 279/318

 

8.2. ESTRUCTURACIÓN  257

Figura 8.34: Diagrama de Clases.

• Movimiento: Corresponde a objetos que contienen información acercade las transacciones que ocurren sobre una cuenta.

• Usuario: Refiere a los usuarios del sistema.

• Acceso: Contiene información de acceso de clientes al sistema.

• Banco: Clase principal, actúa como coordinador, encapsulando los otrosobjetos y cómo ellos interactúan.

Page 280: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 280/318

 

258 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Funcionamiento

El navegador genera una petición que es atendida por un controlador  (un Ser-vlet  especializado), el cual se encarga de analizar la solicitud y utiliza objetos del modelo para concretar la tarea. Dependiendo del resultado, el flujo vuelveal controlador  y éste analiza a cuál JSPs  derivará la generación de la inter-faz, dónde éstos podrán consultar los objetos del modelo para poder mostrarinformación de los mismos. En la fig. 8.35 de la pág. 258 se puede apreciar elfuncionamiento mencionado.

Figura 8.35: Funciomamiento del Sistema.

Entonces se puede decir que el sistema internamente está estructurado enclases Java que manejan el flujo de control , clases Java  que forman la lógica de negocio y la archivos JSPs  que forman la vista o interfaz gráfica y que

contienen tanto porciones de código Java , como también código HTML.

Pantallas de la Aplicación Web

El sistema Banking  está dividido en dos perspectivas:

Page 281: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 281/318

 

8.2. ESTRUCTURACIÓN  259

• La perspectiva orientada al cliente que pueden acceder los mismos através de la Internet .

• La perspectiva orientada al operador / Administrador  donde se accedea través de la Intranet .

Del Lado del Cliente (Home Banking )

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 adicio-nales como por ejemplo poder visualizar en qué consiste la aplicación móvil 

(Mobile Banking ) y la posibilidad de poder descargarla e instalarla en el te-léfono celular .

Esta porción de la aplicación  automatiza la gestión  de cuentas bancarias,brindándole al cliente una alternativa para realizar sus operaciones, sin lanecesidad de recurrir a la entidad bancaria y además el cliente puede accederal sistema las 24 hs. del día.

A continuación se muestra en la fig. 8.36 de la pág. 260 la página principaldel portal.

Para poder acceder a las opciones brindadas por el sistema “Home Ban-

king” el usuario debe ingresar sus datos de acceso, ingresando el usuario yuna clave .

La aplicación del lado del cliente valida si se presionó el botón ingresar  ylos campos del usuario y/o la clave están vacíos mediante el uso del lenguajeJavaScritpt .

Si los datos del cliente no son correctos se presentará la pantalla que semuestra en la fig. 8.37 de la pág. 261, donde ésta avisa al usuario del error deingreso.

Una vez que el usuario se haya validado en el sistema, dispone de un menú

con las siguientes opciones:

• Cambiar clave.

• Cuentas.

• Transferir.

Page 282: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 282/318

 

260 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.36: Pantalla Principal de Home Banking.

Page 283: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 283/318

 

8.2. ESTRUCTURACIÓN  261

Figura 8.37: Mensaje de Error.

Page 284: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 284/318

 

262 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

• Movimientos.

• Mobile Banking.

• Salir.

Cambiar clave: A través de esta sección del sistema, el cliente puede reali-zar el cambio de su clave de acceso periódicamente. Home Banking muestrauna leyenda de recomendación de cambio de clave cada sesenta días aproxi-madamente para aumentar la seguridad.

En el momento del cambio de clave, el cliente deberá ingresar su claveactual y la nueva clave, ésta última tendrá que ingresar nuevamente y serávalidado por el sistema si ambas claves son iguales. El sistema no permite elingreso de una clave cuya longitud sea menor a ocho caracteres.

La pantalla que corresponde al formulario que permite el cambio de clavedel cliente se puede apreciar en la fig. 8.38 de la pág. 262.

Figura 8.38: Pantalla de Modificación de Claves.

Page 285: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 285/318

 

8.2. ESTRUCTURACIÓN  263

Salir : A través de este ítem el cliente puede salir del sistema y el navegadorserá reenviado a la página principal.

Cuentas : Con esta opción el cliente puede ver las cuentas bancarias quetiene.

La página muestra un listado de cuentas.

Esta página se muestra inmediatamente luego del proceso de verificaciónde ingreso al sistema.

En cualquier momento el usuario puede utilizar esta opción para la elecciónde otra cuenta disponible y operar sobre ella.

Esto se puede visualizar en la fig. 8.39 de la pág. 263.

Figura 8.39: Pantalla de Listado de Cuentas.

Luego al seleccionar una cuenta disponible es posible ver la información dela cuenta como ser:

Page 286: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 286/318

 

264 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

• Identificación de la cuenta.• No DNI/LC/LE del titular.

• Nombre del titular.

• Saldo disponible.

• Tipo de cuenta.

• Tasa de interés de la cuenta.

• Monto sobregiro (si posee).

Esta información se puede visualizar en la fig. 8.40 de la pág. 264.

Figura 8.40: Detalle de una Cuenta Determinada.

Transferir : Desde esta parte de la aplicación se pueden realizar transfe-rencias  de fondos hacia otras cuentas bancarias del mismo cliente o de algúnotro cliente.

Page 287: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 287/318

 

8.2. ESTRUCTURACIÓN  265

Para la realización exitosa de esta funcionalidad se debe ingresar la identi-ficación de la cuenta destinataria de la operación, también se tiene que ingresarel monto a transferir; ver fig. 8.41 de la pág. 265.

Figura 8.41: Transferencia de Fondos Hacia Otra Cuenta.

Todos los datos, tanto la identificación de la cuenta o Id  cuenta así comotambién el monto a transferir son validados antes de producir el movimiento.Por ejemplo si el usuario ingresa un monto y su cuenta desde donde quiererealizar la transferencia no posee fondos suficientes, entonces no se podrá re-alizar la transacción. Home Banking  avisa al usuario de estos fallos; ver fig.

8.42 de la pág. 266.Movimientos : Por medio de este módulo del sistema el cliente tiene la

posibilidad de poder visualizar todos los movimientos (depósitos, extracciones )asociados a su cuenta bancaria.

La aplicación solicita el ingreso de un rango de fechas, fecha desde y unafecha hasta.

Page 288: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 288/318

 

266 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.42: Mensajes de Estado del Proceso de Transferencia.

Page 289: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 289/318

 

8.2. ESTRUCTURACIÓN  267

Esta petición la recibe un Servlet  y valida si son rangos de fechas válidosy luego realiza la consulta a la base de datos . Posteriormente se muestra unapágina con la siguiente información:

• Id de la transacción.

• Fecha del movimiento.

• Hora del movimiento.

• Tipo movimiento (depósito, extracción).

• Monto.

En la fig. 8.24 de la pág. 245 se puede observar la pantalla que muestra ellistado de movimientos realizados.

Figura 8.43: Pantalla de Listado de Movimientos.

Mobile Banking : En esta página de la aplicación se puede obtener informa-ción acerca de Mobile Banking  (aplicativo móvil), como ser en qué consiste,

Page 290: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 290/318

 

268 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.44: Pantalla que Muestra Información de Mobile Banking.

requisitos de los dispositivos para poder lanzar la aplicación, qué operacio-nes se pueden realizar y también brinda un enlace que permite descargar elaplicativo en la PC  para luego a través de una conexión con el celular , yasea bluetooth , cable usb o infrarrojos , se pueda instalar la aplicación en eldispositivo celular en cuestión.

Otra alternativa de descarga  de Mobile Banking  es ingresando directamen-te en el navegador WAP  del celular  la dirección URL que muestra esta página,

descargando así directamente el aplicativo en el celular sin tener que bajarloen una PC . Este proceso demandará al usuario el costo por “bytes” recibidosde la aplicación.

En la fig. 8.44 de la pág. 268 se muestra la ventana correspondiente aMobile Banking.

Del Lado del Operador / Administrador

Page 291: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 291/318

 

8.2. ESTRUCTURACIÓN  269

Esta perspectiva del sistema Banking  funciona como back-end , está orien-tada a ser operada dentro de la Intranet  para que pueda ser accedida poroperadores  para realizar tareas rutinarias de gestión y también por adminis-tradores  para tareas similares y además gestionar y auditar los movimientosdiarios y también realizar tareas de mantenimiento del sistema.

Se puede decir que es la base de las demás perspectivas , a partir de esta secrean las demás, ya que los clientes se deben dar de alta , crear sus cuentas  enesta perspectiva .

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 base

de datos de usuarios para poder operar en el sistema.

En la fig. 8.45 de la pág. 269 se puede observar la ventana que correspondea la página principal donde se solicitan datos de usuario y password  paraingresar al sistema Banking .

Figura 8.45: Pantalla de Login de Banking.

El menú de opciones que brinda Banking  es el siguiente:

• Clientes.

Page 292: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 292/318

 

270 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.46: Pantalla de la Sección Clientes.

• Consultas.

• Operaciones.

• Cambiar clave.

• Administración.

A continuación se detalla las funciones que se pueden realizar en cada unode los ítems anteriormente mencionados.

Clientes

En la sección “clientes” en primera instancia la aplicación solicita el númerode cliente  a buscar en la base de datos , también muestra datos personales delcliente y un listado de cuentas bancarias que posea. En la fig. 8.46 de la pág270 se puede observar la página correspondiente a la sección clientes.

En esta sección , se puede dar de alta a clientes nuevos ingresando a laopción “nuevo” o modificar los datos del mismo ingresando a la opción “mo-

Page 293: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 293/318

 

8.2. ESTRUCTURACIÓN  271

Figura 8.47: Pantalla para Ingresar Nuevos Clientes.

dificar”. Es decir esta sección maneja todo lo relativo con clientes, alta, mo-dificación, búsqueda .

En la opción nuevo cliente  el usuario deberá ingresar ciertos datos perso-nales a cerca del cliente, los datos requeridos si no son rellenados la aplicaciónmarcará con un color rojo o bien si se intenta dar de alta le avisará al usuariocon mensajes de alerta.

En la fig. 8.47 de la pág. 271 se muestra la página correspondiente al alta

de clientes y como se puede ver la aplicación marca con color rojo las cajas detexto que se encuentran vacías.

En un paso posterior después de haber ingresado todos los datos solicitadosse muestra una pantalla confirmando los datos del nuevo cliente más el númerodel mismo. Esto se puede ver en la fig. 8.48 de la pág. 272.

Consultas

Page 294: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 294/318

 

272 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.48: Datos del Nuevo Cliente

En la sección consultas  se puede visualizar el saldo actual, más otra infor-

mación de la cuenta seleccionada. Por lo cual se subdivide en dos subitems:

• Saldo.

• Movimientos.

En el ítem “saldo” también se puede ver otro tipo de información comoser: tipo de cuenta, interés , fecha de alta de la cuenta, limite de sobregiro si posee, etc .

La fig. 8.50 pág. 274 muestra esta información.

En el ítem “movimientos” el cliente puede visualizar en la pantalla todoslos movimientos  realizados desde el primero hasta el último movimiento de lacuenta. Primeramente se solicita el ingreso de un rango de fechas para que elsistema busque en su base de datos los movimientos realizados entre las fechasingresadas; ver fig. 8.51 de la pág. 275.

Operaciones

Page 295: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 295/318

 

8.2. ESTRUCTURACIÓN  273

Figura 8.49: Listado de Cuentas.

Page 296: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 296/318

 

274 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.50: Información de una Cuenta

Page 297: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 297/318

 

8.2. ESTRUCTURACIÓN  275

Figura 8.51: Movimientos de una Cuenta.

Page 298: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 298/318

 

276 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Esta sección como se puede ver en la fig. 8.18de la pág. 238 está destinadaa poder ingresar las operaciones que el cliente quiere realizar sobre la cuenta,estas operaciones pueden ser:

Figura 8.52: Operaciones Sobre una Cuenta.

• Extracciones de dinero.

• Depósitos de dinero.

• Transferencia de fondos.

• Ver movimientos (igual que consulta → movimientos).

Este módulo de “operaciones” maneja una serie de excepciones que puedenocurrir al momento de realizar alguna operación. Ellas pueden ser:

• Si se intenta depositar o extraer un monto igual a cero.

• Si se intenta extraer más dinero del disponible en el saldo actual.

Page 299: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 299/318

 

8.2. ESTRUCTURACIÓN  277

Figura 8.53: Mensajes de Error que Maneja el Sistema.

• Si se intenta transferir fondo a una cuenta no existente.

Estas excepciones ocurren en tiempo de ejecución y son mostradas al usua-rio mediante mensajes de error; en la fig. 8.53 de la pag. 277 se ilustra cómola aplicación informa estos errores.

Cambiar Clave

Esta sección permite a los usuario (administradores u operadores) cambiarperiódicamente la clave de acceso al sistema, para ello se deben ingresar tanto

la clave actual y la nueva clave dos veces a fin de confirmar el cambio. Lapantalla que permite ingresar estos datos se puede apreciar en la fig. 8.54 dela pág. 278.

Administración

Este módulo del sistema sólo podrá ser accedido por los usuarios “Admi-nistradores ”. Es decir el sistema valida el usuario, si el usuario está registrado

Page 300: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 300/318

 

278 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.54: Pantalla para el Cambio de Clave.

como administrador  esta opción se muestra, caso contrario no estará disponi-

ble.Las tareas que permite realizar este módulos son:

• Crear Usuarios.

• Acceder a una lista de accesos.

El sistema permite a los usuarios administradores  la posibilidad de crearotros usuarios para la utilización del sistema. Al momento de crear un usuarioen particular se debe seleccionar el tipo de usuario (operador o administrador)y brindarle una clave temporal. El nuevo usuario podrá modificar esta clave.La fig. 8.55 de la pág. 279 muestra la pantalla de creación de nuevos usuariosdel sistema banking .

A fin de llevar un control y poder realizar seguimientos de las operacionespor parte de los clientes, tanto éstos accedan a través del “Home Banking ”como así también de la aplicación móvil “Mobile Banking ”, el sistema generaunos registros de accesos de los clientes.

Page 301: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 301/318

 

8.3. ESTRUCTURAS DE DATOS UTILIZADAS  279

Figura 8.55: Creación de Usuarios

Los usuarios administradores pueden consultar estos registros que deter-minan información relevante como:

• Fecha y hora de la operación (consulta saldo, consulta movimientos,

transferencia).

• Número de cliente que accedió.

• Número de cuenta origen (y también destino en caso de que sea unatransferencia).

• Origen de punto de acceso (si es a través del Móvil o Web).

• Monto (en el caso de que haya realizado una transferencia).

En la fig. 8.56 de la pág. 280 se puede observar lo anteriormente mencio-nado.

8.3 Estructuras de Datos Utilizadas

El manejador de base de datos  que utiliza el sistema es el DB2 UDB V. 8.1.

Page 302: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 302/318

 

280 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

Figura 8.56: Listado de Accesos

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 base de 

datos, por lo tanto el manejador debe manejar correctamente la concurrencia.En el gráfico 8.57 de la pág. 281 que corresponde a la ventana del centro

de control de DB2  se puede apreciar la estructura de base que se utiliza.

Las tablas que integran la base de datos son las siguientes:

• CLIENTE : Contiene toda la información referente a los clientes regis-trados del banco.

Esta compuesta por los siguientes campos de datos:

— CLIENTEID : Contiene el número único del cliente, es un númerogenerado por la aplicación.

— NOMBRES : Contiene el / los nombres del cliente.

— APELLIDO : Contiene el apellido del cliente.

— DOCUMENTO : Almacena la información del número de documen-to del cliente.

Page 303: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 303/318

 

8.3. ESTRUCTURAS DE DATOS UTILIZADAS  281

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

Page 304: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 304/318

 

282 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

— DIRECCION : Contiene la dirección real del cliente.— EMAIL: Contiene la dirección de correo electrónico del cliente.

— USUARIOID : Almacena la información del usuario para ingreso alsistema.

— PASSWORD : Amacena la información de la clave secreta del clientepara ingreso al sistema.

— NACIONALIDAD : Contiene la nacionalidad del cliente.

— FECHANAC : Contiene la fecha exacta de nacimiento del cliente.

— TELEFONO : Contiene el teléfono del cliente.

— TRABAJA: Contiene información a cerca de si trabaja o no el clien-te.

— LUGAR: Contiene el nombre del lugar de trabajo del cliente.

— ESTUDIA: Contiene información a cerca de si estudia o no el clien-te.

— CARRERA: Contiene el nombre de la carrera que estudia el cliente.

• CUENTA: La tabla “cuenta” contiene toda la información de las cuentasque posee el cliente.

La tabla posee los siguientes campos de datos:— CUENTAID : Contiene la identificación única de la cuenta.

— SALDO : Contiene el saldo actual que posee la cuenta.

— INTERES : Contiene la tasa de interés de la cuenta.

— DISCRIMINADOR : Contiene un carácter que identifica el tipo decuenta (A=caja ahorro; I= inversión; C= cuenta corriente).

— TIPOCUENTA: Contiene la leyenda del tipo de cuenta.

— SOBREGIRO : Contiene el monto máximo de sobregiro que corres-ponde a la cuenta.

— MONTOMIN : Contiene el monto mínimo que debe tener la cuenta.— TINVERSION : Contiene el termino de tiempo expresado en meses

del capital invertido.

— FAPERTURA: Contiene la fecha de creación de la cuenta.

— CLIENTEID : Contiene la identificación del cliente, es un camporelacional a la tabla cliente.

Page 305: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 305/318

 

8.3. ESTRUCTURAS DE DATOS UTILIZADAS  283

— MONEDA: Contiene el tipo de moneda que opera la cuenta.— SIMBOLO : Contiene el símbolo de acuerdo al tipo de moneda de

la cuenta.

• MOVIMIENTOS : La tabla “movimientos” alberga los datos de las ope-raciones que se generan sobre las cuentas bancarias.

La tabla contiene los siguientes campos de datos:

— TRANSID : Contiene un número autogenerado que identifica a latransacción.

— CUENTAID : Contiene la identificación de la cuenta, es un camporelacional a la tabla cuenta.

— TIPO : Contiene información del tipo de transacción (extracción,depósito, transferencia.)

— MONTO : Contiene el monto de la transacción.

— FECHA: Contiene la fecha que se realizó la transacción.

— HORA: Contiene la hora que se llevó a cabo la transacción.

— CUENTADESTINO : Contiene información del numero de cuentade destino de la transacción.

• USUARIO : La tabla “usuario” contiene información de los usuario delsistema back-end .

Esta tabla dispone de los siguientes campos:

— USUARIOID : Número autogenerado para identificación única delusuario.

— AP_Y_NOM : Contiene el apellido y nombre del usuario.

— USUARIO : Contiene el nombre de usuario para ingreso al sistema.

— CLAVE : Contiene la clave del usuario para el acceso.— PERFIL_ID : Contiene un identificador del perfil del usuario. Esun campo referencial a la tabla Perfil.

• PERFIL: La tabla “perfil” mantiene los perfiles que maneja la aplicación.

Posee dos campos:

Page 306: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 306/318

 

284 CAPÍTULO 8. DESCRIPCIÓN DE LA APLICACIÓN 

— ID_PERFIL: Contiene un numero autogenerado que identifica alperfil.

— DESCRIPCION : Contiene la descripción del perfil.

• ACCESO :

— ID_ACCESO : Número autogenerado para identificación único delacceso.

— FECHA: Contiene la fecha que se realizó el acceso.

— HORA: Contiene la hora que se realizó el acceso.

— USUARIOID : Contiene el número de cliente quien realizó el acceso.— OPERACION : Contiene información del tipo de operacion.

— MONTO : Contiene el monto de la transacción.

— ORIGEN : Contiene si el acceso fue realizado desde el móvil o Web.

— CUENTA_ORIG : Contiene la identificación de la cuenta origen.

— CUENTA_DEST : Contine la identificación de la cuenta destino enuna transferencia.

Page 307: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 307/318

 

Capítulo 9

Conclusiones

9.1 Conclusiones Generales

Los dispositivos móviles y particularmente los teléfonos celulares , hoy en díano son un lujo sino una necesidad.

Prácticamente cada integrante de una familia ya dispone de un teléfono

celular  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 un banco.

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 completodesarrollado.

285

Page 308: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 308/318

 

286 CAPÍTULO 9. CONCLUSIONES 

Se ha optado por emplear una tecnología ampliamente extendida en la ac-tualidad, y de la que cada vez aparecen un mayor número de dispositivos, degama media-baja a un costo razonable. No se ha empleado ninguna caracte-rística propia de ninguna de las marcas del mercado (Nokia, Motorola, Sony Ericsson ), 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 Websphere Application Device Developer.

• Nokia Prototype SDK 4.0 for Java (TM) ME.

• Nokia Series 40 5th Edition SDK, Feature Pack 1.

• Motorola Java (TM) ME SDK V. 6.4 for Motorola OS Products.

También a lo largo del presente trabajo se ha probado la ejecución delaplicativo en terminales reales. A continuación se detallan los modelos:

• Nokia 6103.

• Nokia 6131.

El resultado de las pruebas en los distintos emuladores y terminales realesdió satisfactorio.

9.2 Conclusiones Acerca de las Tecnologías y Soft-ware Utilizados

Se ha podido comprobar las grandes ventajas de la utilización de tecnologíasy software, tanto de base de datos como del ambiente de desarrollo de aplica-ciones.

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 309: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 309/318

 

En cuanto a las facilidades en el entorno de desarrollo, se pudo apreciar queWebSphere 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 cabe destacar el editor gráfico MIDP del Device Developer  que utiliza el concepto de Drag and Drop para insertarelementos gráficos en el móvil y las facilidades de este entorno para añadirnuevos dispositivos para las distintas pruebas del sistema.

También se puede decir que Websphere  puede ser usado desde la Intranet de una organización y/o desde la Internet , con lo cual el sistema resulta máseficiente, más flexible y adaptable al cambio. Al ser accesible desde la Internet 

se pudo realizar la comunicación real de la aplicación móvil con el servidor sinningún tipo de inconvenientes.

Con la utilización del lenguaje Java (J2ME ) se comprobó la gran portabi-lidad que brinda al poder lanzar la aplicación en distintos modelos y marcasde teléfonos celulares.

9.3 Líneas Futuras de Acción

A continuación se detallan las principales líneas futuras de acción del presente

trabajo:

• Desarrollar un esquema de seguridad para el almacenamiento de clavesen la base de datos incorporando criptografía.

• Incorporar el uso del protocolo HTTPS  que permite conexiones de redesseguras, con la utilización de certificados de seguridad, para todas lasconexiones entre el cliente y el servidor.

• Implemetar restricciones en los distintos tipos de cuentas que se puedencrear para los clientes, como por ejemplo en un cuenta de tipo plazo fijono permitir una extracción de fondos si no se ha cumplido con el períodode tiempo pactado.

• Incorporar otro tipo de funcionalidad en la aplicación móvil como ser:

— Cargar crédito a un teléfono celular.

— Poder consultar información relevante como la cotización del dólar.

Page 310: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 310/318

 

288 CAPÍTULO 9. CONCLUSIONES 

Page 311: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 311/318

 

Bibliografía

[1] L. Joyanes Aguilar. Cibersociedad . Mac Graw-Hill, 1997.

[2] L. Joyanes Aguilar. Programación Orientada a Objetos - Segunda Edi-ción . Mc Graw Hill/Interamericana de España, S.A.U., España, 1998.

[3] Bart Jacob Carla Sadtler, John Ganci. WebSphere Product Family Over-view and Architecture . IBM Press, USA, 2004.

[4] IBM Corp. WebSphere Studio Device Developer Product Documentation .IBM, 2004.

[5] IBM Corp. IBM Workplace Client Technology Micro Edition Version 5.7.1. IBM, 2005.

[6] Michael J. Cunningham. Como Desarrollar una Estrategia de ComercioElectrónico. Pearson Educación, México, 2001.

[7] Isabel Gallego Fernández. Tesis doctoral:Modelo para comercio electrónicobasados en sistemas intermediarios . Universidad Politécnica de Catalun-ya, 2001.

[8] Maximiliano R. Firtman. Programación para celulares . Mp Ediciones,Buenos Aires, Argentina, 2005.

[9] WAP forum. WAP 2.0 Technical White Paper . WAP forum, 2002.

[10] Jorge Cardenes Patricia Froufe Quintas Agustín. J2ME Java 2 Micro Edi-

tion Manual De Usuario y Tutorial . Alfaomega Grupo Editor ArgentinoS.A., 2004.

[11] IBM. WebSphere Comerse V5.5 Architecture . IBM Press, USA, 2003.

[12] David Luis La Red Martinez. Material de apoyo de la catedra Diseño y Administración de Datos . Universidad Nacional del Nordeste, Corrientes,Argentina, 2006.

289

Page 312: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 312/318

 

290 BIBLIOGRAFÍA

[13] L. Joyanes Aguilar; I. Zahonero Martínez. Estructura de Datos - Algo-ritmos, Abstracción y Objetos . Mc Graw Hill/Interamericana de España,S.A.U., España, 1998.

[14] Lucas Ortega Díaz Sergio Gálvez Rojas. Java a Tope: J2ME . Universidadde Málaga, Málaga, España, 2004.

[15] Korth Henry F. & Susarshan S. Silberschatz, Abraham. Aprenda Servlets de Java como si estuviera en Segundo. Editorial McGraw-Hill, USA, 1993.

[16] E. Castillo; A. Cobo; P. Gómez; C. Solares. JAVA - Un Lenguaje de Programación Multiplataforma para Internet . Paraninfo, España, 1997.

[17] Andrew S. Tanenbaum. Redes de Computadoras . Pearson Educación,Mexico, 2003.

[18] M.Ñicklous T.Stober U. Hansmann, L. Merk. Pervasive Computing Hand-Book . Springer,Verlag, 2001.

[19] VV.AA. Introducción a las Bases de Datos . THOMSON PARANINFO,S.A., USA, 2005.

[20] Mark Weiser. The computer for the 21st century . Scientific American,San Francisco, CA, USA, 1991.

[21] Ing. Dario Yorio. Tesis de Magistratura:Identificación y clasificación de patrones en el diseño de aplicaciones móviles . Universidad Nacinal de laPlata.

Page 313: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 313/318

 

Índice de Materias

2.5G, 342G, 253G, 26, 34

AIV Extender, 178AMPS, 29

Advanced Mobile Phone System,25

Sistema Avanzado de TelefoníaMóvil, 27

AMS, 115, 116API, 253aplicación, 217Aplicaciones

Móviles, 51AWT, 111

B2B, 188Negocio a Negocio, 6

B2C, 188Negocio a Cliente Final, 5

Bases de DatosIntroduccion, 169

Bases de Datos en RedModelo, 174

Bases de Datos JerárquicasModelo, 173

Bases de Datos RelacionalModelo, 174

bibliotecasde clases, 65

bifurcaciones, 78

if, 79if else, 79

bloque try, catch, finally, 81

bucles, 80do while, 81for, 80while, 80

C/C++, 77C2C

Consumidor a Consumidor, 6caso de uso, 218CDC, 110

Conected Device Configuration,

107CDMA, 26

Acceso Múltiple Por División deCódigo, 32

celular, 245, 249Centro de Desarrollo, 180Ciclo del Conocimiento, 14Clases de Conocimientos, 14CLDC, 110

Conected Limited Device Con-figuration, 106

comentarios, 77Comercio Electrónico, 3comercio electrónico, 18

bancario, 19cominicaciones inalámbricas, 40computación pervasiva, 8Computacion Ubicua, 8

291

Page 314: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 314/318

 

292 ÍNDICE DE MATERIAS 

comunicaciones en J2ME, 153comunicaciones HTTP, 157comunicaciones móviles, 26configuración, 106, 109conocieminto tácito, 14conocimiento explícito, 14contenedor

cliente de aplicaciones de, 205EJB de, 204Web, 204

Content-Type, 85

D-AMPSSistema Avanzado de Telefonía

Digital, 29DB2

Introduccion, 169db2 Data Links Manager, 180DB2 UDB

Caracteristicas Generales, 177Funciones Complementarias, 178

DB2 Warehouse Manager, 180DBMS

Sistema de Administración deBases de Datos, 171

destroy, 88digitales

activos, 189Dispositivos, 213DNS, 206doGet, 85doGet (), 88

doPost (), 88download, 189

e-commerce, 187Eclipse, 210

Introduccíon y Conceptos, 192EDGE

Tasa de Datos Mejorada parala Evolución del GSM, 34ejemplo de

bifurcación if, 79bifurcación if else, 79bucle for, 80bucle while, 80clase, 70comentario, 78do while, 81línea compuesta por tres sen-

tencias, 77enterprise beans, 204Esquema General, 4estructuras de programación, 77expresión, 77

FDMmultiplexión por división de fre-

cuencias, 32

Gestión del Conocimiento, 17GFC, 153, 155, 157

Generic Framework Conection,153, 154

GPRS, 22, 26, 97, 230Servicio de Radio de Paquetes

Generales, 34GSM, 7, 19, 26, 34, 40

Sistema Global Para Comuni-caciones Móviles, 30

GUI, 205

herencia, 70

hosts virtuales, 205HTML, 39HTTP, 38HttpServletRequest, 85HttpServletResponse, 85

IMTS, 28

Page 315: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 315/318

 

ÍNDICE DE MATERIAS  293

Sistema Mejorado de TelefoníaMóvil, 27INIT, 86instanciación e inicialización, 86interfaz

Connection, 155InputConnection, 156OutputConnection, 156StreamConnection, 157

Internet, 1, 19, 35, 38móvil, 230

IT, 202J2EE, 201

Java 2 Enterprise Edition, 98J2ME, 22, 97

Java 2 Micro Edition, 97, 98,102

J2SEJava 2 Standard Edition, 98

Java, 63, 65, 66, 97estructura general de un pro-

grama, 68 javax.servlet.HttpServlet, 85JCA, 202JDBC, 205JDK, 78JNDI, 205JSP, 204

modelos de, 93 juegos y aplicaciones, 37JVM, 203

Java Virtual Machine, 98

Ley de Moore y la Vision de Weiser,11

M-CommerceComercio Electrónico a Través

de Dispositivos Móviles, 7m-commerce, 3

memoriaadministrador automático de la,68

mensajes multimedia, 37middleware, 201MIDlet, 115, 118, 119, 139MIDP, 110, 153MMS, 49

Multimedia Messaging System,37

Modelos de Comercio Electrónico,

5MSCCentro de Conmutación Móvil,

28MTSO

Oficina de Telefonía Móvil, 28multi servidor, 202mundo móvil, 25MVC, 254

NTICs

Nuevas Tecnologías de Informáti-ca y Comunicaciones, 1nuevas tecnologias, 1

OMAOpen Mobile Alliance, 40

OOP, 68operadores

aritméticos, 74de asignación, 74de concatenación de cadenas de

caracteres, 76

package, 71packages, 69PCS

Personal Communications Ser-vices, 25

PDA, 206

Page 316: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 316/318

 

294 ÍNDICE DE MATERIAS 

perfil, 109plataformade software, 186

plug-in, 203proceso de formación del conocimien-

to, 13

Quick Installation, 203

record, 139store, 139, 140, 251stores, 151, 152

RMS, 137, 139, 141, 251

sentencia, 77Server

ApplicationAdvanced Edition, 201Enterprise Edition, 202Standard Edition, 203

server-side, 86servicio

de demanda, 88

servicios de información, 36servidor

de aplicaciones, 203HTTP, 203

servletciclo de vida del, 86codificación de, 85motor del, 86

servlets, 204Set-Cookie, 85sincronización, 245

sinronización, 245sistema avanzado de telefonía móvil,

27sistemas móviles de segunda gene-

ración, 32SMS, 7, 19, 37

Short Message System, 36

SMTP, 36Sociedad de la Informacion y el Co-nocimiento

definición, 12software, 71software móvil, 38Spatial Extender, 180

TCP/IP, 40TDM

multiplexión por división de tiem-

po, 32TDMA, 26teléfonos

móviles, 3teléfonos celulares, 27, 51, 103, 206teléfonos móviles, 35teléfonos móviles de primera gene-

ración, 26teléfonos móviles de segunda gene-

ración, 29teléfonos móviles de tercera genera-

ción, 33telefonía celular, 26, 36telefonía móvil, 27

UMTSSistema Universal de Telecomu-

nicaciones Móviles, 33

variablelocal, 72miembro de una clase, 72referencia, 72

variablestipo primitivo, 72

virtualsistema principal, 205

W-CDMA, 33CDMA de Banda Ancha, 33

Page 317: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 317/318

 

ÍNDICE DE MATERIAS  295

WAP, 7, 19, 38wireless application protocol, 40WAS

WebSphere Application Server,190, 199

WBMLWireless Binary mark-up Lan-

guage, 44WCTME

Workplace Client Technology Mi-cro Edition, 206

Webaplicaciones, 94

Web Services, 202WebSphere

Application Server, 199Studio, 185

WebSphere Commerce, 187WebSphere for Commerce

soluciones de portal, 188soluciones digital media, 189

WebSphere for commercesoluciones B2B, 187soluciones B2C, 187

WebSphere Portal, 187WebSphere Studio

Productos, 190WML, 39

Wireless Mark-up Language, 44Workbench

banco de trabajo, 192WSAD

Entorno de Desarrollo de WebS-phere Studio, 192WebSphere Studio Application

Developer, 190WSADIE

WebSphere Studio ApplicationDeveloper Integration Edi-

tion, 190WSEDWebSphere Studio Enterprise De-

veloper, 190WSSDA

WebSphere Studio Site Develo-per Advanced, 190

XHTML-MP, 46XML Extender, 178, 180

Page 318: tfsoto

5/14/2018 tfsoto - slidepdf.com

http://slidepdf.com/reader/full/tfsoto 318/318