Post on 11-May-2015
1
UNIVERSIDAD DE PAMPLONA FACULTAD DE INGENIERIAS Y ARQUITECTURA
DEPARTAMENTO DE INGENIERIAS ELECTRICA ELECTRÓNICA SISTEMAS Y TELECOMUNICACIONES
PROGRAMA DE INGENIERIA DE SÍSTEMAS.
TRABAJO PRESENTADO PARA OPTAR POR EL TITULO DE INGENIERO DE SÍSTEMAS
TEMA IMPLEMENTACIÓN DE UN SISTEMA PARA LA ADMINISTRACIÓN DE
SERVICIOS WEB EN TELEFONÍA MÓVIL A TRAVÉS DE LA PLATAFORMA J2ME
AUTOR: ANDRÉS ARLEY RINCÓN PACHECO DIRECTOR: Msc. ING. LUZ MARINA SANTOS JAIMES
PAMPLONA - COLOMBIA
SEPTIEMBRE 2008
2
UNIVERSIDAD DE PAMPLONA FACULTAD DE INGENIERIAS Y ARQUITECTURA
DEPARTAMENTO DE INGENIERIAS ELECTRICA ELECTRÓNICA SISTEMAS Y TELECOMUNICACIONES
PROGRAMA DE INGENIERIA DE SÍSTEMAS
TRABAJO PRESENTADO PARA OPTAR POR EL TITULO DE INGENIERO DE SÍSTEMAS
TITULO IMPLEMENTACIÓN DE UN SISTEMA PARA LA ADMINISTRACIÓN DE
SERVICIOS WEB EN TELEFONÍA MÓVIL A TRAVÉS DE LA PLATAFORMA J2ME
FECHA DE INICIO DEL TRABAJO: MARZO 2008 FECHA DE TERMINACIÓN DEL TRABAJO: SEPTIEMBRE 2008 NOMBRES Y FIRMAS DE AUTORIZACIÓN: __________________________________ ______________________________ ANDRÉS ARLEY RINCÓN PACHECO Msc. Ing. LUZ MARINA SANTOS J.
Autor Trabajo de Grado Director Trabajo de Grado
_________________________________ Msc. Ing. CARLOS ARTURO PARRA
Director de Programa
JURADO CALIFICADOR: __________________________________ _____________________________ Esp. Ing. SERGIO PEÑALOZA ROJAS Ing. LAWRENCE FATULE Presidente Oponente
_________________________________ Ing. DEWAR RICO
Secretario
PAMPLONA - COLOMBIA SEPTIEMBRE 2008
3
UNIVERSIDAD DE PAMPLONA FACULTAD DE INGENIERIAS Y ARQUITECTURA
DEPARTAMENTO DE INGENIERIAS ELECTRICA ELECTRÓNICA SISTEMAS Y TELECOMUNICACIONES
PROGRAMA DE INGENIERIA DE SÍSTEMAS
ACTA DE CALIFICACIÓN DE TRABAJO DE GRADO
EL JURADO CALIFICADOR CONFORMADO POR: (Nombres y apellidos)
PRESIDENTE:_________________________________________________ VOCAL: ________________________________________________ SECRETARIO:_________________________________________________ EN SU SESIÓN EFECTUADA EN ___________________________________________ A LAS _____ HORAS, DEL DIA____DEL MES _____DEL AÑO________ TERMINADAS SUS DELIBERACIONES HA LLEGADO A LAS SIGUIENTES CONCLUSIONES: PRIMERA CONCLUSIÓN: En correspondencia con el artículo 35 parágrafo segundo del reglamento estudiantil, emitido en el acuerdo No. 186 del 02 de diciembre del año 2005, del Concejo Académico Superior de La Universidad de Pamplona.
AL TRABAJO DE GRADO TITULADO:____________________________________________________________________________________________________________________________________________________________________________________________________________________ DEL AUTOR:___________________________________________________________________ DIRECTOR:________________________________________________________________
OTORGAR LA CALIFICACION DE:
EXCELENTE APROBADO INCOMPLETO
FIRMAR EN LA CALIFICACION
4
SEGUNDA CONCLUSION:
RECOMENDAR:
No. DESCRIPCION ACEPTABLE
SI NO
1. Recomendar para presentar en eventos científicos.
2. Recomendar para publicación.
3. Incluir en el fondo bibliográfico de la Universidad de Pamplona.
4. Recomendar para ser continuado en otros trabajos.
5. Recomendar para patente.
6. Recomendar continuar como trabajo de maestría.
7. Recomendar para meritorio.
8. Recomendar para laureado.
9. Recomendar continuar como trabajo de doctorado.
10. Otras.
Otras: ___________________________________________________________________ TERCERA CONCLUSIÓN: OTORGAR EL TITULO DE INGENIERO ___________________________________________________________________
Firmas del jurado: ______________________________ __________________________ __________________________ PRESIDENTE OPONENTE SECRETARIO
5
DEDICATORIA
Dedico este trabajo a Dios que con su voluntad divina
y su compañía me ha dado la fuerza para seguir
adelante. A mis padres: Araminta Pacheco y
Aliro José Rincón; a mis hermanos Audry y
Francisco Rincón; por su apoyo incondicional en este
largo y duro camino para conquistar el sueño de ser
profesional.
6
PENSAMIENTO
El éxito del perseverante es alcanzar sus metas sin sacrificar
sus principios.
Roberto Palomo Cea.
El hombre juzga su éxito por lo que tiene y no por lo que ha
dejado de tener.
Esteban Edwards.
7
AGRADECIMIENTOS
A Dios por darme la sabiduría y voluntad para seguir
adelante a pesar de las adversidades. A mis padres por su
confianza, su entrega y apoyo depositado en mí para cumplir
este sueño.
A la Msc. Ing. Luz Marina Santos Jaimes, directora
de tesis por su apoyo y colaboración en la ejecución del trabajo.
A mis amigos y amigas gracias por su apoyo y compañía
en esta gran etapa de mi vida.
8
RESUMEN
Con la ejecución de este proyecto se desea implementar un sistema que permita el
acceso de Servicios Web en telefonía móvil a través de la plataforma J2ME,
evaluando las características de la plataforma J2ME, las tecnologías involucradas en
el desarrollo de Servicios Web y las APIs necesarias para llevar a cabo la
implementación del sistema.
En el Capitulo I se hace un estudio de las características relevantes de la plataforma
J2ME.
El Capitulo II es una introducción a las generalidades de los Servicios Web en
cuanto a las tecnologías y formas de implementación usadas.
El Capitulo III evalúa a fondo la ESPECIFICACIÓN DE SERVICIOS WEB DE J2ME,
la cual permite la implementación de aplicaciones en telefonía móvil para tener
acceso a Servicios Web ubicados de forma remota.
El Capitulo IV describe la IMPLEMENTACION DEL SISTEMA DE ADMINISTRACION
DE SERVICIOS WEB EN TELEFONIA MOVIL A TRAVES DE LA PLATAFORMA
J2ME, enfoque principal que se le ha dado a la ejecución del PTG.
Por último se realizaron investigaciones minuciosas acerca del estado del arte
referente a la implementación de aplicaciones clientes que tengan acceso a
Servicios Web en telefonía móvil a nivel nacional e internacional.
9
ABSTRACT
With the execution of this project it is wanted to implement a system allowing access
of Web Services in mobile telephony across the platform J2ME, evaluating the
characteristics of the J2ME platform, technologies involved in the development of
Web Services and APIs necessary to carry out the implementation of the system.
In Chapter I made a study of relevant features of the platform J2ME.
Chapter II is an introduction to the generalities of the Web Services on technologies
and ways of implementation used.
Chapter III assesses thoroughly the SPECIFICITY OF J2ME WEB SERVICES, which
enables the implementation of applications for mobile access Web Services of
remotely located.
Chapter IV describes the SYSTEM IMPLEMENTATION MANAGEMENT WEB
SERVICES IN MOBILE PHONE OVER THE J2ME PLATFORM, main approach to it
has given to the implementation of PTG.
Lastly were conducted thorough investigations about the state of the art concerning
the implementation of applications customers have access to Web Services mobile
nationally and internationally.
10
INDICE GENERAL
PAG
DEDICATORIA
PENSAMIENTO
AGRADECIMIENTO
RESUMEN
ABSTRACT
INDICE DE FIGURAS 14
INDICE DE TABLAS 15
INTRODUCCION 16
JUSTIFICACION 18
NECESIDADES Y PROBLEMAS 19
DELIMITACIÓN 20
CAPITULO I. GENERALIDADES DE J2ME. 21
1.1. INTRODUCCIÓN. 21
1.2. ANALISIS COMPARATIVO. 22
1.3. CARACTERISTICAS DE J2ME. 25
1.4. ARQUITECTURA DE J2ME. 26
1.4.1. Máquina Virtuales. 27
1.4.2. Configuraciones. 32
1.4.3. Perfiles. 36
1.4.4. Paquetes Opcionales. 41
CAPITULO II. SERVICIOS WEB. 45
2.1. INTRODUCCIÓN. 45
2.2. GENERALIDADES DE LOS SERVICIOS WEB. 45
11
2.2.1. Definición. 45
2.2.2. Características. 46
2.3. COMPONENTES DE SERVICIOS WEB. 48
2.3.1. Agentes y Servicios. 48
2.3.2. Cliente y Proveedor. 48
2.3.3. Descripción del Servicio. 49
2.3.4. Semánticas. 49
2.4. TECNOLOGÍAS ESTÁNDAR PARA SERVICIOS WEB. 49
2.5. ESCENARIOS DE SERVICIOS WEB. 51
CAPITULO III. ESPECIFICACIÓN DE SERVICIOS WEB EN J2ME. 53
3.1. INTRODUCCIÓN. 53
3.2. GENERALIDADES. 53
3.3. JSR 172: PAQUETES OPCIONALES. 54
3.3.1. API JAXP. 55
3.3.1.1. Requerimientos de Plataforma. 55
3.3.1.2. Requerimientos del API. 55
3.3.1.3. Paquetes del API JAXP. 55
3.3.1.4. Implementación de JAXP. 57
3.3.2. API JAX-RPC. 57
3.3.2.1. Requerimientos de Plataforma. 58
3.3.2.2. Requerimientos del API. 58
3.3.2.3. Paquetes del API JAX-RPC. 58
3.4. OTROS PAQUETES. 60
3.4.1. kXML. 60
3.4.1.1. Requerimientos del API. 61
3.4.1.2. Paquetes del API kXML. 61
3.4.2. kSOAP. 61
3.4.2.1. Requerimientos de Plataforma. 61
3.4.2.2. Requerimientos del API. 61
12
3.4.2.3. Paquetes del API kSOAP. 61
CAPITULO IV. IMPLEMENTACIÓN DEL SISTEMA PARA LA ADMINISTRACIÓN
DE SERVICIOS WEB EN TELEFONIA MÓVIL A TRAVÉS DE LA
PLATAFORMA J2ME. 63
4.1. ESPECIFICACIONES GENERALES. 63
4.1.1. Patrón de Diseño MVC. 63
4.1.2. Diagramas de Casos de Usos. 64
4.1.2.1. Diagrama de Caso de Uso del Servicio
Artesanías de Colombia. 64
4.1.2.2. Diagrama de Caso de Uso del Servicio Cine. 65
4.1.3. Diagramas de Clases. 66
4.1.3.1. Diagrama de Clases del Servicio Artesanías de
Colombia. 66
4.1.3.2. Diagrama de Clases del Servicio Cine. 67
4.2. HERRAMIENTAS UTILIZADAS EN LA IMPLEMENTACION
DEL SISTEMA. 68
4.3. DETALLES DE LA IMPLEMENTACION. 69
4.4. EMULACIÓN DEL SISTEMA EN LA HERRAMIENTA J2ME
WIRELESS TOOLKIT 2.5.2. 70
4.4.1. Características de la herramienta. 70
4.5. EMULACIÓN DEL SISTEMA EN LA HERRAMIENTA NOKIA PROTOTYPE
SDK 4.0 FOR JAVA ™ ME. 74
4.5.1. Características de la herramienta. 74
4.6. EMULACIÓN DEL SISTEMA EN LA HERRAMIENTA SONY ERICSSON
SDK 2.5.0.2 FOR THE JAVA ™ ME PLATFORM. 77
4.6.1. Características de la herramienta. 77
13
CAPITULO V. MARCO HISTORICO DEL PROYECTO. 80
5.1. ESTADO DEL ARTE. 80
5.1.1. Fuentes Primarias – Trabajos Relacionados – Internacional. 81
5.1.2. Fuentes Primarias – Trabajos Relacionados – Nacional. 82
PRESUPUESTO ECONOMICO. 84
FUENTES DE FINANCIACIÓN. 87
MARCO LEGAL. 88
ANALISIS DE LA PROTECCIÓN E HIGIENE DEL TRABAJO. 90
INFLUENCIA AMBIENTAL DEL TRABAJO. 91
ARTICULO CIENTIFICO. 92
CONCLUSIONES. 99
OBSERVACIONES Y RECOMENDACIONES. 100
BIBLIOGRAFIA. 101
ANALISIS BIBLIOGRAFICO. 105
GLOSARIO DE TERMINOS. 106
ABREVIATURAS UTILIZADAS. 107
ANEXOS. 110
RESEÑA BIOGRAFICA DEL DIRECTOR. 119
14
INDICE DE FIGURAS
Fig. Pág
1. Arquitectura de la plataforma Java 2 de Sun. 24
2. Arquitectura de J2ME. 27
3. Pre-verificación de clases en J2ME. 30
4. Entorno de ejecución para J2ME. 37
5. Escenario de Servicios Web. 52
6. Componentes del patrón de diseño MVC. 64
7. Diagrama de Caso de Uso del Servicio Artesanías de Colombia. 65
8. Diagrama de Caso de Uso del Servicio Cine. 66
9. Diagrama de Clases del Servicio Artesanías de Colombia. 67
10. Diagrama de Clases del Servicio Cine. 68
11. Flujo de Ejecución de la Aplicación para Artesanías de Colombia en
J2ME Wireless Toolkit 2.5.2. 72
12. Flujo de Ejecución de la Aplicación para Cines de Colombia en J2ME
Wireless Toolkit 2.5.2. 73
13. Flujo de Ejecución de la Aplicación para Artesanías de Colombia
en Nokia Prototype SDK 4.0 for JAVA ™ ME. 75
14. Flujo de Ejecución de la Aplicación para Cines de Colombia en Nokia
Prototype SDK 4.0 for JAVA ™ ME. 76
15. Flujo de Ejecución de la Aplicación para Artesanías de Colombia Sony
Ericsson SDK 2.5.0.2 for the JAVA ™ ME. 78
16. Flujo de Ejecución de la Aplicación para Cines de Colombia Sony Ericsson
SDK 2.5.0.2 for the JAVA ™ ME. 79
15
INDICE DE TABLAS
Tabla Pág.
1. Librerías de Configuración CDC. 34
2. Librerías de Configuración CLDC. 35
3. Librerías del Foundation Profile. 37
4. Librerías del Personal Profile. 38
5. Librerías del perfil MIDP. 41
6. Herramientas y Software usado para la implementación. 68
7. Medios Básicos. 85
8. Medios de Rotación. 85
9. Gastos en Personal. 86
16
INTRODUCCIÓN
El advenimiento de nuevas tecnologías que permiten la portabilidad de aplicaciones
en diversos tipos de dispositivos móviles como los teléfonos celulares, ha provocado
el surgimiento de plataformas de programación que permitan el desarrollo y
ejecución de este tipo de aplicaciones. Entre las plataformas actualmente
reconocidas esta Java con su Edición Micro (J2ME) cuyo objetivo es el desarrollo de
aplicaciones para cualquier tipo de dispositivo móvil, portátil, etc.
J2ME cumple con los requisitos necesarios para la implementación de diversas
aplicaciones en telefonía móvil debido a la flexibilidad y capacidad con la que
administra los pocos recursos con los que cuentan estos dispositivos móviles. Su
interoperabilidad en diversos sistemas operativos móviles y otras características
convierten a la plataforma J2ME en una de las más atractivas. J2ME hace uso de
unas características disminuidas en cuanto a procesamiento y ejecución con
respecto a otras plataformas Java tales como J2EE y J2SE. Esto ocurre debido a
que las características de los tipos de dispositivos mencionados anteriormente
manejan recursos limitados en cuanto a interfaz gráfica y poder de procesamiento de
las aplicaciones.
Los servicios Web son componentes software interoperables estructurados sobre la
Arquitectura Orientada a Servicios (SOA), que permiten la búsqueda de
determinados productos, servicios, etc., a los usuarios, que de manera interactiva y
amigable pueden tener acceso a ellos desde cualquier dispositivo móvil. El corazón
del funcionamiento de este tipo de aplicaciones esta basado en el modo de
operación de los archivos XML, que son los que realizan el transporte de
información, entre el servicio Web y/u aplicaciones o usuarios que hagan uso del
mismo, a través de diversos protocolos de Internet como HTTP.
XML se considera el corazón de los servicios Web, ya que es la tecnología que
permite el manejo de datos estructurados, a través de mensajes SOAP en la
17
interacción entre el servicio Web y el usuario por medio de peticiones y resultados
devueltos por el servicio Web. WSDL es el Lenguaje de Descripción de Servicios
Web basado en XML que describe las características y operaciones que ofrece el
servicio Web.
La Extensibilidad de este lenguaje permite ser utilizado en cualquier plataforma que
maneje el intercambio de datos sobre cualquier protocolo de red, entre ellos J2ME.
La implementación de servicios Web en telefonía móvil a través de la plataforma
J2ME permite a los usuarios de telefonía móvil la interacción con servicios ubicados
en la red accediendo desde su teléfono celular, PDA, etc., y tener acceso de forma
rápida a una gran diversidad de contenido interactivo. Dicha implementación se
llevará a cabo manejando metodologías de programación soportadas por J2ME que
conlleven al desarrollo de aplicaciones empresariales como lo son los Servicios
Web, a través del estudio de las generalidades, características de la plataforma y
APIs de la Referencia de Implementación de Servicios Web en J2ME.
Se pretende utilizar el patrón de desarrollo MVC (Modelo Vista Controlador) en la
ingeniería del software, usando múltiples capas que aseguren la integridad de la
aplicación final. Este patrón permite dividir el desarrollo, es decir, separa la lógica de
la aplicación del manejo de datos y de la interfaz gráfica de la aplicación. Para esto
es necesario adaptar el modelo inicialmente soportado sobre J2EE a la plataforma
J2ME, de tal forma que el patrón de desarrollo sea manejado por las APIs de J2ME y
pueda ser implementado en la implementación de la aplicación que accederá
servicios Web sobre telefonía celular.
El trabajo de grado se realiza en la Modalidad de Investigación con el fin de referir
características fundamentales y básicas de la plataforma J2ME debido al poco
conocimiento en la Universidad de Pamplona.
18
JUSTIFICACIÓN
El auge que está teniendo la telefonía móvil actualmente repercute en la creciente
necesidad de que los usuarios y clientes de telefonía móvil tengan acceso a
diferentes tipos de servicios a través de la red. Con el fin de manejar la búsqueda
de servicios en estos dispositivos móviles, los Web Services (Servicios Web) son la
solución más conveniente para orientar e integrar aplicaciones que permitan realizar
y estandarizar las metodologías de búsqueda de una forma segura al igual que se
hace con una computadora personal.
Es de destacar que el estudio de las capacidades de los teléfonos móviles es de vital
importancia en el establecimiento de criterios que agilicen el desarrollo de
aplicaciones para el manejo de Servicios Web debido a las restricciones que estos
tienen.
J2ME (Java 2 Micro Edition) como plataforma Java debido a su robustez se ajusta
de la mejor manera a la solución de Servicios Web en cuanto al manejo y
estructuración de los datos en teléfonos móviles, debido a la flexibilidad con que
soluciona los problemas de limitación de éstos permitiendo la adecuación de
operaciones complejas que se pueden realizar en un PC. No obstante, cabe aclarar
que no se pueden solucionar del todo esas limitaciones debido a la naturaleza
intrínseca de estos dispositivos.
Con J2ME y APIs (Interfaz de Programación de Aplicaciones) auxiliares se llevará a
cabo la realización de módulos que permitan gestionar la administración de Servicios
Web en un celular o cualquier tipo de teléfono móvil que sea capaz de soportar la
plataforma J2ME.
19
NECESIDADES Y PROBLEMAS
No existe un conocimiento claro y conciso sobre la plataforma J2ME que permita el
establecimiento de técnicas de programación de este tipo en Colombia. El desarrollo
de aplicaciones para dispositivos móviles se esta convirtiendo en una prioridad a
nivel mundial con el fin de dar más comodidad a los usuarios de estos dispositivos
en cuanto al acceso y manejo de contenido interactivo, gestores de búsqueda en la
Web, aplicaciones, etc.
En el mercado de la telefonía móvil se pueden encontrar los siguientes
inconvenientes en cuanto al desarrollo se refiere:
La poca aceptación de Sistemas Operativos Móviles que no establezcan una
estructura jerárquica en el manejo de archivos en estos dispositivos.
La escasa información encontrada sobre la generación de software que
permita manejar de forma integral la seguridad e interoperabilidad de los
Servicios Web en dispositivos móviles.
El hecho de que no existan metodologías aceptadas de forma veraz que
ayuden a la ejecución y prueba de técnicas para la construcción de
aplicaciones que cumplan con los requerimientos esperados.
La falta de robustez de las plataformas de desarrollo y ejecución de tales
aplicaciones.
Es necesario el conocimiento de una plataforma abierta, robusta y flexible como lo
es J2ME con el fin de establecer criterios que ayuden a procesar aplicaciones
integrales que permitan al usuario final interactuar a través de los dispositivos
móviles en la búsqueda de servicios.
20
DELIMITACIÓN
OBJETIVO GENERAL
Implementar un sistema prototipo para la administración de Servicios Web en
telefonía móvil sobre la plataforma J2ME de Java.
OBJETIVOS ESPECIFICOS
Realizar un análisis bibliográfico sobre las características resaltantes de la
plataforma J2ME.
Estudiar las APIs necesarias que permitan el desarrollo del sistema.
Reconocer el estado del arte sobre la implementación de Servicios Web en
teléfonos móviles a través de J2ME.
Desarrollar el sistema para la administración de Servicios Web en telefonía
móvil con las herramientas y APIs necesarias.
Llevar a cabo la simulación del sistema para la administración de Servicios
Web a través de emuladores de diversos teléfonos móviles.
Redactar un artículo referente a la implementación de Servicios Web en
teléfonos móviles a través de J2ME.
21
MARCO TEÓRICO
I. GENERALIDADES DE J2ME
1.1. INTRODUCCIÓN.
El lenguaje de programación JAVA fue lanzado a mediados de los años 90 con el
único fin de ser usado en el desarrollo de aplicaciones para el control de
electrodomésticos por su robustez e interoperabilidad, ya que no importa la
plataforma sobre la que se ejecute la aplicación. Este tipo de aplicaciones fue
denominado applets. El grado de avance de este lenguaje es tal que actualmente es
considerado uno de los lenguajes y plataforma de diseño más famoso del mundo.
Cuenta con soporte para diferentes protocolos de Internet para el manejo de
aplicaciones Web y controladores para diversos manejadores de bases de datos
como JDBC, entre otros. Actualmente esta orientado a soluciones personales y
empresariales en varios ámbitos tecnológicos. Estos ámbitos se han agrupado en
ediciones distintas del lenguaje Java. Estas versiones son:
Java 2 Platform, Standard Edition (J2SE): maneja el núcleo de toda
la funcionalidad del lenguaje Java. Satisface requerimientos
específicos para aplicaciones particulares como applets, incluyendo
paquetes opcionales para extensión de seguridad en sockets usado en
comercio electrónico.
Java 2 Platform, Enterprise Edition (J2EE): usado para el desarrollo
a nivel empresarial y en entornos de aplicaciones servidor,
incorporando nuevas tecnologías tales como los servlets, Enterprise
JavaBeans (EJBs), XML y Java Server Pages.
Java 2 Platform, Micro Edition (J2ME): subconjunto de J2SE usado
para programación de aplicaciones y necesidades combinadas tales
como:
22
consumidores y fabricantes de dispositivos móviles con recursos
limitados,
proveedores de servicio que desarrollan contenido personal sobre
estos dispositivos, y
creadores de contenido que ajustan el contenido para dispositivos
con recursos limitados.
Estas ediciones de la Plataforma Java estandarizan un conjunto de tecnologías que
pueden ser usadas con un producto particular:
Maquinas virtuales Java que se ajustan dentro de un amplio rango de
dispositivos,
librerías y APIs especializadas para cada tipo de dispositivo, y
herramientas para el desarrollo y configuración de dispositivos.
La edición J2ME lanzada en 1999 por la Sun MicroSystems tiene una aparición
tardía debido a que las necesidades de los usuarios de dispositivos móviles cambio
de manera drástica en los últimos años. J2ME se orienta al desarrollo de
aplicaciones para pequeños dispositivos con limitaciones gráficas, de procesamiento
y memoria (teléfonos móviles, PDAs, Beepers, etc.). J2ME consta de un conjunto de
especificaciones para definir una colección de plataformas, apropiadas para un
subconjunto del amplio rango de dispositivos para usuarios existentes en el
mercado.
1.2. ANÁLISIS COMPARATIVO.
Las siguientes son las características referidas en cada una de las distintas
ediciones de Java:
Java 2 Platform, Standard Edition (J2SE): constituye el núcleo de
Java y tiene las siguientes características:
Desarrollado al principio sobre C++. A diferencia de C++, este
maneja soporte nativo de cadenas de caracteres y recolector de
23
basura.
Su código es interoperable, es decir independiente de la plataforma
sobre la cual se ejecute. Se ejecuta en el lado del cliente por una
JVM (Maquina Virtual Java).
Su modelo de seguridad sandbox (caja de arena) permite el control
de acceso a un programa y sus recursos, es proporcionado por la
JVM.
Permite un ajuste al sistema operativo en donde se ejecuta a través
de un conjunto de APIs.
Esta edición de Java permite el desarrollo de aplicaciones personalizadas a través
de applets, interfaz gráfica de usuario, multimedia, etc.
Java 2 Platform, Enterprise Edition (J2EE): orientada al desarrollo
de aplicaciones de entorno empresarial, como los servicios Web,
servicios de nombres, persistencia de objetos, XML, etc. Debido al
manejo distribuido de información en estos tipos de entornos, J2EE
proporciona las herramientas necesarias para cumplir con tal objetivo a
través de los EJBs. También permite la manipulación de datos
provenientes de entornos heterogéneos. El objetivo de esta edición es
ampliar las capacidades de J2SE dando soporte a requisitos
empresariales.
Java 2 Platform, Micro Edition (J2ME): enfocada en la aplicación de
la tecnología Java en dispositivos electrónicos con capacidades
restringidas en cuanto a memoria, tales como teléfonos móviles, PDAs,
etc. A diferencia de las otras dos ediciones esta hace uso de una
maquina virtual denominada KVM (Maquina Virtual Kilo), ya que solo
requiere de unos cuantos Kilobytes de memoria para poder funcionar
de manera correcta, incluyendo además un recolector de basura
pequeño.
24
La Figura 1 muestra las diferentes ediciones de la Plataforma Java 2 y sus mercados
objetivos.
Figura 1. Arquitectura de la plataforma Java 2 de Sun.
J2ME es dividido en dos categorías que se enfocan en consumidores sofisticados y
de bajo nivel. J2ME usa 37 clases de la plataforma J2SE, conformando lo que se
denomina configuración. Los perfiles definen el subconjunto del entorno de
programación de completo de Java para un dispositivo particular. La configuración
y/o perfiles depende en gran medida de de la naturaleza de su hardware y el
mercado objetivo.
25
1.3. CARACTERÍSTICAS DE J2ME.
J2ME especifica el rápido y extenso espacio de consumidor, el cual abarca un
amplio rango de dispositivos con pequeñas comodidades, tales como beepers,
consolas de TV, etc. J2ME permite el mantenimiento de las cualidades que la
tecnología Java ha conocido para la inclusión de consistencia a través de productos,
portabilidad de código, transmisión segura de red, y escalabilidad.
El concepto de sofisticación en J2ME permite a las plataformas de desarrollo
proporcionar aplicaciones detalladas con extensibilidad dinámica, dispositivos de red
y aplicaciones para el consumidor y el mercado incorporado. Además, permite a los
fabricantes de dispositivos, proveedores de servicio y creadores de contenido a
capitalizar en una nueva oportunidad del mercado para el desarrollo y despliegue de
nuevas aplicaciones y servicios portentosos para sus clientes a nivel mundial. Esto
conlleva a que estos fabricantes abran sus dispositivos para extender el desarrollo
de aplicaciones de terceras partes sin la pérdida en el manejo del control de la
seguridad en la plataforma subyacente específica del fabricante.
J2ME es encontrado en dos extensas categorías de productos:
Dispositivos para consumidores “Sofisticados o de Alto Nivel”,
cuya categoría se representa en la Figura 1 por el grupo etiquetado con
la palabra CDC (Configuración de Dispositivos Conectados). Entre
estos tipos de dispositivos se incluyen, las consolas de Televisión,
Televisores son Internet, teléfonos con pantalla habilitados para
Internet, comunicadores inalámbricos de alto nivel, y sistemas de
navegación y entretenimiento para automóviles. Este tipo de
dispositivos ofrecen unas grandes capacidades en la interfaz de
usuario, el total de memoria establecida de entre dos hasta cerca de
cuatro megabytes, persistencia, conexiones de red con alto ancho de
banda, a menudo usando TCP/IP.
26
Dispositivos para consumidores de “Bajo Nivel”, representada en
la Figura 1.1 por el grupo etiquetado con la palabra CLDC
(Configuración de Dispositivos con Conexión Limitados). Son ejemplo
de este tipo de dispositivos los teléfonos celulares, beepers y
organizadores personales. Estos dispositivos tienen una interfaz de
usuario simple, con recursos de memoria desde 128 hasta 256
kilobytes, bajo ancho de banda y conexión de red intermitente. La
comunicación de red a menudo no está basada en el protocolo TCP/IP
y la gran mayoría de estos dispositivos son operados a través de
baterías.
J2ME está conformado por los siguientes componentes:
Múltiples máquinas virtuales especificas para cualquier tipo de dispositivo
pequeño.
Configuraciones, clases básicas orientadas para implementaciones en
dispositivos con características específicas. Las dos configuraciones
manejadas en J2ME son: Configuración de Dispositivos Limitados con
Conexión, CLDC usada en dispositivos con restricciones de
procesamiento y memoria, y CDC, Configuración de Dispositivos
Conectados para dispositivos con más recursos.
Los Perfiles, librerías Java para familias de dispositivos específicas, con
clases para la implementación de funcionalidades de más alto nivel.
1.4. ARQUITECTURA DE J2ME.
La arquitectura J2ME está proyectada para ser modular y escalable, además que
puede soportar los tipos de desarrollo demandados por el consumidor e
incorporados en los mercados. El entorno de J2ME proporciona un conjunto de
Maquinas Virtuales Java, optimizadas para diferentes tipos de procesamiento.
27
Al igual que los fabricantes desarrollan nuevas características en sus dispositivos,
los proveedores de servicio desarrollan nuevas aplicaciones, estas configuraciones
mínimas pueden ser expandidas con librerías adicionales que administran las
necesidades de un segmento del mercado en particular. Existen cuatro conceptos
esenciales, que conforman el corazón de la arquitectura de J2ME:
Máquina Virtual.
Configuración.
Perfil.
Paquetes Opcionales.
La estructura de la arquitectura de J2ME se puede observar en la Figura 2.
Figura 2. Arquitectura de J2ME.
1.4.1. Máquinas Virtuales.
La Maquina virtual Java tiene como función principal interpretar código
intermedio (bytecode) procedentes de la pre-compilación a código ejecutable
por la plataforma, permitiendo así efectuar llamadas al sistema operativo
subyacente para que este evalúe el código y establezca reglas de seguridad
para que el lenguaje Java se ejecute. Esto proporciona al programa
independencia a la plataforma con respecto al hardware y el sistema
Paquete(s) Opcional(es)
Perfil(es)
Sistema Operativo
Configuración { Librerías JVM
28
operativo del dispositivo, lo cual la convierte en interoperable.
A diferencia de las ediciones de Java J2SE y J2EE, J2ME utiliza una maquina
virtual con capacidades reducidas debido a las características intrínsecas de
los teléfonos celulares con el fin de realizar una implementación menos
exigente, suprimiendo el soporte a algunas características del lenguaje Java
pertenecientes a J2SE yJ2EE. De acuerdo al tipo de configuración se utiliza
una maquina virtual distinta. La Maquina Virtual de la configuración CLDC se
denomina KVM y la de la configuración CDC CVM.
KVM (Kilobyte Virtual Machine)
Es la máquina virtual más pequeña desarrollada por la Sun, compacta
y portable diseñada específicamente para un grupo de dispositivos
pequeños con recursos restringidos. Su nombre hace referencia a la
baja ocupación de memoria que utiliza. KVM es apropiado para
microprocesadores de 16/32 bits RISC/CISC y con un total de memoria
asignada de no más de unos cientos de kilobytes (algunas veces
menos de 128 kilobytes). KVM fue diseñada para ser:
Pequeña, con una carga de memoria entre los 40Kb y los 80 Kb,
dependiendo de la plataforma y las opciones de compilación.
Alta portabilidad.
Modulable.
Lo más completa y rápida posible y sin sacrificar características
para las que fue diseñada.
“Alrededor de 128 kB es el mínimo total de memoria requerido para una
implementación de la KVM, incluyendo la maquina virtual, librerías Java y una
gran cantidad de espacio para ejecutar aplicaciones Java. Una
implementación más típica requiere un total de memoria de 256 kB, del cual la
mitad es usado como espacio para aplicaciones, de 40 a 80 kB es necesario
para la maquina virtual, y el resto es reservado para librerías.
29
El rol de la KVM en los dispositivos objetivos puede variar significativamente.
En algunas implementaciones, la KVM es usada en la parte superior de un
software existente dando al dispositivo la capacidad de descargar y ejecutar
contenido Java dinámico, interactivo y seguro en el dispositivo. En otras
implementaciones, la KVM es usada en un nivel más bajo para implementar el
software y aplicaciones de los dispositivos en el lenguaje de programación
Java. “[1].
El hecho de no contar con todas las capacidades de memoria, posee algunas
limitaciones con respecto a la clásica Maquina Virtual Java (JVM):
1. No hay soporte para la JNI (Interfaz Nativa de Java) debido a los
recursos limitados de memoria.
2. No existen cargadores de clases (class loaders) definidos por el
usuario. Existen únicamente los predefinidos.
3. No se realiza la implementación del método Object.finalize(), el cual
permite la finalización de instancias de clases.
4. Es necesario el uso de objetos de tipo Colección que permitan
agrupar varios hilos y almacenar cada uno en el ámbito de la
aplicación.
5. La capacidad en el manejo de excepciones es limitada, ya que este
tipo de eventos son manejados de forma independiente por las APIs
propias del dispositivo.
6. No se manejan las referencias débiles, no se apunta a objetos que
puedan ser adquiridos por el recolector de basura.
Debido a que el verificador de clases de J2SE es muy pesado para la
verificación de clases en J2ME. La implementación del verificador de clases
en KVM requiere de al menos 10 kB de código binario y menos de 100 bytes
de RAM dinámica en tiempo de ejecución para clases típicas. El verificador
30
realiza solamente un escaneo lineal del código intermedio, sin la necesidad de
un algoritmo de flujo de datos iterativo costoso. Así el nuevo verificador de
clases opera en dos fases como se ilustra en la Figura 3.
En la fase número 1, las clases tienen que ser ejecutadas a través de una
herramienta de pre-verificación para poder remover ciertos códigos
intermedios y aumente las clases con atributos adicionales StackMap
aumentando la velocidad de verificación en tiempo de ejecución. La fase de
preverificación es realizada típicamente en una estación de trabajo que el
desarrollador usa para escribir y compilar aplicaciones.
Figura 3. Pre-verificación de clases en J2ME.
En la fase número 2, el componente verificador en tiempo de ejecución de la
maquina virtual usa los atributos adicionales StackMap generados por el pre-
Fase No. 2 Fase No. 1
KVM
Descarga
Aplicación.class
Aplicación.class
Estación de Trabajo Dispositivo Cliente
Aplicación.java
javac
Pre-verificador
Verificador
Interprete
31
verificador para realizar la preverificación de la clase actual de forma eficiente.
A través de estas fases se realizan las siguientes comprobaciones:
Observar que el código no sobrepase los límites de la pila de la
Maquina Virtual.
Comprobar que no se utilizan variables locales antes de ser
inicializadas.
Comprobar que se respetan los campos, métodos y los
modificadores de control de acceso a clases.
CVM (Compact Virtual Machine)
Máquina Virtual para la configuración CDC. Orientado a dispositivos
electrónicos con procesadores de 32 bits de gama alta y alrededor de 2
Mb ó más de memoria RAM, con conexiones de red de forma
intermitente o permanente a través de TCP/IP. Sus principales
características son:
2. Sistema de memoria avanzado
3. Tiempo de espera bajo para el recolector de basura
4. Separación de la funcionalidad de la Máquina Virtual del sistema de
memoria.
5. Consta de un Recolector de Basura modularizado.
6. Portabilidad.
7. Sincronización rápida.
8. Ejecución de clases a través de la implementación de la memoria
de solo lectura ROM.
9. Soporte nativo de hilos.
10. Las clases tienen baja ocupación de la memoria.
11. Tiene soporte para interfaces y servicios en Sistemas Operativos de
Tiempo Real.
12. Conversión de hilos Java a hilos nativos.
13. Soporte para JNI, referencias débiles, RMI (Invocación de Métodos
32
Remotos), Interfaz de Depuración de la Máquina Virtual (JVMDI).
14. Serialización de Objetos.
15. Cargadores de clases definidos por el usuario.
1.4.2. Configuraciones.
En el entorno J2ME las configuraciones se refieren al conjunto de APIs que
permiten el desarrollo de aplicaciones para un grupo de dispositivos. La
configuración maneja características básicas, comunes a un grupo de
dispositivos o mercado objetivo en cuanto a asignación de memoria y otras
capacidades de hardware se refiere. El perfil hace uso o “hereda” una
configuración particular. Las configuraciones no permiten la definición de
características adicionales ya que este tipo de características son manejadas
por los perfiles.
Entre las características soportadas por las configuraciones, se especifica:
Soporte para características del lenguaje de programación Java.
Soporte para características de la Máquina Virtual.
Soporte para las librerías Java y APIs.
Las configuraciones en el momento de definir el entorno software para un
conjunto de dispositivos relacionados entre sí por un conjunto de
características, tiene en cuenta cosas como:
El tipo y cantidad de memoria disponible para ejecución de
aplicaciones.
El tipo de procesador y velocidad.
La forma en la que se conecta el dispositivo a la red.
Actualmente están disponibles dos configuraciones en J2ME:
33
Configuración de Dispositivos con Conexión (CDC)
Esta configuración está diseñada para dispositivos con ciertas
capacidades computacionales y de memoria soportando un entorno
más completo para la Maquina Virtual Java con características
similares a las de J2SE, con limitaciones en el ambiente gráfico y
memoria del dispositivo. La Máquina Virtual adaptada a esta
configuración es la CVM. Esta configuración se enfoca en dispositivos
con las siguientes características:
Memoria volátil de al menos 2 Mb ó más, incluyendo RAM Y
ROM.
Procesador de 32 bits.
Conexión a algún tipo de red.
Manejo de la funcionalidad completa de la Maquina Virtual de
Java 2.
Estos rasgos pueden ser encontrados en dispositivos como
decodificadores de televisión digital, televisores con internet y sistemas
de navegación de automóviles. La configuración cuenta con la
siguiente lista de clases de la Edición Estándar de la Plataforma Java 2,
J2SE. Incluye soporte para protocolos como HTTP y el manejo de
datagramas. La Tabla 1 muestra las librerías incorporadas en CDC.
Configuración de Dispositivos Limitados con Conexión (CLDC)
Esta configuración es apropiada para dispositivos provistos con
conexión pero con limitaciones en cuanto a capacidad gráfica, de
cómputo y memoria. Es el bloque básico en donde se soportan los
perfiles de la gran mayoría de dispositivos que se apoyan en J2ME
como plataforma de desarrollo.
La gran mayoría de estas restricciones esta dada debido al uso que se
hace de la KVM, necesaria al trabajar con CLDC.
34
Tabla 1. Librerías de Configuración CDC.
Los dispositivos que hacen uso de esta configuración (en la versión
1.1) deben cumplir con las siguientes características:
1. al menos 192 kB de memoria total disponible para la
plataforma Java,
2. un procesador de 16 ó 32 bits,
3. bajo poder de consumo, a menudo operan con suministro de
energía limitado, a través de baterías,
4. conectividad a algún tipo de red, por lo general inalámbrica,
con conexión intermitente y con ancho de banda limitado.
Entre los requerimientos de hardware especificados para CLDC se
encuentran:
Paquete Descripción
java.io Clases e interfaces de Entrada y Salida.
java.lang Clases básicas del lenguaje.
java.lang.ref Clases para referencias.
java.lang.reflect Clases e interfaces de reflexión.
java.math Paquete para operaciones matemáticas.
java.net Clases e interfaces de red.
java.security Clases e interfaces de seguridad
java.security.cert Clases para el manejo de certificados de seguridad.
java.text Paquete para texto.
java.util Clases de utilidades estándar.
java.util.jar Clases y utilidades para el manejo de archivos JAR.
java.util.zip Clases y utilidades para el manejo de archivos ZIP y comprimidos.
javax.microedition.io Clases e interfaces de conexión genérica para CDC.
35
al menos 160 kilobytes de memoria no volátil disponible para la
maquina virtual y las librerías CLDC.
Al menos 32 kilobytes de memoria volátil disponible para la
ejecución de la maquina virtual.
“La CLDC aporta las siguientes funcionalidades a los dispositivos:
Un subconjunto del lenguaje Java y todas las restricciones de
su Máquina Virtual (KVM).
Un subconjunto de las bibliotecas Java del núcleo.
Soporte para E/S básica.
Soporte para acceso a redes.
Seguridad“[2].
Entre los dispositivos que soportan esta configuración se encuentran
los teléfonos celulares, Asistentes Digitales Personales (PDAs),
organizadores, decodificadores de televisión digital, y terminales de
venta.
A continuación se muestra en la Tabla 2 las librerías utilizadas por la
configuración CLDC.
Paquetes Descripción
java.io Subconjunto de J2SE para manejo de E/S.
java.lang Clases e interfaces de la Máquina Virtual.
java.util Utilidades estandar.
javax.microedition.io Clases de conexión generica para CLDC.
Tabla 2. Librerías de Configuración CLDC.
De acuerdo a la tabla anterior, la Configuración CLDC las siguientes
áreas:
Lenguaje Java y características de la máquina virtual.
36
Librerías del Núcleo Java (java.lang.*, java.util.*).
Entrada/Salida (java.io.*).
Seguridad.
Interconexión.
Internacionalización (tipo de codificación de caracteres).
Las demás características adicionales referentes al manejo del ciclo de
vida de una aplicación en un dispositivo móvil, interfaz de usuario,
manejo de eventos, etc., son administradas por perfiles implementados
en la parte superior de CLDC.
1.4.3. Perfiles.
Los perfiles definen de forma personalizada mediante APIs el manejo del ciclo
de vida de la aplicación, interfaz de usuario, etc., extendiendo de esta manera
la configuración a través de la adición de clases, para un tipo especifico de
dispositivo, un ámbito de aplicación determinado o un segmento del mercado,
permitiendo identificar un grupo de dispositivos a través de la funcionalidad
que ofrecen y el tipo de aplicaciones que se ejecutan en ellos. Los perfiles
surgen debido a la necesidad de soportar los diferentes requerimientos
demandados por los consumidores de dispositivos.
Básicamente se considera importante el uso de librerías de interfaz gráfica
para la definición de un perfil. Por lo tanto el perfil define rasgos propios de un
dispositivo mientras que la configuración hace lo mismo con un conjunto de
ellos. Así que a la hora de construir una aplicación se tenga a disposición
tanto las APIs del perfil como de la configuración. Además un perfil esta
constituido bajo las bases de una configuración dotando a esta ultima de
funcionalidades específicas. Se puede observar entonces las características
del entorno de ejecución de J2ME, el cual se estructura en capas, observada
en la Figura 4.
37
Figura 4. Entorno de ejecución para J2ME.
Los perfiles al igual que la maquina virtual están predeterminados por la
configuración que se pretende usar en el desarrollo de una aplicación J2ME.
Para la configuración CDC se tienen los siguientes perfiles:
Foundation Profile: orientada a dispositivos móviles que no tienen
interfaz gráfica, como por ejemplo, decodificadores de televisión digital.
Funciona como base para otros perfiles definidos para CDC. Excluye
paquetes que hacen parte de la interfaz gráfica de J2SE, de tal manera
que para poder implementar interfaz de usuario en forma gráfica sería
necesario la implementación de otro perfil adicional. Las librerías
usadas por el Foundation Profile se muestran en la Tabla 3.
Paquetes Descripción
java.io Clases de Lectura y Escritura de J2SE.
java.lang Soporte del lenguaje Java.
java.util Soporte para zip y otras funcionalidades (Timer).
Sistema Operativo
Dispositivos Hardware
CVM KVM
CLDC
PDA Profile
MID Profile
Aplicación
CDC
Foundation Profile
RMI Profile Personal Profile
38
java.net Inclusión de sockets para TCP/IP y conexiones vía HTTP.
java.text Soporte para Internacionalización.
java.security Manejo de códigos y certificados.
Tabla 3. Librerías del Foundation Profile.
Personal Profile: extiende al Foundation Profile proporcionando
soporte completo para gráficos AWT, permitiendo el manejo de applets
y con capacidades web. Este perfil redefine a PersonalJava como un
perfil J2ME. Las librerías utilizadas por este perfil se muestran en la
Tabla 4.
Paquetes Descripción
java.applet Sirve para creación de applets.
java.awt Clase para crear Interfaces de Usuario con Manejo de Eventos.
java.awt.datatransfer Clases e interfaces que permiten la transmisión de datos entre aplicaciones.
java.awt.event Clases e interfaces de manejo de eventos.
java.beans Soporte de JavaBeans.
javax.microedition.xlet Interfaces de comunicación del Personal Profile.
Tabla 4. Librerías del Personal Profile.
RMI Profile: requiere de la implementación del Foundation Profile.
Soporta un subconjunto de las APIs RMI (Invocación de Métodos
Remotos) de J2SE. Ha sido necesaria la eliminación de ciertos rasgos
del perfil RMI debido a las limitaciones propias de los dispositivos
manejados bajo la configuración CDC. Estas características son:
java.rmi.server.disableHTTP.
39
java.rmi.activation.port.
java.rmi.loader.packagePrefix.
java.rmi.registry.packagePrefix.
java.rmi.server.packagePrefix.
Para la configuración CLDC los perfiles más importantes son:
PDA Profile: construido sobre CLDC y abarca PDAs (Asistentes
Digitales Personales) de baja gama, con pantalla cuya resolución oscile
entre los 20000 pixeles y puntero.
Mobile Information Device Profile (MIDP Perfil de Información de
Dispositivo Móvil): al igual que el perfil PDA este también esta
construido sobre CLDC y es el perfil central de esta configuración. Fue
la primera configuración establecida para la plataforma J2ME. Este
perfil maneja las siguientes características:
Capacidad computacional, gráfica y de memoria reducida.
Ciclo de vida de la aplicación (definición de la semántica de una
aplicación MIDP y como se controla).
Almacenamiento persistente.
Conexión limitada.
Entrada de datos alfanumérica.
Transacciones punto a punto seguras (HTTPS).
Temporizadores.
Entre los requerimientos de hardware se puede encontrar:
Tamaño de pantalla: 96 x 54 pixeles con factor 1:1.
Uno o varios de los siguientes mecanismos de entradas: teclado
o pantalla táctil.
256 kilobytes de memoria no volátil para la implementación de
MIDP.
40
8 kilobytes de memoria no volátil para creación de aplicaciones
con datos persistentes.
128 kilobytes de memoria volátil para el entorno de ejecución de
Java.
Dos formas posibles de interconexión: de forma inalámbrica,
posiblemente intermitente ó con ancho de banda limitado.
Capacidad para reproducir tonos, a través de un hardware o
software.
Los requerimientos de software son los siguientes:
Un sistema operativo pequeño que administre el hardware de
las capas inferiores (que permita el manejo de excepciones e
interrupciones).
Un mecanismo que permita leer y escribir de la memoria no
volátil para soportar los requerimientos de las APIs del Record
Management Storage (RMS Manejo de Almacenamiento de
Registros) que manejan almacenamiento persistente.
Soporte para APIs que manejen Interconexión de redes
Inalámbricas.
Un mecanismo para la captura de entradas desde el usuario a
través de cualquier componente de entrada referido en los
requerimientos de hardware.
Mecanismo para el manejo del ciclo de vida de la aplicación en
el dispositivo.
Los paquetes que utiliza el perfil MIDP se pueden observar en la Tabla 5.
41
Tabla 5. Librerías del perfil MIDP.
Las aplicaciones que se realizan utilizando MIDP y la configuración CLDC
llevan el nombre de MIDlets.
1.4.4 Paquetes Opcionales
Además de las características que traen incorporadas los perfiles y
configuraciones, existe la necesidad de adicionar librerías de uso general
que no están limitadas a una categoría o familia de dispositivos. Los
paquetes opcionales J2ME son un conjunto de APIs estándar, que pueden
ser usada para extender un perfil y hacer uso tanto de tecnologías existentes
como emergentes.
Estos paquetes opcionales especifican funcionalidad independiente de
cualquier perfil, jugando un papel importante en la evolución de los mismos.
El desarrollo de estos paquetes opcionales permite que las APIs maduren y
sean creadas nuevas versiones a través de la Comunidad de Procesos de
Java (JCP), para luego ser incorporadas en un perfil.
A continuación se muestra en forma detallada algunos de los paquetes
Paquetes Descripción
javax.microedition.lcdui Clases e Interfaces para Interfaces de Usuario.
javax.microedition.rms Administración del almacenamiento persistente en el dispositivo.
javax.microedition.midlet Clases para la definición de la aplicación.
javax.microedition.io Manejo de conexión genérica.
java.io Clases e interfaces de Entrada y Salida.
java.lang Clases e interfaces de la Máquina Virtual.
java.util Clases e interfaces de utilidades estándar.
42
opcionales más usados:
API de Mensajería Inalámbrica (WMA, Wireless Messaging API)
JSR 120: define un conjunto de APIs que proporcionan acceso
independiente de la plataforma a través de recursos de
comunicación inalambricos, como el Servicio de Mensajería Corta
(SMS, Short Message Service). En la versión WMA 1.1 se incluyen
arquitecturas que permiten el manejo de seguridad en la
comunicación a través del perfil MIDP en su versión 2.0. Puede ser
implementado en CLDC y CDC.
API de Contenido Multimedia Móvil (MMAPI, Mobile Media API)
JSR 135: proporciona control de recursos multimedia (audio y
video), archivos y gran variedad de tipos de datos multimedia
basados en tiempo, a dispositivos con recursos limitados. Al igual
que WMA este paquete puede ser incorporado en aplicaciones
desarrolladas para las configuraciones CLDC y CDC.
Especificación de Servicios Web en J2ME (WSA, Web Services
API) JSR 172: extiende el concepto de Servicios Web permitiendo
que los dispositivos J2ME puedan ser consumidores de servicios
Web a través de modelos de programación provenientes de la
plataforma estándar de servicios Web. La infraestructura de esta
API permite:
proporcionar capacidades para el procesamiento de archivos
XML,
reusar el concepto de servicios Web en el momento de
diseñar servicios empresariales para clientes J2ME,
suministrar APIs y convenciones para el desarrollo de
clientes J2ME de servicios empresariales,
43
posibilitar la interacción entre los clientes J2ME con los
servicios Web de forma interoperable,
manejar un modelo de programación para la comunicación
entre el cliente J2ME y los servicios Web.
Implementado exclusivamente en CLDC.
API para Servicios de Seguridad y Certificación en J2ME JSR
177: este paquete opcional extiende las características de
seguridad para la plataforma J2ME a través del uso de APIs que
proporcionen servicios de seguridad, con el fin de que sean
suministrados mecanismos eficientes que soporten una amplia
variedad de aplicaciones basadas en servicios, entre los que se
encuentra, el acceso a redes corporativas, comercio electrónico,
etc. Estas APIs de seguridad manejaran aspectos como el cifrado,
firmas digitales, y gestión de credenciales de usuario, entre otros.
También permiten definir un modelo de acceso que ayuda a las
aplicaciones existentes en el dispositivo a comunicarse con una
tarjeta inteligente insertada en el dispositivo, definiendo a través de
mecanismos flexibles la definición de operaciones seguras entre los
proveedores de servicios y el dispositivo. Usado para la
configuración CLDC.
API de Localización para J2ME JSR 179: especifica que permiten
el desarrollo de aplicaciones basadas en localización para
dispositivos J2ME. Su propósito es proporcionar una API que
genere información acerca de la ubicación geográfica y orientación
del dispositivo para las aplicaciones Java. Permite el acceso a
bases de datos con mapas almacenados en el terminal móvil.
Define interfaces estándar para trabajar con metodologías de
posicionamiento como GPS. Utilizado por CLDC y CDC.
44
Protocolo de Iniciación de Sesión para J2ME (SIP, Session
Initiation Protocol) JSR 180: la configuración que lo utiliza es
CLDC. Permite el establecimiento y gestión de sesiones IP
multimedia. Este mismo mecanismo puede ser ampliado para el
soporte de mensajería multimedia y servicios de juego.
API para Gráficas Móviles en 3D para J2ME JSR 184: usado bajo
CLDC, permite la generación de gráficos tridimensionales a
frecuencias de imagen interactiva en dispositivos con recursos
limitados. También se incluye la gestión de escenas 3D,
animaciones, mensajes animados, salvapantallas, etc.
API para Bluetooth JSR 82: paquete usado en CLDC y MIDP.
Proporciona mecanismos estándar para la creación de aplicaciones
Bluetooth de modo que puedan ser ejecutadas a través de esta
tecnología.
API para Invocación de Métodos Remotos (RMI) JSR 66: puede
ser implementado en dispositivos con la configuración CDC y
CLDC. Permite a dispositivos consumidores interactuar con
aplicaciones distribuidas.
Paquete Opcional JDBC para CDC/Foundation Profile JSR 169:
se puede utilizar en CDC y es un subconjunto de JDBC, que sirve
para el procesamiento de datos de repositorio, que por lo general
son bases de datos relacionales a través de SQL. Además permite
la manipulación de datos tabulares como si fueran JavaBeans.
45
II. SERVICIOS WEB.
2.1. INTRODUCCIÓN.
La Arquitectura Orientada a Servicios (SOA) ha permitido habilitar el entorno
distribuido para que la gran mayoría de las aplicaciones basadas en componentes
puedan operar entre sí, brindando heterogeneidad al famoso mundo de las
aplicaciones distribuidas. Esta arquitectura da una visión de que “el software debe
ser entregado como un servicio” [3], orientando al mercado del software hacia un
entorno más competitivo con soporte para los negocios. Esto a su vez permite de
forma dinámica la creación e implantación de nuevos servicios basados en los
servicios ya existentes.
Es de resaltar el gran soporte que dan los diferentes protocolos y tecnologías de la
Web a SOA. Los servicios definen de manera explícita el modo de funcionamiento y
sus requisitos funcionales y no funcionales a través del uso de formatos definidos y
convenidos por los protocolos que soportan a SOA, permitiendo de esta manera el
descubrimiento, registro y selección automática de servicios. Se puede observar la
implementación de SOA en aplicaciones como los Servicios Web, ya que ellos
definen una aplicación identificada a través de un Identificador de Recursos
Uniformes (URI) basado en estándares de Internet que definen su descripción y
método de transporte.
2.2. GENERALIDADES DE LOS SERVICIOS WEB.
2.2.1. Definición.
Los servicios Web según una definición de la W3C son “una aplicación
software identificada por una URI, cuyas interfaces y vinculaciones son
capaces de ser definidas, descritas y descubiertas como artefactos XML. Un
Servicio Web soporta la interacción con otros agentes software mediante el
intercambio de mensajes basado en XML a través de protocolos basados en
46
Internet” [3].
De una forma más general se puede decir que “los servicios Web son
aplicaciones modulares que se pueden describir, publicar, localizar e invocar
a través de la Web” [3]. Un servicio Web designa operaciones, a través de
las cuales se pueden realizar cualquier tipo de solicitud simple para cualquier
proceso de negocio. Una vez el servicio Web es desplegado, otras
aplicaciones u otros servicios Web pueden descubrir e invocar el servicio
Web desplegado.
Los Servicios Web también pueden ser considerados como una pieza
fundamental que describe la lógica del negocio, ubicado en algún lugar de
Internet, accesible a través de protocolos basados de Internet como HTTP.
Uno de los objetivos primordiales de los Servicios Web es el de “automatizar
procesos que de lo contrario sería llevado en forma manual” [3].
2.2.2. Características.
Una de las características más importantes de los servicios Web es que no
está ligado a una tecnología específica, se ejecuta en cualquier plataforma
dejando ver de lado su interoperabilidad. Entre las características más
resaltantes de este tipo de aplicación basada en la Arquitectura SOA se
tienen:
Basados en XML: el Lenguaje de Marcado Extensible (XML)
edifica la representación estándar de datos para todos los
protocolos y tecnologías que implementan Servicios Web.
Acoplamiento débil: el cliente no está atado al Servicio Web de
forma directa, es decir, el carácter de flexibilidad que ofrece el
entorno de ejecución del Servicio Web implica que cualquier
cambio que tenga este último no compromete de manera alguna
la capacidad de interacción del cliente con el Servicio Web.
Granularidad: la tecnología de Servicios Web deja entrever la
47
individualidad con la que son manejados los métodos que
implementa el servicio. Estos métodos en su forma individual
proporcionan capacidades para ser usados en un nivel
corporativo.
Capacidad de ser implementados de forma síncrona o
asíncrona: de forma síncrona se observa el enlace directo del
cliente con la ejecución del servicio. El cliente espera que el
servicio complete la operación para luego continuar. En la forma
asíncrona el cliente está en la capacidad de ejecutar una
operación e invocar un servicio de forma simultánea. La forma
asíncrona le da el carácter de acoplamiento débil a los Servicios
Web.
Soporte para Llamado de Procedimientos Remotos (RPC):
los Servicios Web están en capacidad de permitir a los clientes
la invocación de procedimientos, funciones y métodos en
lugares remotos a través de XML. Esto se logra a través de la
implementación de componentes distribuidos como los EJBs
(Enterprise JavaBeans).
Soporte para el intercambio de documentos: XML
proporciona una forma de representación de documentación
compleja, a través de diferentes protocolos.
Auto-contenidos: particularmente en el lado del cliente no se
necesita ningún software adicional, solamente basta con recurrir
a soporte para XML y HTTP. En el lado del servidor es
necesario únicamente un servidor que soporte el manejo de
mensajes SOAP y protocolos como HTTP.
Pueden ser publicados, localizados e invocados a través de
la Web: esto se hace con el uso de estándares ligeros como
HTTP, SOAP, WSDL y UDDI.
Modulares: varios Servicios Web pueden ser integrados usando
48
técnicas de Flujo de Trabajo (Workflow). Esto permite la
realización de una cadena de Servicios Web que permitan la
ejecución de funciones de negocio de alto nivel.
Independientes de lenguaje e interoperables: tanto las
aplicaciones del cliente y servidor para el uso y la ejecución de
Servicios Web pueden ser implementadas en diferentes
entornos. Básicamente cualquier lenguaje de programación
puede ser usado para implementar Servicios Web.
Dinámicos: el dinamismo de este tipo de aplicaciones depende
en gran parte de la descripción y descubrimiento automático
con el uso de UDDI y WSDL.
2.3. COMPONENTES DE SERVICIOS WEB.
La implementación de servicios Web se rige bajo una serie de criterios e interfaces
con el fin de que pueda ser accedido por cualquier sistema conectado a la red, al
tener permiso para tal fin. Existen unas partes bien diferenciadas que se han de
tener en cuenta al momento de implementar y usar un Servicio Web, ya que definen
las interacciones que se pueden manejar en el entorno de ejecución de los Servicios
Web. Estos componentes son:
2.3.1. Agentes y Servicios.
El agente puede ser visto como un trozo de software que implementa la
funcionalidad que realiza el Servicio Web. Este agente se caracteriza por
tener la capacidad de enviar y recibir peticiones desde y hacia el Servicio
Web. Este agente puede ser descrito en cualquier lenguaje de
programación ejecutándose sobre una plataforma concreta.
2.3.2. Cliente y Proveedor.
La entidad proveedora es la persona u organización encargada que
49
desarrolla un agente bajo el cual se soporta el servicio. El cliente es la
persona u organización que desea hacer uso del servicio expuesto por el
proveedor a través de consultas. La interacción entre cliente y proveedor se
hace a través de comunicación tipo petición-respuesta entre agentes,
quienes son los delegados de cada una de las partes implicadas (tanto
cliente como proveedor).
2.3.3. Descripción del Servicio.
Es un componente importante en el momento de guiar el intercambio de
mensajes entre entidades. Esta descripción del servicio permite que este
tipo de transacciones lleguen a feliz término a través del uso del protocolo
WSD (Descripción de Servicios Web) y escrito en un lenguaje denominado
WSDL (Lenguaje de Descripción de Servicios Web). En este formato se
incluyen todos los elementos que pueden ser descritos, tales como, el tipo
de datos, formato de mensajes, protocolos de transporte, rutas de
localización del servicio.
2.3.4. Semánticas.
La semántica define el comportamiento que va tener el Servicio Web al
enviarle un mensaje de petición, estableciendo también las relaciones que
este establece en su contexto de ejecución con otros objetos.
2.4. TECNOLOGÍAS ESTÁNDAR PARA SERVICIOS WEB.
El núcleo de las especificaciones y los protocolos del nivel de aplicación definidos
para los Servicios Web está promovido por la Organización para la Interoperabilidad
de Servicios Web (WS-I) y administrado por el Consorcio de la World Wide Web
(W3C) y la Organización para el Avance de Estándares de Información Estructurada
(OASIS).
50
Debido a lo joven que es la tecnología de los Servicios Web, subyacen un conjunto
de estándares que permiten dar confiabilidad, refiriendo todo lo relacionado con el
modo de operación, descripción, localización y envío y recepción de mensajes de los
Servicios Web.
Las siguientes son las tecnologías que conforman el núcleo a través del cual se
pueden implementar y ejecutar Servicios Web:
XML: el Lenguaje de Marcado Extensible (XML) es la base para
muchas de los estándares especificados para los Servicios Web. Se
caracteriza por ser un lenguaje genérico que sirve para describir
cualquier tipo de contenido de forma estructurada.
SOAP: el Protocolo de Acceso a Objetos Simple (SOAP) es un
protocolo ligero que permite el empaquetamiento y posterior transporte
de mensajes con formato XML. Se encarga del intercambio de
información y documentos en un entorno distribuido sobre diferentes
tecnologías estándar de Internet incluyendo SMTP, HTTP y FTP.
También establece mecanismos básicos de comunicación entre el
cliente y los Servicios Web. Al igual que XML es independiente de la
plataforma y la forma en que sea implementado.
WSDL: el Lenguaje de Descripción de Servicios Web (WSDL) es un
esquema basado en XML que sirve para describir un servicio. WSDL
estandariza la forma en como un Servicio Web representa la entrada y
salida de datos a partir de una invocación externa del Servicio Web,
especifica las operaciones que ofrece un Servicio Web y la estructura
de las mismas. También describe a los servicios como un conjunto de
nodos o puertos. Estos nodos o puertos asocian direcciones de red y
la colección o unión de los mismos definen el servicio.
UDDI: el estándar para el Descubrimiento, Descripción e Integración
Universal (UDDI) proporciona mecanismos para la publicación y el
descubrimiento de información de los Servicios Web, describiendo
también el tipo de operaciones que estos ofrecen. UDDI como
51
estándar industrial nace bajo la necesidad de crear plataformas
independientes que permitieran a las organizaciones integrar,
descubrir, describir y categorizar los negocios. A través de mensajes
SOAP, otras personas, empresas u organizaciones pueden hacer el
descubrimiento de los Servicios Web registrados.
2.5. ESCENARIO DE SERVICIOS WEB.
El escenario de interacción se maneja a través del uso de las tecnologías
anteriormente nombradas de la siguiente forma:
Una vez montada la aplicación del Servicio Web, éste es registrado a
través de un repositorio como lo es UDDI. Este registro permite
categorizar, identificar o especificar el Servicio Web y además da la
ubicación del archivo WSDL en donde se describe el servicio.
Otro servicio o usuario representado a través de una aplicación
localiza el servicio registrado y lo solicita a través de una búsqueda en
el registro UDDI. La búsqueda se hace por nombre, categoría,
identificador o especificación soportada. Allí se encuentra el WSDL, el
cual contiene información acerca de cómo invocar el Servicio Web y
formatos de cómo hacer solicitudes al servicio especificados en un
esquema XML.
Este cliente invoca al servicio a través de la creación de una aplicación
haciendo uso de mensajes SOAP basándose en el esquema definido
en el WSDL del registro. La solicitud es enviada a la dirección donde
se encuentra el Servicio Web.
Esta solicitud llega en formato XML al Servicio Web.
El Servicio Web procesa la solicitud.
Este procesamiento se hace a través del llamado a componentes (por
ejemplo EJBs) los cuales encapsulan la lógica de negocio u
operaciones que administra el servicio.
52
Los componentes procesan la información y devuelven los resultados
al servicio.
El Servicio Web crea y almacena el valor de retorno en un archivo con
formato XML, enviándolo sobre un mensaje de respuesta al cliente.
En la Figura 5 se resume el proceso descrito anteriormente.
Figura 5. Escenario de Servicios Web.
Registro UDDI
Cliente
Servicio
WSDL
Procesador
SOAP
Red
Registro y
Publicación
Red
Servidor HTTP
Descubrimiento del Servicio
Mensajes SOAP de solicitud y respuesta
Red
53
III. ESPECIFICACIÓN DE SERVICIOS WEB EN J2ME.
3.1. INTRODUCCIÓN.
J2ME al igual que la Edición Empresarial de Java 2 (J2EE) tiene capacidades para el
soporte de Servicios Web y análisis de datos XML a través de la adaptación de APIs
implementadas en J2EE, pero no con todas las funcionalidades debido a las
características restrictivas que impone J2ME. La especificación que maneja el
soporte de Servicios Web es la JSR-172 a través de dos APIs o paquetes opcionales
que permiten el manejo del flujo de datos XML y la comunicación con el Servicio
Web. El objetivo de esta descripción de Servicios Web es la interoperabilidad para
un marco general que pretende estandarizar el desarrollo de entornos empresariales
en J2ME.
3.2. GENERALIDADES.
La especificación JSR-172 lanzada el 3 de Marzo de 2004, “esta diseñada para
trabajar con perfiles J2ME basados en cada una de las configuraciones CDC v1.1 y
CLDC v1.1” [4]. JSR-172 también establece como un dispositivo móvil que soporte
J2ME puede ser cliente de Servicios Web. Aún en la actualidad, no se definen a los
dispositivos móviles como proveedores de Servicios Web. Básicamente se ha
definido el estándar de Servicios Web en J2ME con el fin de proporcionar una
infraestructura que:
adicione habilidades básicas para el procesamiento de documentos en
formato XML
“permita el rehúso de conceptos de servicio cuando se están
diseñando clientes J2ME en aplicaciones empresariales” [5]
permita la interoperabilidad de los clientes J2ME con Servicios Web
proporcione un modelo de programación para la comunicación de
clientes J2ME con Servicios Web.
54
JSR-172 tiene los siguientes requerimientos:
Tamaño de 35 KB de memoria usado por el dispositivo objetivo para
una completa implementación de la Especificación.
Soporte para mensajes SOAP en su versión 1.1 y de forma literal.
No soporta mensajes SOAP 1.1 codificados.
Soporte para el Perfil Básico WS-I (Perfil Básico para la
Interoperabilidad de Servicios Web).
Soporte para WSDL en su versión 1.1.
No soporta UDDI.
No existe soporte para la funcionalidad del Servicio Web del lado del
servidor.
La seguridad es proporcionada por la plataforma J2ME.
3.3. JSR 172: PAQUETES OPCIONALES.
Dos paquetes opcionales definen la Especificación de Servicios Web establecida a
través de JSR 172. Estos paquetes son:
API Java para el Procesamiento de XML (JAXP) v1.2 (JSR 063).
API Java para Llamado de Procedimientos Remotos basado en XML
(JAX-RPC) v1.1 (JSR 101).
Las APIs que tienen el carácter de opcionales e independientes, son el resultado de
la especificación de Servicios Web en J2ME y sus objetivos son:
Soportar el análisis de documentos XML en la plataforma J2ME. El
hecho de que los Servicios Web sean aplicaciones empresariales
define de forma inmediata que el formato de los datos manejados en la
interacción entre los Servicios Web y el dispositivo móvil cliente está
basado en XML. Este aspecto estará definido por el API JAXP.
Facilitar el acceso a Servicios Web basados en XML. Este acceso
55
estará determinado por el API JAX-RPC, permitiendo el acceso de los
dispositivos móviles a Servicios Web remotos.
“Tanto JAXP como JAX-RPC cumplirán con los requerimientos de tamaño y
desempeño de la plataforma J2ME de tal forma que puedan ser implementados con
la memoria en tiempo de ejecución y procesar los requerimientos para los
dispositivos móviles” [6].
3.3.1. API JAXP.
El propósito de este paquete opcional es dar soporte de verificación y
análisis de XML a la plataforma J2ME. Esta API está basada en la API JAXP
v1.2 del estándar J2SE. El API JAXP para J2ME ha sido reducido en
tamaño con respecto al API JAXP de J2SE con el fin de ser adecuado a las
limitaciones de la plataforma J2ME y poder ejecutar aplicaciones en el
entorno de memoria reducida que ofrece.
3.3.1.1. Requerimientos de Plataforma.
Necesita 25 KB de memoria para el soporte y ejecución de las clases
que soportan el API.
3.3.1.2. Requerimientos del API.
“No existe soporte para el Modelo de Objetos para Documentos
(DOM), debido a lo pesado en términos del tamaño de
implementación” [6].
Soporta el espacio de nombres estándar de XML del W3C y
parte del API Simple para XML (SAX) v2.0.
3.3.1.3. Paquetes del API JAXP.
Los siguientes tres paquetes especifican la funcionalidad del API JAXP:
javax.xml.parsers: “contiene las clases para obtener y
56
referenciar una implementación del analizador de una
plataforma dada” [7].
Esta conformado por las siguientes cuatro clases:
SAXParser: permite la implementación de un analizador XML
SAX.
SAXParserFactory: fabrica para la creación de instancias
para un analizador SAX.
FactoryConfigurationError: excepción para indicar un error
de configuración al invocar la clase SAXParserFactory.
ParserConfigurationError: excepción lanzada que informa
sobre errores de configuración al invocar la clase SAXParser.
org.xml.sax: compuesto por un subconjunto de clases e
interfaces del API SAX 2.0 encontrada en J2SE. Las interfaces
incluidas en este paquete son:
Attributes: maneja la lista de atributos XML.
Locator: permite la asociación de un evento SAX con una
ubicación del documento.
El paquete también incluye cinco clases:
InputSource: provee recursos de entrada simple para una
entidad XML.
SAXException: error o advertencia de SAX.
SAXNotRecognizedException: excepción lanzada para un
identificador no reconocido.
SAXNotSupportedException: clase que maneja
excepciones para la identificación de una operación
soportada.
SAXParseException: error o advertencia del analizador
57
XML.
org.xml.sax.helpers: contiene una clase denominada
DefaultHandler que permite la captura de eventos realizados
por el analizador SAX 2.0.
3.3.1.4. Implementación de JAXP.
El analizador que maneja JAXP esta diseñado para analizar un
documento XML como flujo de entrada para lo cual es necesario lo
siguiente:
Instanciación del objeto manejador de eventos DefaultHandler.
Creación de una instancia de SAXParserFactory.
Uso de la instancia de SAXParserFactory para crear una
instancia del analizador JAXP.
Dar la referencia del archivo XML de entrada a la instancia del
analizador.
“Usar los métodos de la clase DefaultHandler para la
manipulación del archivo XML de entrada” [7].
3.3.2. API JAX-RPC.
JAX-RPC implementa la tecnología de Llamado a Procedimientos Remotos
(RPC) que hace parte de la plataforma J2EE. Permite la creación de
clientes de Servicios Web para el intercambio de datos con el servicio, esta
interacción está basada en mensajes SOAP. El desarrollo con JAX-RPC
solicita la ejecución de operaciones remotas de servicios que se ejecutan en
maquinas remotas de tal forma que pueden ser invocados en objetos
locales. En este entorno no es importante la forma en cómo es
implementado el servicio haciendo de los Servicios Web una aplicación
portable.
58
3.3.2.1. Requerimientos de Plataforma.
Es necesario 50 KB de RAM y 25 KB de ROM para la implementación
del API JAX-RPC.
3.3.2.2. Requerimientos del API.
Existe soporte para lineamientos del Perfil Básico WS-I con el
fin de proporcionar interoperabilidad al API.
Soporte para el transporte de mensajes SOAP a través de
HTTP.
Permite la representación literal de mensajes SOAP
administrada en el formato de una solicitud/repuesta RPC,
además del reconocimiento de documentos WSDL (Lenguaje de
Descripción de Servicios Web).
Específica la forma en cómo son mapeados los tipos de datos
XML a tipos Java bajo la definición de stub para el manejo de
documentos XML basado en comunicación RPC.
Establecimiento de mecanismos en tiempo de ejecución que
toleren los stubs generados.
3.3.2.3. Paquetes del API JAX-RPC.
El API JAX-RPC está compuesta por tres partes:
1. Subconjunto de JAX-RPC: sirven para el desarrollo de
Servicios Web y esta compuesto por los cuatro paquetes:
com.sun.j2mews.xml.rpc: “contiene clases para la
implementación del API en tiempo de ejecución” [8].
Contiene las siguientes clases:
OperationImpl: implementación de la clase
59
javax.microedition.xml.rpc.Operation el cual corresponde
a una operación del Servicio Web definido en el WSDL.
SOAPDecoder: permite el descifrado de mensajes
SOAP.
SOAPEncoder: sirve para codificar mensajes SOAP.
javax.microedition.xml.rpc: conformado por una interfaz
simple FaultDetailHandler implementada por stubs. Tiene las
siguientes clases:
Complextype: manejo de instancias de tipos de datos
XML complejos (xsd:complexType) definidos en un
WSDL.
Element: instanciación de elementos (xsd:element)
definidos en el WSDL del Servicio Web.
Operation: hace referencia a la (s) operación (es) de un
Servicio Web.
Type: tipo de enumeración para la identificación de tipos
simples en WSDL.
FaultDetailException: “excepción lanzada para valores
detallados específicos del servicio” [8].
javax.xml.namespace: conformado por una clase simple
llamada Qname, que representa un nombre calificado y es
definido a través de las especificaciones de Esquemas, Tipos
de Datos y Espacios de Nombres XML.
javax.xml.rpc: núcleo del API JAX-RPC. Está estructurada
de la siguiente manera:
Stub: interfaz común para las clases stub.
NamespaceConstants: clase que define prefijos para los
espacios denombres definidos en XML.
60
JAXRPCException: excepción lanzada por el API JAX-
RPC relacionada con el tiempo de ejecución de JAX-
RPC.
2. Paquete para la Invocación de Métodos Remotos (RMI):
conformado paquete java.rmi el cual a su vez maneja una
interfaz y tres excepciones definidas a continuación:
Remote: interfaz para la identificación de métodos que
pueden ser invocados desde una máquina virtual no local.
MarshalException: esta excepción ocurre si otra excepción
es lanzada al momento de manejar el flujo de E/S mientras
se ordena la cabecera, los argumentos o valores de retorno
de un llamado remoto.
RemoteException: excepción relacionada con la
comunicación que ocurre en la ejecución del llamado de un
procedimiento remoto.
ServerException: esta excepción es el producto de una
invocación al servidor del método remoto.
3. Interfaz del Proveedor del Servicio SPI: permite a los stubs
ser portables e interoperables sin importar la implementación
de la Especificación de Servicios Web de J2ME.
3.4. OTROS PAQUETES.
Los siguientes paquetes no pertenecen a la especificación de Servicios Web en
J2ME (JSR 172), pero cumplen con los requerimientos mínimos para la
manipulación de aplicaciones que permitan al acceso a los Servicios Web y esta
soportado por el perfil MIDP. Entre estos paquetes se pueden encontrar:
3.4.1. kXML.
“Esta API tiene soporte para análisis de documentos XML” [9].
61
3.4.1.1. Requerimientos del API.
Soporte para analizadores como SAX, XMLPull (basado en
pilas) y kDOM (Modelo de Documentos).
3.4.1.2. Paquetes del API kXML.
El API kXML en su versión 2.0 consta de 6 paquetes:
“org.kxml2.io: contiene manejo de análisis XML con XMLPull.
org.kxml2.kdom: realiza la implementación de análisis XML
con DOM.
org.kxml2.wap: soporte para analizadores con Wbxml.
org.kxml2.wap.syncml: sincronización en documentos XML.
org.kxml2.wap.wml: maneja un analizador para documentos
wml.
org.kxml2.wap.wv: paquete wireless village”. [10]
3.4.2. kSOAP.
Este paquete lanzado en Noviembre del año 2002 permite el manejo de
servicios web a través mensajes SOAP.
3.4.2.1. Requerimientos de Plataforma.
42 KB de memoria ROM para ejecutar el API.
3.4.2.2. Requerimientos del API.
Soporte para mensajes SOAP codificados y literales.
“Es opcional la serialización de mensajes SOAP” [11].
3.4.2.3. Paquetes del API kSOAP.
“org.ksoap2: clases básicas requeridas para el manejo de
cabeceras SOAP y XML literal.
org.ksoap2.serialization: contiene soporte para la
especificación de Serialización de SOAP”. [11]
62
org.ksoap2.servlet: clase para la implementación de Servlets.
org.ksoap2.transport: permite la ejecución de métodos de
conexión a través de HTTP.
63
IV. IMPLEMENTACION DEL SISTEMA PARA LA ADMINISTRACIÓN DE
SERVICIOS WEB EN TELEFONIA MOVIL A TRAVES DE LA PLATAFORMA J2ME.
4.1. ESPECIFICACIONES GENERALES.
Para describir el desarrollo de esta aplicación se tiene en cuenta aspectos generales
de Ingeniería del Software con el fin de detallar aspectos como el patrón de diseño
utilizado en la implementación, casos de usos y diagramas de clases que permiten
observar una visión general de la estructura de la aplicación final. Esta aplicación
final consta de dos Servicios Web, el primero maneja la información relacionada con
precios y proveedores de algunas artesanías de Colombia, el segundo muestra la
hora y lugar en donde se van a presentar las películas en la cartelera actual para las
algunas salas de cine de Colombia.
4.1.1. Patrón de diseño MVC.
El Sistema para la Administración de Servicios Web en telefonía móvil hace
uso del patrón de arquitectura de software MVC (Modelo Vista Controlador),
en el cual “la interacción con la interfaz de usuario se divide en tres roles
distintos. En una aplicación MVC la vista y los componentes del controlador
trabajan en conjunto como la IU (Interfaz de Usuario), el cual se ocupa de
cómo presentar la información al usuario a través de interacciones y
pantallazos” [9], además “permite resolver el problema de la actualización
de vistas de una aplicación ” [12].
En el momento en que el usuario altera los datos en la pantalla e inicia una
acción, esta acción va al controlador. El controlador es quien define que tipo
de petición ha sido solicitada a través de la acción y realiza un llamado a las
interfaces apropiadas del modelo. Este modelo puede consistir de muchos
componentes, clases o paquetes, esto depende de la tecnología sobre la
que esta soportada la lógica del negocio de la aplicación.
64
Implementar este patrón de diseño tiene sus beneficios:
La capa de presentación y el modelo de datos están claramente
separados.
MVC permite la realización de distintas vistas para el mismo
modelo.
Los objetos no visuales de la aplicación en la capa del modelo son
más fáciles de usar usando herramientas automáticas, en vez de
ser usadas en la IU.
La Figura 6 muestra los principales componentes de esta arquitectura y sus
interacciones con el usuario.
Figura 6. Componentes del patrón de diseño MVC.
4.1.2. Diagramas de Casos de Usos.
Los diagramas de Casos de Usos de cada uno de los Servicios ofrecidos a
través del sistema implementado describen las características resaltantes de
la interacción entre el usuario y la aplicación final.
4.1.2.1. Diagrama de Caso de Uso del Servicio Artesanías de
Colombia: el diagrama de casos de usos de la aplicación que maneja
la información relacionada con las Artesanías de Colombia se presenta
Controlador
Modelo
Vista
Usuario
Representación de la interfaz de usuario
Acciones del usuario
Cambios y acciones
Notificaciones de actualización
Registros
65
a continuación (Figura 7):
Figura 7. Diagrama de Caso de Uso del Servicio Artesanías de Colombia.
El usuario interactúa con la aplicación a través de tres
funcionalidades:
Ver Datos Artesanías: permite observar datos de artesanías
como el nombre, región de origen y una imagen que describe la
artesanía consultada.
Contactos Proveedores: muestra la información de los
proveedores de la artesanía consultada a través de una
dirección Web.
Ayuda: este menú informa al usuario de cómo manipular y
navegar a través del aplicativo.
4.1.2.2. Diagrama de Caso de Uso del Servicio Cine: en la Figura 8
se detalla el diagrama de casos de usos de la aplicación que administra
la información de horarios de películas y Salas de Cine de Colombia.
66
Figura 8. Diagrama de Caso de Uso del Servicio Cine.
El usuario tiene acceso al aplicativo por medio de dos
funcionalidades:
Ver Cartelera: informa acerca de la Sala de Cine y el precio de
la película consultada, desplegando una imagen que describe la
película.
Ver Horarios Películas: describe en que Sala de Cine y la hora
exacta en la que se va a presentar la película.
4.1.3. Diagramas de Clases.
Estos diagramas permiten visualizar la adaptación del patrón de diseño MVC
implementado en la realización del sistema propuesto.
4.1.3.1. Diagrama de Clases del Servicio Artesanías de Colombia:
Se utiliza un componente MVC general que administra la interfaz de
Usuario de la aplicación, y las subclases especifican las operaciones
descritas en el Servicio Web. Cada una de estas subclases maneja
controladores para el acceso al Servidor en donde está alojado el
Servicio Web y maneja los parámetros necesarios para la creación de
la Vista que es administrada por la clase general ComponenteMVC. El
diagrama de clases se muestra en la Figura 9.
67
Figura 9. Diagrama de Clases del Servicio Artesanías de Colombia.
4.1.3.2. Diagrama de Clases del Servicio Cine: la clase general que
distribuye la interfaz de usuario de cada una de las opciones previstas
en la aplicación del Servicio Cine es llamada ComponenteMVC1, las
demás subclases (MenuPeliculas, HorarioLugarPeliculas,
VerListaPeliculas) heredan de ésta y cada una de forma independiente
maneja la forma en como carga el modelo y accede al Servicio Web.
La Figura 10 muestra el diagrama de clases del Servicio Cine.
68
Figura 10. Diagrama de Clases del Servicio Cine.
4.2. HERRAMIENTAS UTILIZADAS EN LA IMPLEMENTACION DEL SISTEMA.
Para llevar a cabo la implementación y prueba de la aplicación fue necesario el uso
de las herramientas mostradas en la Tabla 6, detallando las licencias y empresas u
organizaciones que las distribuyen.
Herramienta/Software Proveedor Licencia
Maquina Virtual Java jdk1.6.0_06
Sun MicroSystems GPL v2
Sun Java Wireless Toolkit 2.5.2
Sun MicroSystems GPL v2
Apache Tomcat 6.0 Apache Software Foundation
Apache Software License
Axis Apache Software Foundation
Apache Software License
Nokia Prototype SDK 4.0 for Java ™ ME
Nokia Free
Sony Ericsson SDK 2.5.0.2 for the Java ™ ME Platform
Sony Ericsson GPL v2.0
JCreator Pro 4.5 Xinox Software EULA
Tabla 6. Herramientas y Software usado para la implementación.
69
A continuación se detalla cada una de las funcionalidades que tienen estas
herramientas en el desarrollo de la aplicación final.
Maquina Virtual Java jdk1.6.0_06: esta plataforma permite la ejecución
de toda aplicación soportada sobre la tecnología Java, siendo ésta la
base estructural de J2ME que es el eje central sobre el que se llevara a
cabo la implementación.
Sun Java Wireless Toolkit 2.5.2: herramienta que proporciona todos los
medios posibles para la creación y ejecución de aplicaciones móviles a
través de un emulador incorporado.
Apache Tomcat 6.0: Servidor de aplicaciones sobre el que se montara el
Servicio Web desde el que accederá la aplicación cliente en desarrollo.
Axis: framework de desarrollo que permiten la creación de Servicios
Web.
Nokia Prototype SDK 4.0 for Java ™ ME: emulador de aplicaciones
móviles que soporta paquetes para el desarrollo de Servicios Web en
J2ME.
Sony Ericsson SDK 2.5.0.2 for the Java ™ ME Platform: emulador de
Sony Ericsson para la ejecución de aplicaciones desarrolladas bajo la
plataforma J2ME.
JCreator Pro 4.5: editor de archivos fuentes Java.
4.3. DETALLES DE LA IMPLEMENTACION.
La implementación se realiza a través de cuatro fases resumidas a continuación:
Fase 1: en esta fase se realiza la búsqueda de herramientas necesarias
para la implementación, estudiando características y viabilidad con el fin
de agilizar la ejecución del proyecto.
Fase 2: estudio de las APIs y patrones de diseño sugeridos para la
70
implementación de la aplicación final.
Fase 3: se lleva a cabo la instalación del Servidor de aplicaciones
Apache Tomcat 6.0 y la configuración del framework Axis sobre éste. Se
realizan los dos Servicios Web propuestos en la implementación a través
de Axis, y posteriormente son desplegados en el servidor instalado.
Fase 4: en esta fase final se ejecuta el desarrollo final de la aplicación a
través del uso de las herramientas y paquetes seleccionados en la
primera y segunda fase respectivamente. Se utilizó además el patrón de
diseño de Software MVC.
4.4. EMULACIÓN DEL SISTEMA EN LA HERRAMIENTA J2ME WIRELESS
TOOLKIT 2.5.2.
4.4.1. Características de la herramienta.
J2ME Wireless Toolkit en su versión 2.5.2 lanzada en el año 2007, consta
de un conjunto de herramientas que permiten la creación y ejecución de
aplicaciones MIDP con las siguientes características:
Construcción y empaquetado: después de tener digitado el
código fuente de la aplicación la herramienta puede compilar,
preverificar las clases y empaquetar la aplicación en una MIDlet
suite.
Ejecución y monitoreo: se puede ejecutar la MIDlet suite
directamente sobre el emulador o instalarla en un dispositivo móvil a
través de una aplicación que permita tal instalación. Un monitor de
memoria y de red son proporcionados para analizar las operaciones
de los MIDlets.
Firma digital de MIDlet suites: esta herramienta contiene paquetes
para firmar digitalmente MIDlet suites. Esto es usual para probar la
operación de MIDlets en diferentes dominios de protección [13].
71
También permite la firma de MIDlets, el manejo de certificados digitales,
emulación integrada sobre el aire (OTA) y más funcionalidades. Las Figuras
11 y 12 muestran la ejecución del Sistema para la administración de
Servicios Web en el emulador de la herramienta J2ME Wireless Toolkit
2.5.2.
72
Figura 11. Flujo de Ejecución de la Aplicación para Artesanías de Colombia en J2ME Wireless Toolkit 2.5.2.
73
Figura 12. Flujo de Ejecución de la Aplicación para Cines de Colombia en J2ME Wireless Toolkit 2.5.2.
74
4.5. EMULACIÓN DEL SISTEMA EN LA HERRAMIENTA NOKIA PROTOTYPE
SDK 4.0 FOR JAVA ™ ME.
4.5.1. Características de la herramienta.
Nokia Prototype SDK 4.0 para JAVA ™ ME puede ser usado y soportado con
Entornos de Desarrollo Integrado (EDI). El Kit de Desarrollo (SDK) ofrece
soporte a MIDP 2.0, emulación en ámbitos como seguridad, Bluetooth,
gráficos móviles en 3D y API de ubicación. Esta herramienta tiene los
siguientes componentes:
Emuladores: el primer emulador es Prototype 4.0 S40 MIDP
Emulator con resoluciones de 128x128, 128x160, 208x208 y
240x320 píxeles, además esta el Prototype 4.0 S60 MIDP
Emulator con resoluciones de 176x208, 240x320, 352x416
pixeles, Prototype 4.0 S80 MIDP Emulator con resolución
640x200 píxeles y Prototype 4.0 Nokia 7710 MIDP Emulator con
resolución de 640x320 píxeles.
Nokia Connectivity Framework (NCF): ofrece un entorno de
comunicación fácil y rápida. La comunicación con productos
NCF compatibles puede ser establecida a través de diversas
tecnologías de comunicación [14].
Las Figuras 13 y 14 muestran la ejecución del Sistema para la administración de
Servicios Web en el emulador de la herramienta Nokia Prototype SDK 4.0 for JAVA
™ ME.
75
Figura 13. Flujo de Ejecución de la Aplicación para Artesanías de Colombia en Nokia Prototype SDK 4.0 for JAVA ™ ME.
76
Figura 14. Flujo de Ejecución de la Aplicación para Cines de Colombia en Nokia Prototype SDK 4.0 for JAVA ™ ME.
77
4.6. EMULACIÓN DEL SISTEMA EN LA HERRAMIENTA SONY ERICSSON SDK
2.5.0.2 FOR THE JAVA ™ ME PLATFORM.
4.6.1. Características de la herramienta.
Sony Ericsson SDK 2.5.0.2 para la Plataforma JAVA ™ ME tiene soporte
para MIDP 2.0 y Symbian. El Kit de Desarrollo (SDK) es una modificación
de la herramienta Sun Java Wireless Toolkit en su versión 2.5.0. Sony
Ericsson SDK 2.5.0.2 para la Plataforma JAVA ™ ME además de soportar
las APIs que pueden soportar las demás componentes herramientas añade
la especificación JSR 239 (Java Binding para OpenGL) que sirve para el
reconocimiento de gráficas nativas en 3D. Consta de los siguientes
elementos:
ODD (Depuración en el Dispositivo): permite a los
desarrolladores realizar aplicaciones y depurarlas directamente
desde el teléfono móvil.
Conexión Proxy: interfaz para la conexión entre el PC y el teléfono.
Explorador de Dispositivo: permite la manipulación de MIDlets y
aplicaciones Java en el teléfono directamente desde el PC.
Monitor de Recursos: ayuda a la obtención de información acerca
de los recursos del sistema que incluye el teléfono [15].
Las Figuras 15 y 16 muestran la ejecución del Sistema para la administración de
Servicios Web en el emulador de la herramienta Sony Ericsson SDK 2.5.0.2 para la
Plataforma JAVA ™ ME.
78
Figura 15. Flujo de Ejecución de la Aplicación para Artesanías de Colombia Sony Ericsson SDK 2.5.0.2 for the JAVA ™ ME.
79
Figura 16. Flujo de Ejecución de la Aplicación para Cines de Colombia Sony Ericsson SDK 2.5.0.2 for the JAVA ™ ME.
80
V. MARCO HISTORICO DEL PROYECTO.
5.1. ESTADO DEL ARTE.
Desde el año 2003, luego que se estandarizará la plataforma J2ME por parte de la
Sun Microsystems Incorporation a través de JCP (Comunidad de Procesos Java), se
ha venido trabajando sobre las capacidades que se pueden ofrecer en los teléfonos
móviles por medio del uso de la plataforma J2ME a través de aplicaciones de
conectividad, como lo son los Servicios Web implementando JSR (Requerimientos
de Especificación Java). El JSR referido a la implementación de Servicios Web en
telefonía móvil es denominado JSR 172 “J2ME Web Services Especification”
(Especificación de Servicios Web en J2ME).
El grupo de expertos que han permitido un completo desarrollo de la especificación
está compuesto por 30 corporaciones e individuos líderes en la industria.
Fabricantes como Nokia, Motorola, Sony/Ericsson, LG, Siemens, Sharp y RIM,
distribuidores de software como Symbian, IBM, Borland, BEA y Sun Microsystems
además de distribuidores de servicios inalámbricos como NTT y Cingular hacen
parte de este grupo.
A continuación se muestran los trabajos relacionados a nivel internacional y nacional
en cuanto a la implementación de la plataforma J2ME para aplicaciones que tengan
acceso a Servicios Web en telefonía móvil.
81
5.1.1. Fuentes Primarias – Trabajos Relacionados – Internacional
Universidad de la Laguna (España) [16].
Acceso Dinámico a Servicios de una Infraestructura Web desde
Teléfonos Móviles. Sánchez Nielsen, E., Martín Ruiz, S., Rodríguez
Pedrianes, J. 2007.
Proyecto de Software Cliente para Servicios Web Móviles [17].
Karimo, H. 2005.
Desarrollo de una aplicación cliente para el acceso a Servicios web en
telefonía móvil usando el Modelo Vista Controlador.
Universidad de Piura (Piura, Perú), Universidad de Ciencias
Aplicadas del Sur de Suiza (Suiza) [18].
Servicios Web para Entornos Informáticos. Arauco, E., Sommaruga, L.
2003. Descripción de la arquitectura abierta de J2ME y estándares
mundiales para el desarrollo de Servicios Web en telefonía móvil.
Escuela Politécnica de Pernambuco [19]
Servicio de distribución de contenidos RSS para dispositivos móviles a
través de Servicios Web. Bandeira de Oliveira, R. 2005.
Platinum Solutions.
Aplicaciones conectadas de J2ME, Santanu Dutt, 2004. Explicación
sobre capacidades de J2ME en aplicaciones que necesitan conexión
inalámbrica a través de la implementación de un marco genérico de
conexión.
82
Escuela Superior de Ingenieros (Sevilla España).
Localización de terminales móviles mediante GPS y Push Registry
(J2ME), Antonio J. Sierra Collado, Carlos Bueno López, María Carrión
García, 2006. Implementación de una aplicación cliente que permita el
manejo de ubicaciones geográficas para un conjunto de terminales
móviles a través de GPS y Push Registry.
5.1.2. Fuentes Primarias – Trabajos Relacionados – Nacional.
Universidad del Cauca, Facultad de Ingeniería Electrónica y
Telecomunicaciones Departamento de Telemática [20].
Aplicaciones para dispositivos móviles utilizando la tecnología de
Agentes. Barrera Campo, José F., Martínez Vásquez, David A. 2004.
Diseño de servicios basados en la tecnologías de agentes con el Modelo
de Referencia para el Desarrollo de Servicios con Orientación a Agentes
versión 1.0 (MR-DSOA 1.0) que pueden ser accedidos a través de
dispositivos móviles.
Universidad Santo Tomas, Medellín [21].
Proveedor de Servicios Basados en Localización para Dispositivos
Móviles. Castañeda, Hernán A., Gómez, Juan D., Leal, Alexander.
2006.
Universidad El Bosque, Facultad de Ingeniería de Sistemas, Bogotá
[22].
Streaming de Audio a través de Dispositivos Móviles utilizando J2ME.
Prieto, Felipe A., Rodríguez, Luisa F. 2007.
83
Implementación de una aplicación móvil a través de J2ME que permite el
manejo y edición de contenido multimedia desde dispositivos móviles
haciendo usos de recursos disponibles en la red.
Grupo Cóndor S.A., Bucaramanga. Desarrollo y Comercialización de
soluciones móviles en diversos sectores. Desarrollo de software móvil
a la medida de su empresa. Ofrece soluciones en diferentes
plataformas como Symbian OS, J2ME orientadas a soluciones
empresariales integrales que agilicen los procesos [23].
Universidad San Martín, Facultad de Ingenierías, Ingeniería de
Sistemas, Bogotá [24]. Búsqueda de rutas para el sistema de
Transporte Masivo Transmilenio utilizando la tecnología J2ME.
Martínez Chaparro Francy. 2007. Implementación de un sistema que
gestiona la búsqueda de rutas para Transmilenio a través de J2ME.
84
PRESUPUESTO ECONOMICO
MARCO ECONOMICO
El auge que está teniendo la telefonía móvil actualmente repercute en la creciente
necesidad de que los usuarios y clientes de telefonía móvil tengan acceso a
diferentes tipos de servicios a través de la red. Con el fin de manejar la búsqueda
de servicios en estos dispositivos móviles, los Servicios Web son la solución más
conveniente para orientar e integrar aplicaciones que permitan realizar y
estandarizar las metodologías de búsqueda de una forma segura al igual que se
hace con una computadora personal.
J2ME además de ser una plataforma libre ofrece robustez y gran capacidad para la
ejecución de este tipo de sistemas que se pretende implementar. Actualmente
existen en el mercado sistemas operativos móviles como Windows Mobile Pocket
PC y Apple que permiten la ejecución de este tipo de aplicaciones. El problema
radica en que obtener licencias de este tipo es costoso si se desea hacer un
desarrollo como el propuesto en esta tesis.
CALCULOS DE LOS COSTOS DE INVERSIÓN
1) Presupuesto de medios básicos
Balance de Inversiones en: Software y equipos
Denominación del Renglón
General
CANTIDAD COSTO UNITARIO
COSTO TOTAL
Proveedor Observaciones
Maquina Virtual Java jdk1.6.0_06
1 $0 $0 Sun MicroSystems
Sun Java Wireless Toolkit
2.5.2
1 $0 $0 Sun MicroSystems
Servidor de Aplicaciones
Apache Tomcat 6.0
1 $0 $0 Apache Software Foundation
Axis 1 $0 $0 Apache Software Foundation
85
Nokia Prototype SDK 4.0 for Java
™ ME
1 $0 $0 Nokia
Sony Ericsson SDK 2.5.0.2 for the Java ™ ME
Platform
1 $0 $0 Sony Ericsson
JCreator Pro 4.5 1 $0 $0 Xinox Software
Computador 1 $0 $0 CICOM Asignado en Laboratorio
P103 por CICOM
Total de la inversión en el renglón general
$0
Tabla 7. Medios Básicos.
2)Presupuesto de medios de Rotación
Balance de Inversiones en: Medios de Rotación
Denominación del Renglón
General
CANTIDAD COSTO UNITARIO
COSTO TOTAL
Proveedor Observaciones
Arriendo 5 $100.000 $500.000 Señora Marlenys
Luz 5 $25.000 $75.000 CENS
Agua 5 $28.000 $140.000 EmpoPamplona
Internet 300 horas $0 $0 Universidad de Pamplona
Asignado en Laboratorio P103
por CICOM
Total de la inversión en el renglón general
$715.000
Tabla 8. Medios de Rotación.
86
3)Presupuesto para gastos en personal
Cargo Días Trabajados
Salario Básico
Auxilio de Transporte
Salud Pensión Total Deducido
NETO A PAGAR
Ingeniero 90 $850.000 $90.000 $90.000
$65.000 $785.000 $2355.000
Total nomina anual $2.355.000
Tabla 9. Gastos en Personal.
87
FUENTES DE FINANCIACION
Las fuentes de financiación que garantizan la ejecución del proyecto están a cargo
del Señor Aliro José Rincón Montero quien apoya de forma económica al autor de la
tesis.
88
MARCO LEGAL
LICENCIA DE APACHE VERSIÓN 2.0
Esta licencia es compatible con otras licencias de Código Abierto bajo la cual la
Fundación de Software de Apache (Apache Software Foundation) garantiza el uso, la
reproducción y distribución de código fuente del software libre y propietario.
LICENCIA DE Sun Microsystems
Garantía limitada por 90 días a partir de la adquisición y registro del software. No se
puede crear ni modificar las clases, interfaces o subpaquetes que componen el
núcleo del software hecho en Java. La licencia se ajusta a las licencias que maneje
la empresa que recibe o utiliza el software.
GPL v2.0
Esta licencia permite lo siguiente:
1. Usted puede copiar y distribuir copias literales del código fuente del
Programa, según lo has recibido, en cualquier medio, supuesto que de forma
adecuada y bien visible publique en cada copia un anuncio de copyright
adecuado y un repudio de garantía, mantenga intactos todos los anuncios que
se refieran a esta Licencia y a la ausencia de garantía, y proporcione a
cualquier otro receptor del programa una copia de esta Licencia junto con el
Programa. Copiar y distribuir copias del código fuente de programas.
2. Puede modificar su copia o copias del Programa o de cualquier porción de
él, formando de esta manera un trabajo basado en el Programa, y copiar y
distribuir esa modificación o trabajo.
3. Puede copiar y distribuir el Programa.
4. No puede copiar, modificar, licenciar bajo otro tipo de licencia o distribuir el
89
Programa excepto como prevé expresamente esta Licencia. Cualquier intento
de copiar, modificar licenciar bajo otro tipo de licencia o distribuir el Programa
de otra forma es inválida, y hará que cesen automáticamente los derechos
que te proporciona esta Licencia. En cualquier caso, las partes que hayan
recibido copias o derechos de usted bajo esta Licencia no cesarán en sus
derechos mientras esas partes continúen cumpliéndola.
5. Existe ausencia de garantía. [25]
Licencia de Usuario Final (EULA)
Es una licencia por la cual el uso de un producto sólo está permitido para un único
usuario (el comprador).
En este tipo de contrato, el dueño de los derechos de un producto insta al usuario
final de éste a que reconozca tener conocimiento de las restricciones de uso, de los
derechos del autor (copyright), de las patentes, etc. y que acepte de conformidad.
El conocimiento del contenido de los contratos es difícil antes de la compra del
producto ya que las cajas de los productos raramente contienen una copia completa
del mismo, dándose que el comprador en la mayor parte de las ocasiones conoce su
contenido después de la compra [26].
90
ANALISIS DE PROTECCIÓN E HIGIENE DEL TRABAJO
Para la realización del sistema que gestiona el acceso de Servicios Web ubicados de
forma remota se tuvo en cuenta las especificaciones de la plataforma J2ME,
verificando requerimientos que permitan la ejecución de este tipo de aplicaciones en
los teléfonos celulares, con el fin de evitar la mala administración de los recursos con
los que cuentan los emuladores sobre los que se va a probar la aplicación final.
91
INFLUENCIA AMBIENTAL DEL TRABAJO
La influencia social que puede tener el resultado de este proyecto es el conocimiento
amplio de plataformas abiertas que permitan la ejecución de aplicaciones sobre
cualquier tipo de teléfono celular, de forma segura. El proyecto no tiene ninguna
influencia ambiental según las normas sobre las que se rige el desarrollo de este tipo
de aplicaciones en el proyecto, es decir el sistema implementado no influye
directamente en el bienestar del usuario final.
92
SERVICIOS WEB EN TELEFONÍA CELULAR
Web Services in Cell Phone RESUMEN
La evolución de la telefonía móvil ha permitido el desarrollo de estándares con
el fin de facilitar la adquisición y conocimiento de Servicios Web a los usuarios
de móviles. La llegada de nuevas tecnologías como SOA (Service Orient to
Architecture) abre un amplio campo de posibilidades para el desarrollo de diversas aplicaciones cuyo propósito es facilitar el acceso a contenido
informativo e interactivo. Este artículo presenta el estado actual de la
implementación de tecnologías emergentes como los Servicios Web en Telefonía
Celular, teniendo como base para dicha implementación la plataforma J2ME
(Java 2 Micro Edition).
PALABRAS CLAVES: J2ME, Servicios Web, SOA.
ABSTRACT
The evolution of the mobile telephony has allowed the developed of standards
with the purpose of facilitating the acquisition and knowledge of Web Services to
the users of mobiles. . The coming of new technologies like SOA (Service Orient to Architecture) open an extensive field of possibilities for the development of
diverse applications whose purpose is to facilitate the access to interactive and
informative content. This article presents the current state of the implementation
of emergent technologies as the Web Services in Cellular Telephony, having like
base for this implementation the platform J2ME (Java 2 Micro Edition).
KEYWORDS: J2ME, SOA, Web Services.
LUZ MARINA SANTOS JAIMES
Ingeniera de Sistemas. M. Sc
Docente Tiempo Completo
Directora Grupo de Investigación
Ciencias Computacionales Categoría C inscrito en Colciencias
Universidad de Pamplona
lsantos@unipamplona.edu.co
ANDRÉS ARLEY RINCÓN
PACHECO
Estudiante Ingeniería de Sistemas Universidad de Pamplona
aarp@unipamplona.edu.co
arpa1986@hotmail.com andresrincon@ingenieros.com
1. INTRODUCCIÓN
El auge que tiene la telefonía móvil repercute en la
creciente necesidad de que sus usuarios y clientes
tengan acceso a diferentes tipos de servicios a
través de la red. Con el fin de manejar la búsqueda
de servicios en móviles, los Servicios Web son la
solución más conveniente para orientar e integrar
aplicaciones que permitan realizar y estandarizar
las metodologías de búsqueda de una forma segura
al igual que se hace con una computadora personal.
El desarrollo de aplicaciones para la tecnología móvil se esta convirtiendo en una prioridad a nivel
mundial con el fin de dar más comodidad a los
usuarios de estos dispositivos en cuanto al acceso
de forma rápida, manejo de contenido interactivo,
gestores de búsqueda en la Web, juegos, etc. El
poco conocimiento y aplicación de herramientas
abiertas y robustas ha impedido el desarrollo de
este tipo de aplicaciones de forma generalizada a
nivel nacional.
La implementación de servicios Web en telefonía móvil a través de la plataforma J2ME permite a los
usuarios de telefonía móvil la interacción con
servicios ubicados en la red accediendo desde el
teléfono celular, PDA, etc. Dicha implementación
se lleva a cabo manejando metodologías de
programación soportadas por J2ME que conllevan
al desarrollo de aplicaciones empresariales como lo
son los Servicios Web, a través del estudio de las
generalidades, características de la plataforma y
APIs (Interfaz de Programación de Aplicaciones)
de la Referencia de implementación de Servicios Web en J2ME.
Se utiliza el patrón de desarrollo MVC (Modelo
Vista Controlador) en la ingeniería del software,
usando múltiples capas que aseguren la integridad
de la aplicación final. Este patrón permite dividir
por módulos el desarrollo, es decir, separa la lógica
de la aplicación del manejo de datos y de la interfaz
gráfica de la aplicación.
93
2. AVANCES EN EL MARCO CONCEPTUAL
La investigación se basa en conceptos que
caracterizan a los Servicios Web relacionando
aspectos como su funcionalidad, aplicabilidad y
tecnologías usadas para su implementación, además
del estudio de especificaciones como la JSR 172
que va a permitir la implantación de las tecnologías
que soportan los Servicios Web en telefonía celular.
La identificación de fuentes principales junto con la consideración de avances significativos y manejo
de actualidad en áreas del conocimiento
relacionados con el tema de Servicios Web se ha
convertido en un factor clave para el desarrollo de
la investigación. 2.1 Servicios Web
La Arquitectura Orientada a Servicios (SOA) ha permitido habilitar el entorno distribuido para que
la gran mayoría de las aplicaciones basadas en
componentes puedan operar entre sí, brindando
heterogeneidad al famoso mundo de las
aplicaciones distribuidas. Esta arquitectura da una
visión de que el software debe ser entregado como
un servicio, orientando al mercado del software
hacia un entorno más competitivo con soporte para
los negocios. Esto a su vez permite de forma
dinámica la creación e implantación de nuevos
servicios basados en los servicios ya existentes.
Algunas definiciones que delimitan el campo de
acción de los Servicios Web:
“Una aplicación software identificada por una
URI, cuyas interfaces y vinculaciones son
capaces de ser definidas, descritas y
descubiertas como artefactos XML. Un
Servicio Web soporta la interacción con otros
agentes software mediante el intercambio de
mensajes basado en XML a través de
protocolos basados en Internet.”1
“Los servicios Web son aplicaciones
modulares que se pueden describir, publicar,
localizar e invocar a través de la Web.”2
“Los Servicios Web son aplicaciones basadas
en la Web compuestas por funcionalidades de
granularidad gruesa que son accesibles a través
de Internet.”3
Los Servicios Web tienen como primer objetivo la
integración a través de la combinación de diversos
componentes dentro de un sistema. El segundo
objetivo es la conformidad, es decir la integración
de aplicaciones con las mismas reglas para obtener
el resultado deseado.
Una de las características más importantes de los
servicios Web es que no esta ligado a una
tecnología especifica, se ejecuta en cualquier
plataforma dejando ver de lado su interoperabilidad.
Entre las características más resaltantes de este tipo
de aplicación basada en la Arquitectura SOA se
tienen:
Basados en XML: el Lenguaje de
Marcado Extensible (XML) edifica la
representación estándar de datos para
todos los protocolos y tecnologías que
implementan Servicios Web.
Acoplamiento débil: el cliente no esta
atado al Servicio Web de forma directa, es
decir, el carácter de flexibilidad que ofrece
el entorno de ejecución del Servicio Web
implica que cualquier cambio que tenga este último no compromete de manera
alguna la capacidad de interacción del
cliente con el Servicio Web.
Granularidad: la tecnología de Servicios
Web deja entrever la individualidad con la
que son manejados los métodos que
implementa el servicio. Estos métodos en
su forma individual proporcionan
capacidades para ser usados en un nivel
corporativo.
Capacidad de ser implementados de
forma síncrona o asíncrona: de forma
síncrona se observa el enlace directo del
cliente con la ejecución del servicio. El
cliente espera que el servicio complete la
operación para luego continuar. En la
forma asíncrona el cliente esta en la
capacidad de ejecutar una operación e invocar un servicio de forma simultanea.
La forma asíncrona le da el carácter de
acoplamiento débil a los Servicios Web.
____________________________ 1
[1]http://www.w3.org/TR/ws-arch/wsa.pdf
2[2]http://www.redbooks.ibm.com/redbooks/pdfs/sg247257.pdf
3[3]http://www.csdl.computer.org/comp/mags/co/2003/10/rx035.
94
Soporte para Llamado de
Procedimientos Remotos (RPC): los
Servicios Web están en capacidad de
permitir a los clientes la invocación de
procedimientos, funciones y métodos en
lugares remotos a través de XML. Esto se
logra a través de la implementación de
componentes distribuidos como los EJBs
(Enterprise JavaBeans).
Soporte para el intercambio de
documentos: XML proporciona una forma de representación de documentación
compleja, a través de diferentes
protocolos.
Auto-contenidos: particularmente en el
lado del cliente no se necesita ningún
software adicional, solamente basta con
recurrir a soporte para XML y HTTP. En
el lado del servidor es necesario
únicamente un servidor que soporte el
manejo de mensajes SOAP (Protocolo de
Acceso Simple a Objetos) y protocolos como HTTP.
Independientes de lenguaje e
interoperables: tanto las aplicaciones del
cliente y servidor para el uso y la
ejecución de Servicios Web pueden ser
implementadas en diferentes entornos.
Básicamente cualquier lenguaje de
programación puede ser usado para
implementar Servicios Web.
La interoperabilidad como tal es una de las
características más resaltantes en este tipo
de aplicaciones permitiendo así la utilización de otras tecnologías que le dan
gran robustez y soporte a la ejecución de
los Servicios Web en diferentes
plataformas. Desde otro punto de vista
puede verse como una ventaja ante otras
aplicaciones que se ejecutan sobre
entornos distribuidos.
Debido a lo joven que es la tecnología de
los Servicios Web, subyacen un conjunto
de estándares que permiten dar
confiabilidad, refiriendo todo lo relacionado con el modo de operación,
descripción, localización y envío y
recepción de mensajes de los Servicios
Web.
Las siguientes son las tecnologías que
conforman el núcleo a través del cual se
pueden implementar y ejecutar Servicios
Web:
XML: el Lenguaje de Marcado Extensible
(XML) es la base para muchas de los
estándares especificados para los Servicios
Web. Se caracteriza por ser un lenguaje
genérico que sirve para describir cualquier
tipo de contenido de forma estructurada.
SOAP: el Protocolo de Acceso a Objetos
Simple (SOAP) es un protocolo ligero que
permite el empaquetamiento y posterior
transporte de mensajes con formato XML.
Se encarga del intercambio de información y documentos en un entorno distribuido
sobre diferentes tecnologías estándar de
Internet incluyendo SMTP, HTTP y FTP.
También establece mecanismos básicos de
comunicación entre el cliente y los
Servicios Web. Al igual que XML es
independiente de la plataforma y la forma
en que sea implementado.
WSDL: el Lenguaje de Descripción de
Servicios Web (WSDL) es un esquema
basado en XML que sirve para describir un servicio. WSDL estandariza la forma en
como un Servicio Web representa la
entrada y salida de datos a partir de una
invocación externa del Servicio Web,
especifica las operaciones que ofrece un
Servicio Web y la estructura de las
mismas. También describe a los servicios
como un conjunto de nodos o puertos.
Estos nodos o puertos asocian direcciones
de red y la colección o unión de los
mismos definen el servicio.
UDDI: el estándar para el Descubrimiento, Descripción e Integración Universal
(UDDI) proporciona mecanismos para la
publicación y el descubrimiento de
información de los Servicios Web,
describiendo también el tipo de
operaciones que estos ofrecen. UDDI
como estándar industrial nace bajo la
necesidad de crear plataformas
independientes que permitiera a las
organizaciones integrar, descubrir,
describir y categorizar los negocios. A través de mensajes SOAP, otras personas,
empresas u organizaciones pueden hacer el
descubrimiento de los Servicios Web
registrados.
La Figura 1 representa la interacción de las
tecnologías nombradas anteriormente:
95
Figura 1. Escenario de Servicios Web
2.2 Generalidades de J2ME
La plataforma J2ME se orienta al desarrollo de
aplicaciones para pequeños dispositivos con
limitaciones graficas, de procesamiento y memoria
(teléfonos móviles, PDAs, Beepers, etc.). J2ME
consta de un conjunto de especificaciones para
definir una colección de plataformas, apropiadas
para un subconjunto del amplio rango de dispositivos para usuarios existentes en el mercado 4.
J2ME esta conformado por los siguientes
componentes:
Múltiples máquinas virtuales especifica
para cualquier tipo de dispositivo pequeño.
Configuraciones, clases básicas orientadas
para implementaciones en dispositivos con características específicas. Las dos
configuraciones manejadas en J2ME son:
Configuración de Dispositivos Limitados
con Conexión, CLDC usada en
dispositivos con restricciones de
procesamiento y memoria, y CDC,
Configuración de Dispositivos Conectados
para dispositivos con más recursos.
Los Perfiles, librerías Java para familias de
dispositivos específicas, con clases para la
implementación de funcionalidades de más alto nivel.
Debido a las limitaciones de recursos que son
manejadas en la telefonía celular, la maquina virtual
con respecto a las demás plataformas Java se
denomina KVM (Máquina Virtual Kilo) ya que solo
requiere de unos cuantos Kilobytes de memoria
para poder funcionar de manera correcta,
incluyendo además un recolector de basura
pequeño.
La arquitectura J2ME esta proyectada para ser
modular y escalable, además que puede soportar los
tipos de desarrollo demandados por el consumidor e
incorporados en los mercados. El entorno de J2ME
proporciona un conjunto de Maquinas Virtuales
Java, optimizadas para diferentes tipos de procesamiento.
Al igual que los fabricantes desarrollan nuevas
características en sus dispositivos, los proveedores
de servicio desarrollan nuevas aplicaciones, estas
configuraciones mínimas pueden ser expandidas
con librerías adicionales que administran las
necesidades de un segmento del mercado en
particular. Existen cuatro conceptos esenciales, que
conforman el corazón de la arquitectura de J2ME:
1. Máquina Virtual.
2. Configuración.
3. Perfil.
4. Paquetes Opcionales.
La configuración utilizada en la implementación de
Servicios Web en telefonía celular es CLDC en
conjunto con el perfil MIDP (Perfil de Información
para el Dispositivo Móvil).
2.3 Servicios Web en J2ME
J2ME al igual que la Edición Empresarial de Java 2
(J2EE) tiene capacidades para el soporte de
Servicios Web y análisis de datos XML a través de
la adaptación de APIs implementadas en J2EE, pero
no con todas las funcionalidades debido a las
características restrictivas que impone J2ME.
La especificación que maneja el soporte de
Servicios Web es la JSR-172 (Solicitud de
Especificaciones Java 172). Esta especificación
lanzada el 3 de marzo de 2004 permite a través de
dos APIs o paquetes opcionales el manejo del flujo de datos XML y la comunicación con el Servicio
Web. El objetivo de esta descripción de Servicios
Web es la interoperabilidad para un marco general
que pretende estandarizar el desarrollo de entornos
empresariales en J2ME.
___________________________ 4
[4]http://www.lcc.uma.es/~galvez/ftp/libros/J2ME.pdf
96
JSR-172 también establece como un dispositivo
móvil que soporte J2ME puede ser cliente de
Servicios Web.
Aún en la actualidad, no se definen a los dispositivos móviles como proveedores de
Servicios Web. Básicamente se ha definido el
estándar de Servicios Web en J2ME con el fin de
proporcionar una infraestructura que:
adicione habilidades básicas para el
procesamiento de documentos en formato
XML
“permita el rehúso de conceptos de
servicio cuando se están diseñando
clientes J2ME en aplicaciones
empresariales”5
permita la interoperabilidad de los clientes
J2ME con Servicios Web
proporcione un modelo de programación
para la comunicación de clientes J2ME
con Servicios Web.
Dos paquetes opcionales definen la Especificación
de Servicios Web establecida a través de JSR 172.
Estos paquetes son:
API Java para el Procesamiento de XML
(JAXP) v1.2 (JSR 063): Soporta el análisis
de documentos XML en la plataforma
J2ME.
API Java para Llamado de Procedimientos
Remotos basado en XML (JAX-RPC) v1.1
(JSR 101): Permite a los dispositivos
móviles el acceso a Servicios Web
ubicados de forma remota.
La arquitectura típica para el consumo de Servicios
Web a través de la plataforma J2ME muestra la interacción entre las tecnologías que hacen posible
el acceso que pueden tener los teléfonos celulares
sobre los servidores que soportan la ejecución de
los Servicios Web (VER Fig. 2).
____________________________ 5
[5]http://www.cs.wichita.edu/~chang/lecture/cs898t/lecture/j2
me-webservice-spec.ppt
6[6]http://developers.sun.com/mobility/reference/techart/index.js
p
Figura 2. Servicios Web en J2ME6
2.3.1 Estado del arte
Desde el año 2003, luego que se estandarizará la
plataforma J2ME por parte de la Sun Microsystems
Incorporation a través de JCP (Comunidad de
Procesos Java), se ha venido trabajando sobre las
capacidades que se pueden ofrecer en los teléfonos móviles por medio del uso de la plataforma J2ME a
través de aplicaciones de conectividad, como lo son
los Servicios Web implementando JSR
(Requerimientos de Especificación Java). El JSR
referido a la implementación de Servicios Web en
telefonía móvil es denominado JSR 172 “J2ME
Web Services Especification” (Especificación de
Servicios Web en J2ME).
El grupo de expertos que han permitido un
completo desarrollo de la especificación esta
compuesto por 30 corporaciones e individuos
lideres en la industria. Fabricantes como Nokia, Motorola, Sony/Ericsson, LG, Siemens, Sharp y
RIM, distribuidores de software como Symbian,
IBM, Borland, BEA y Sun Microsystems además
de distribuidores de servicios inalámbricos como
NTT y Cingular hacen parte de este grupo.
2.3.1.1 Fuentes Primarias – Trabajos
Relacionados - Internacional
Universidad de la Laguna (España)7
Acceso Dinámico a Servicios de una
Infraestructura Web desde Teléfonos
Móviles. Sánchez Nielsen, E., Martín
Ruiz, S., Rodríguez Pedrianes, J.
2007.
Proyecto de Software Cliente para
Servicios Web Móviles8. Karimo, H.
2005.
____________________________
7[7]http://www.w3c.es/Eventos/2007/MWeb/Comunicaciones/P
apers/p3.pdf
8[8]http://www.cs.helsinki.fi/u/chande/courses/cs/MWS/seminar
/Articles/11.pdf
97
Universidad de Piura (Piura, Perú),
Universidad de Ciencias Aplicadas del Sur
de Suiza (Suiza)9.
Servicios Web para Entornos Informáticos.
Arauco, E., Sommaruga, L. 2003.
Escuela Politécnica de Pernambuco10
Servicio de distribución de contenidos
RSS para dispositivos móviles a través de
Servicios Web. Bandeira de Oliveira, R.
2005.
2.3.1.2 Fuentes Primarias – Trabajos
Relacionados – Nacional
Universidad del Cauca Facultad de Ingeniería Electrónica y
Telecomunicaciones Departamento de
Telemática 11
.
Aplicaciones para dispositivos móviles
utilizando la tecnología de Agentes.
Barrera Campo, José F., Martínez
Vásquez, David A. 2004.
UNIVERSIDAD SANTO TOMAS,
Medellín 12.
Proveedor de Servicios Basados en
Localización para Dispositivos Móviles. Castañeda, Hernán A., Gómez,
Juan D., Leal, Alexander. 2006.
2.4 Logros en relación con los objetivos
Realización de análisis bibliográfico
profundo referente a las características
relevantes de la plataforma J2ME,
identificando así el hecho de por que se
utiliza en la implementación de Servicios
Web en telefonía celular. Análisis del estado del arte referente a la
implantación de Servicios Web en
telefonía celular tanto a nivel nacional
como a nivel internacional.
Evaluación de las funcionalidades que
ofrecen los emuladores para la ejecución
de la aplicación ubicada en el teléfono
celular que tiene acceso a los Servicios
Web.
Implementación del sistema que
administra el acceso a Servicios Web
ubicados de forma remota desde el teléfono celular.
Realizar una documentación técnica acerca
del funcionamiento de la aplicación final.
3. Conclusiones
La visión de la Web actual tiende a la integración
de tecnologías y aplicaciones con el fin de
universalizar el acceso a cada una de los servicios
ofrecidos en la red.
La telefonía celular esta incursionando en estos aspectos dejando entrever la necesidad de los
usuarios de conocer nuevos servicios ofrecidos a
través de este tipo de dispositivos.
J2ME como plataforma Java proporciona la
robustez necesaria para llevar a cabo la
implementación de aplicaciones del lado del cliente
que permitan descubrir las funcionalidades y
ventajas de los Servicios Web como tecnología
especifica para entornos distribuidos.
Es de resaltar la gran importancia que cumple la
implantación de patrones de desarrollo con el fin de
darle integridad a las aplicaciones desarrolladas
sobre J2ME.
____________________________ 9[9]http://www.ti.ch/dt/da/spaa/temi/oasi/Pubblicazioni/
doc/2004_IEMS_Web_services_for_environmental_informatics.
pdf 10
[10]http://www.poli.br/arquivos/DOWNLOADS/TCC/COMP
UTACAO/20052/RafaelBandeira.pdf
11[11]http://ingenieria.udea.edu.co/~vision/Grupo/Cv/Agentes/
MR-DSOA.pdf 12
[12]ftp://jano.unicauca.edu.co/cursos/Electiva_sat/presentacio
nes/SAT-sesion02-Servicios.pdf
98
4. BIBLIOGRAFÍA
M. Juntao Yuan, Enterprise J2ME Developing
Mobile Java Applications. New Jersey:
Prentice Hall PTR, 2004, ch. 17.
V. Lee, H. Schneider, R. Schell, Mobile
Applications Architecture, Design and
Development. New Jersey: Prentice Hall PTR,
2004.
I. Garcia, M. Polo, F. Ruiz, M. Piattini, Servicios
Web. Universidad de Castilla, La Mancha, España, En. 2005. [Online]. Available:
www.info-
b.uclm.es/descargas/thecnicalreports/DIAB-05-
01-1/ServiciosWeb.pdf.
U. Wahli, O. Burroughs, O. Cline, A. Go, L. Tung,
Web Services for WebSphere Application
Server Version 6.1. IBM, Sep. 2006. [Online].
Available:
http://www.redbooks.ibm.com/redbooks/pdfs/s
g247257.pdf.
J. Y. Chung, K. J. Lin, and R. G. Mathieu, "Web
Services Computing: Advancing Software
Interoperability," IEEE Computer Society, p. 1,
Oct. 2003. Available: http://www.csdl.computer.org/comp/mags/co/2
003/10/rx035.pdf
C. E. Ortiz, "Introduction to J2ME Web Services,"
Sun Developer Network, Sun Microsystems,
Apr. 2004. Available:
http://developers.sun.com/mobility/reference/te
chart/index.jsp
99
CONCLUSIONES
La visión de la Web actual tiende a la integración de tecnologías y
aplicaciones con el fin de universalizar el acceso a cada una de los servicios
ofrecidos en la red.
En el mercado de la Telefonía Móvil, específicamente el de la Telefonía celular
en su afán de conseguir brindar más servicios a los usuarios ha permitido la
creación y adaptación de tecnologías que cumplan con este objetivo. J2ME
es una buena opción para la ejecución de aplicaciones del lado del cliente que
ofrezcan accesos a Servicios Web ubicados en la red.
Pero es la Especificación de Servicios Web soportada sobre la plataforma
J2ME quien contextualiza los medios necesarios para llevar a cabo la
implementación de aplicaciones que tengan acceso de forma rápida y
sincronizada a los Servicios Web que están soportados sobre una
arquitectura distribuida. Esta especificación llamada JSR 172 rige todos los
protocolos que permiten la realización de tales aplicaciones.
Existe una característica importante en Java que es la interoperabilidad. Esta
característica ha permitido que empresas dedicadas al desarrollo de
tecnología adecuen sus propias APIs para el desarrollo y ejecución de
software que cumpla con los requisitos exigidos por la JSR 172, como es el
caso de la Organización Enhydra con los paquetes kXML y kSOAP.
Es de resaltar la gran importancia que cumple la implantación de patrones de
desarrollo con el fin de darle integridad a las aplicaciones desarrolladas sobre
J2ME.
100
OBSERVACIONES Y RECOMENDACIONES
Es necesario tener en cuenta que para la implementación de este tipo de
aplicaciones y debido a que J2ME es una plataforma poco conocida localmente debe
hacerse un extenso y minucioso estudio que le de soporte al posterior desarrollo del
sistema propuesto.
Se pretende hacer una investigación profunda sobre la instalación y configuración de
redes inalámbricas que soporten la tecnología móvil con el fin de refinar el sistema
desarrollado y poder ejecutar dicha aplicación en teléfonos móviles que soporten la
especificación de Servicios Web en J2ME.
El acceso de aplicaciones remotas implica de manera obligada el ajuste de un
esquema que asegure las peticiones y respuestas involucradas en la comunicación
del Servidor con el cliente móvil, que intenta obtener beneficios de las
funcionalidades ofrecidas en un entorno distribuido como el que soportan las
tecnologías de los Servicios Web. La adaptación de arquitecturas de diseño de
software como MVC intenta hasta cierto punto manejar la seguridad requerida, pero
no controla el acceso inadecuado al que esta expuesto un software de este tipo.
Para esto es necesario el estudio de metodologías que ayuden a implementar
seguridad en el acceso a Servicios Web.
101
BIBLIOGRAFIA
[1] Sun MicroSystems. Introducción a J2ME y KVM, 8 páginas, San Antonio
California, Estados Unidos 2000. [Online:
http://java.sun.com/j2me/docs/zip/cldc11api.zip].
[3] Rojas Gálvez Sergio, Lucas Ortega Díaz. Java a tope: J2ME (Java 2 Micro
Edition), 200 páginas, Universidad de Málaga, Málaga, España 2003. [Online:
http://www.lcc.uma.es/~galvez/ftp/libros/J2ME.pdf].
[3] Garcia I., Polo M., Ruiz F., Piattini M. Servicios Web, 200 páginas,
Universidad de Castilla, La Mancha, España 2005. [Online: www.info-
ab.uclm.es/descargas/thecnicalreports/DIAB-05-01-1/ServiciosWeb.pdf].
[4] Ortiz E. C. Introducción a Servicios Web J2ME, 1 página Sun Microsystems,
San Antonio California, Estados Unidos 2004 [Online:
http://developers.sun.com/mobility/reference/techart/index.jsp].
[5] Armstrong S. J2ME Web Services Specification, 8 páginas, East Texas Data
Service, Texas, Estados Unidos 2001 [Online:
http://www.cs.wichita.edu/~chang/lecture/cs898t/lecture/j2me-webservice-
spec.ppt].
[6] Ellis J., Young M. J2ME Web Services 1.0, 88 páginas, Sun Microsystems,
Santa Clara California, Estados Unidos 2003. [Online:
http://www.sun.com/software/communitysource/j2me/wsa/download.xml/j2me_
web_services-1_0-fr-spec.pdf].
[7] Sun MicroSystems. JAXP Developers Tutorial, 18 páginas, Sun
Microsystems, Santa Clara California, Estados Unidos 2003. [Online:
http://www.sun.com/software/communitysource/j2me/wsa/download.xml/j2me_
web_services-1_0-src.zip/j2me-ws-1.0/doc/JAXP_Tutorial.pdf].
[8] Sun MicroSystems. JAX-RPC Developers Tutorial, 18 páginas, Sun
Microsystems, Santa Clara California, Estados Unidos 2003. [Online:
http://www.sun.com/software/communitysource/j2me/wsa/download.xml/j2me_
102
web_services-1_0-src.zip/j2me-ws-1.0/doc/JAXRPC_Tutorial.pdf].
[9] Juntao Yuan M., Colson J. Enterprise J2ME Developing Mobile Java
Applications, 486 páginas, Prentice Hall PTR, New Jersey, Estados Unidos
2004.
[10] kXML. kXML API, 1 página, 2003. [Online:
http://kxml.sourceforge.net/kxml2/javadoc/].
[11] kSOAP. kSOAP API, 1 página, 2004. [Online:
http://ksoap2.sourceforge.net/doc/api/].
[12] Kontio M. The MVC design pattern in MIDP development. 1 página, IBM
developerWorks. 2004. [Online: http://www-
128.ibm.com/developerworks/wireless/library/wi-arch6/].
[13] Sun Developer Network. Sun Java Wireless Toolkit for CLDC Download, 1
página, Sun Microsystems 2007. [Online:
http://java.sun.com/products/sjwtoolkit/download.html].
[14] Forum Nokia. Installation Guide for Nokia Prototype SDK 4.0 for Java TM
ME, 9 páginas, Nokia, 2006. [Online: http://sw.nokia.com/id/c2295ccf-c349-
46b7-bb8c-d51b3d3c2eb5].
[15] Sony Ericsson. Sony Ericsson SDK 2.5.0 for the Java ME Platform Readme,
1 página, Sony Ericsson, 2007. [Online:
https://developer.sonyericsson.com/getDocument.do?docId=96958].
[16] Sánchez Nielsen, E., Martín Ruiz, S., Rodríguez Pedrianes, J. Acceso
Dinámico a Servicios de una Infraestructura Web desde Teléfonos Móviles, 8
páginas, Universidad de la Laguna, Tenerife, España 2007. [Online:
http://www.w3c.es/Eventos/2007/MWeb/Comunicaciones/Papers/p3.pdf].
[17] Karimo, H. Mobile Web Services client Software project, 27 páginas, 2005.
[Online:
http://www.cs.helsinki.fi/u/chande/courses/cs/MWS/seminar/Articles/11.pdf].
[18] Arauco, E., Sommaruga, L. Web Services for Enviromental informatics, 7
103
páginas, Universidad de Piura, Universidad de Ciencias Aplicadas del Sur de
Suiza (Suiza), Piura, Perú, 2003. [Online:
http://www.ti.ch/dt/da/spaa/temi/oasi/Pubblicazioni/
doc/2004_IEMS_Web_services_for_environmental_informatics.pdf].
[19] Bandeira de Oliveira, R. Servicio de distribución de contenidos RSS para
dispositivos móviles a través de Servicios Web, 96 páginas, Escuela
Politécnica de Pernambuco, Pernambuco, Brasil 2005. [Online:
http://www.poli.br/arquivos/DOWNLOADS/TCC/COMPUTACAO/20052/Rafae
lBandeira.pdf].
[20] Barrera Campo, José F., Martínez Vásquez, David A. Aplicaciones para
dispositivos móviles utilizando la tecnología de Agentes, 1 página,
Universidad del Cauca Facultad de Ingeniería Electrónica y
Telecomunicaciones Departamento de Telemática, Popayán, Colombia
2004. [Online: http://ingenieria.udea.edu.co/~vision/Grupo/Cv/tesis-jfbc.htm].
[21] Castañeda, Hernán A., Gómez, Juan D., Leal, A. Proveedor de Servicios
Basados en Localización para Dispositivos Móviles, 158 páginas,
UNIVERSIDAD SANTO TOMAS, Medellín, Colombia 2006. [Online:
http://ingenieria.udea.edu.co/~vision/Grupo/Cv/Agentes/MR-DSOA.pdf].
[22] Prieto, Felipe A., Rodríguez, Luisa F. Streaming de Audio a través de
Dispositivos Móviles utilizando J2ME, 123 páginas, Universidad El Bosque,
Facultad de Ingeniería de Sistemas, Bogotá, Colombia 2007. [Online:
http://www.unbosque.edu.co/facultades/sistemas/webinves/tesis0602/DocPri
etoRodriguez.pdf].
[23] Grupo Condor S.A. Bucaramanga, Colombia 2008. [Online:
http://www.grupo-condor.net/index.htm].
[24] Martínez Chaparro F. Búsqueda de rutas para el sistema de
Transporte Masivo Transmilenio utilizando la tecnología J2ME,
Universidad San Martín, Bogotá, Colombia 2007. [Online:
http://ingenieria.sanmartin.edu.co/graduacion/notasGraduacion20071.p
104
hp].
[25] Gonzáles Barahona J., Quirós Pedro de las H. Licencia Pública GNU
(Traducción oficial), 3 páginas, España 1991. [Online:
http://es.tldp.org/Otros/gples/gples.html].
[26] Wikipedia, La enciclopedia libre. Licencia de Software, 1 página, 2008.
[Online:http://es.wikipedia.org/wiki/CLUF].
105
ANALISIS BIBLIOGRAFICO
Juntao Yuan M., Colson J. Enterprise J2ME Developing Mobile Java
Applications, 486 páginas, Prentice Hall PTR, New Jersey, Estados Unidos 2004.
Este libro especifica técnicas de desarrollo de aplicaciones empresariales en
J2ME, además muestra algunos casos de estudios sobre dichas
implementaciones.
http://java.sun.com/javame/index.jsp.
En esta página se encuentra referenciada toda la documentación relacionada con
la plataforma J2ME proporcionada por la Sun Microsystems.
http://www.lcc.uma.es/~galvez/ftp/libros/J2ME.pdf.
La dirección hace referencia a un manual que puede ser el punto de partida para
el estudio de las características generales de J2ME como plataforma.
http://java.sun.com/javame/reference/apis.jsp.
Página que maneja información acerca de especificaciones para paquetes
opcionales de J2ME como JSR 172 (Especificación de Servicios web en J2ME).
http://kxml.sourceforge.net/kxml2/javadoc/.
Información del paquete opcional para el análisis de documentos XML sobre
J2ME.
http://ksoap2.sourceforge.net/doc/api/.
Información del paquete opcional para el llamado a procedimientos remotos, envió
y recepción de mensajes SOAP sobre J2ME. Cumples casi la totalidad de las
funcionalidades que tiene JSR 172.
106
GLOSARIO DE TERMINOS
Applet: aplicaciones Java que se ejecutan en el contexto o que componen otro
programa como por ejemplo una pagina Web.
Framework: representa una arquitectura de software definida en la cual otro
proyecto de software puede ser organizado y desarrollado.
Interoperabilidad: habilidad que tiene un sistema o producto para trabajar con otros
sistemas o productos sin un esfuerzo especial por parte del usuario.
Java Server Pages: también conocida como JSP, es una tecnología basada en Java
que permite la generación de contenido dinámico para páginas Web.
MIDlets: aplicación J2ME desarrollada bajo la especificación MIDP.
Servlet: tecnología Java que consta de un mecanismo consistente para la extensión
de funcionalidades de un Servidor Web.
107
ABREVIATURAS UTILIZADAS
A.
API: Interfaz de Programación de Aplicaciones.
AWT: Herramienta para Ventanas Abstracta.
C.
CDC: Configuración de Dispositivos con Conexión.
CLDC: Configuración de Dispositivos Limitados con Conexión.
CISC: Computadoras con Conjuntos de Instrucciones Complejas.
E.
EJB: Componentes Empresariales de Java.
EULA: Licencia de Usuario Final.
F.
FTP: Protocolo de Transferencia de Archivos.
H.
HTTPS: Protocolo de Transferencia de Hipertexto Seguro.
J.
JAXP: API Java para el Procesamiento de XML.
JAX-RPC: API Java para XML-basado en RPC.
JCP: Comunidad de Procesos Java.
108
JDBC: Conectividad de Bases de Datos Java.
J2EE: Java 2 Edición Estándar.
J2ME: Java 2 Edición Micro.
J2SE: Java 2 Edición Estándar.
JSR: Requerimiento de Especificaciones Java.
M.
MIDP: Perfil de Información del Dispositivo Móvil.
MVC: Modelo Vista Controlador.
P.
PDA: Asistente Digital Personal.
R.
RISC: Computadoras con Conjuntos de Instrucciones Reducida.
RMS: Administración de Almacenamiento de Registros.
RPC: Llamado a Procedimientos Remotos.
S.
SAX: API Simple para XML.
SDK: Kit de Desarrollo Estándar.
SMTP: Protocolo Simple de Transferencia de Correo.
SOAP: Protocolo de Acceso Simple a Objetos.
U.
UDDI: Descubrimiento, Descripción e Integración Universal.
109
URI: Identificador Uniforme de Recursos.
W.
WSDL: Lenguaje de Descripción de Servicios Web.
X.
XML: Lenguaje de Marcado eXtensible.
110
ANEXOS
111
Anexo 1.
MANUAL DE USUARIO PARA EL SISTEMA DE ADMINISTRACIÓN
DE SERVICIOS WEB EN TELEFONÍA MOVIL A TRAVES DE LA
PLATAFORMA J2ME
112
Contenido. Pág.
1. INTRODUCCIÓN. 113
1.1. Objetivos de desarrollo. 113
1.2. Entornos de desarrollo. 113
1.3. Descripción del sistema. 113
2. RUTAS DE NAVEGACIÓN. 115
2.1. Artesanías de Colombia. 115
2.2. Cines de Colombia. 116
113
1. INTRODUCCIÓN.
Este manual de usuario describe las características generales de las aplicaciones
que componen el Sistema para la administración de Servicios Web en J2ME,
mostrando sus rutas de navegación y especificaciones generales que permitan al
usuario final del sistema una mejor adaptación y entendimiento de la ejecución del
mismo.
1.1. Objetivos de Desarrollo.
Esta implementación tiene por objetivo conocer las características de la
plataforma J2ME en cuanto al desarrollo de aplicaciones móviles que permitan
el acceso a entornos distribuidos que soportan Servicios Web ubicados de
forma remota.
1.2. Herramientas de desarrollo
Para el desarrollo del sistema se utilizaron las siguientes herramientas:
Maquina Virtual Java jdk1.6.0_06: entorno de ejecución y librerías de
Java.
Sun Java Wireless Toolkit 2.5.2: herramienta para el desarrollo de
aplicaciones móviles de Java.
Apache Tomcat 6.0: servidor de aplicaciones para alojar Servicios Web.
Axis: Framework para el desarrollo de Servicios Web.
Nokia Prototype SDK 4.0 for Java ™ ME: emulador de Nokia para
aplicaciones J2ME.
Sony Ericsson SDK 2.5.0.2 for the Java ™ ME Platform: emulador de
Sony Ericsson para aplicaciones J2ME.
JCreator Pro 4.5: editor de archivos fuentes Java.
1.3. Descripción del sistema.
El Sistema para la Administración de Servicios Web esta compuesto por dos
114
Servicios Web alojados en el servidor de aplicaciones Tomcat. Además consta
con dos aplicaciones que acceden de forma independiente los Servicios Web.
La primera aplicación tiene el control sobre los datos de algunas Artesanías de
Colombia distribuidas a nivel nacional. La segunda administra la información
obtenida a partir del Servicio Web que se refiere a las Salas de Cine en cuanto
a varías películas, horarios y salas de cines en todo el país. Se utilizo una
arquitectura de diseño conocida como MVC para poder desarrollar de manera
separada la Interfaz de Usuario y el acceso a Servicios Web.
115
2. RUTAS DE NAVEGACIÓN.
2.1. Artesanías de Colombia.
La pantalla A representa la pantalla principal de acceso al sistema, mostrando
dos opciones, cada una describe que Servicio Web pretende acceder. En este
caso al dar clic en Menú y escoger la opción 1. Ingresar se muestra la pantalla
del menú principal del Servicio Artesanías de Colombia. Este menú consta de
tres opciones:
Pantalla 1, opción Ver datos Artesanías. Se presiona el comando Menú
y la opción Seleccionar. Al hacer esto se despliega la pantalla 1a que lista
las diferentes artesanías. Si se escoge una de la lista, se presiona el
comando Menú y la opción Seleccionar, se podrá navegar a través del
Servicio Web en la pantalla 1b mostrando de forma detallada el precio,
región de origen y una imagen descriptiva de la artesanía seleccionada en
la pantalla 1a.
Pantalla 2, opción Contacto Proveedores. Se presiona el comando Menú
y la opción Seleccionar. Al hacer esto se despliega la pantalla 2a que lista
las diferentes artesanías. En este caso se escoge Sombrero Vueltiao al
igual que en la Pantalla 1, al presionar el comando Menú y la opción
Seleccionar se podrá navegar a través del Servicio Web en la pantalla 2b
mostrando información de los proveedores que distribuyen la artesanía
seleccionada en la pantalla 2a.
Pantalla 3, opción Ayuda. Esta opción muestra con la activación del
comando Menú información relacionada que sirve de ayuda al usuario de
la aplicación, dando pautas mínimas para el conocimiento del sistema.
Las rutas de navegación para Artesanías de Colombia se observa con mayor
claridad en la Figura 1.
116
2.2. Cines de Colombia.
La pantalla B representa la pantalla principal de acceso a la aplicación de Cines
de Colombia, mostrando dos opciones, cada una describe que Servicio Web
pretende acceder. Bajar y escoger la opción Cine, dar clic en Menú y escoger la
opción 1. Ingresar se muestra la pantalla del menú principal del Servicio Cines
de Colombia. Este menú consta de dos opciones:
Pantalla 1, opción Ver Cartelera. Se presiona el comando Menú y la
opción Seleccionar. Al hacer esto se despliega la pantalla 1a que lista las
diferentes películas. Si se escoge una de la lista, en este caso Hellboy 2,
se presiona el comando Menú y la opción Seleccionar, se podrá navegar a
través del Servicio Web en la pantalla 1b mostrando de forma detallada la
sala de cine, el precio y una imagen descriptiva de la película seleccionada
en la pantalla 1a.
Pantalla 2, opción Ver Horarios Películas. Se presiona el comando Menú
y la opción Seleccionar. Al hacer esto se despliega la pantalla 2a que lista
las diferentes películas. En este caso se escoge Hellboy 2 al igual que en
la Pantalla 1, al presionar el comando Menú y la opción Seleccionar se
podrá navegar a través del Servicio Web en la pantalla 2b mostrando
información de la sala de cine y el horario en que será presentada la
película seleccionada en la pantalla 2a.
Las rutas de navegación para Cines de Colombia se observa con mayor
claridad en la Figura 2.
117
1 1a 1b
3a
2a 2 2b 3
A
Figura 1. Rutas de Navegación para la Aplicación Artesanías de Colombia.
118
B
2
1
2a 2b
1a 1b
Figura 2. Rutas de Navegación para la Aplicación Cines de Colombia.
RESEÑA BIOGRAFICA DEL DIRECTOR
Msc. Ing. Luz Marina Santos Jaimes
Nivel de Educación.
Ingeniera de Sistemas
Magíster en Ingeniería de Sistemas y Computación
Perfil profesional.
Redes TCP/IP, Sistemas Distribuidos y Seguridad Computacional.
Experiencia profesional.
Docencia:
-Informática
-Programación I
-Programación II
-Programación III (Programación orientada a objetos)
-Herramientas y utilidades computacionales (Programación Estructurada)
-Estructura de datos
-Sistemas operativos
-Paradigmas de programación
-Redes de Computadores y Sistemas Distribuidos I
-Redes de Computadores y Sistemas Distribuidos II
-Comunicaciones Industriales
-Protección de Sistemas Informáticos
-Electiva de Ingeniería I – Sistemas Distribuidos- Desarrollo de aplicaciones
para computación móvil
-Electiva de Ingeniería II- Trabajo Cooperativo
-Electiva de Ingeniería III- Java Enterprise System
Dirección de proyectos de pregrado:
-Simulador de redes virtuales basado en el Superstack III 3300 de 3COM, Ingeniería
Electrónica, 2001
-Simulador de redes virtuales basado en el superstack III Switch 4007 y 4900 de 3COM,Ingeniería Electrónica, 2001 -Simulador de redes virtuales basado en office connect 56k Lan MODEM dual e ISDN Lan MODEM de 3COM, Ingeniería Electrónica, 2001 -Diseño e Implementación de un portal WAP para la Universidad de Pamplona, Ingeniería Electrónica, 2003 -Ambiente virtual para el Campus de la Universidad de Santander UDES sede Cúcuta para acceso interactivo a través de Internet bajo plataforma java, Ingeniería de Sistemas Cúcuta, 2004 -Diseño e Implementación de un Sistema Colaborativo de Mensajería Electrónica para la Universidad de Pamplona, 2006 -Metodología para el Análisis Forense en Linux, Ingeniería de Sistemas, 2006 -Análisis del Protocolo IPSec en ambientes IPv6, Ingeniería de Sistemas, 2006 -Metodología para la Detección de Intrusos en Linux, Ingeniería de Sistemas, 2006 -Análisis de tráfico entre LANs y VLANs para el laboratorio de redes de la Universidad de Pamplona, Ingeniería de Sistemas, 2007 -Aplicación de técnicas inteligentes basadas en lógica difusa como soporte para la evaluación de trabajos de grado, Ingeniería de Sistemas, 2007 Investigación
-Directora Grupo de Investigación Ciencias Computacionales “CICOM” -Presidente de “CICOM’05 Congreso Binacional en Sistemas, Informática e Ingeniería del Conocimiento”, Pamplona, noviembre de 2005, ISSN 1900-7329 -Presidente de “CICOM’07”, Mayo 2007, ISSN 1900-7329 -Presidente del Seminario Modelado, Automatización e Integración de Procesos, Pamplona, Noviembre de 2006 -Proyecto Red IPv6 Universidad de Pamplona Ponencias
-Ponencia “Guía para la evaluación de seguridad en un Sistema, II Jornada nacional de Seguridad Informática”, Asociación colombiana de ingenieros de Sistemas, Bogotá, 2002 -Ponencia “Tutorial de Lógicas Descriptivas”, Euro America Conference on Telematics and Information Systems (EATIS 2006), ISBN: 958-8166-37-3 --Ponencia: “Un razonador de Lógicas Descriptivas en Sistemas Inteligentes”, I Congreso de Computación Aplicada, CCA06, Universidad Nacional Experimental del Táchira, San Cristóbal, 2006 --Ponencia: “Similaridad estructural difusa entre trayectorias”, I Congreso de Computación Aplicada, CCA06, Universidad Nacional Experimental del Táchira, San Cristóbal, 2006 -Expositor- I Jornada Ciencia Tecnología e Innovación, Colciencias, Pamplona, 2006 -Ponencia “Pruebas de IPSec empleando el protocolo IPv6”, CICOM’07 Congreso Binacional en Sistemas, Informática e Ingeniería del Conocimiento, Universidad de Pamplona, Mayo de 2007, ISSN:1900-7329 -Ponencia “Arquitectura y proceso de desarrollo de aplicaciones Smart Client”, CICOM’07 Congreso Binacional en Sistemas, Informática e Ingeniería del Conocimiento, Universidad de Pamplona, Mayo de 2007, ISSN: 1900-7329
Artículos
-Artículo “Desarrollo de ambientes virtuales en Java 3D”, Revista Colombiana de Tecnologías de Avanzada, Universidad de Pamplona, 2005, ISSN: 1692-7257 -Artículo “La Expresiva SHIQ como Lenguaje Ontológico para la Web Semántica”, Revista Colombiana de Tecnologías de Avanzada, Universidad de Pamplona, 2006, ISSN: 1672-7257
-Artículo “IPv6 En la Universidad de Pamplona: Estado del Arte”. Revista
Scientia et Technica, Universidad Tecnológica de Pereira, 2007, ISSN: 0122-
1701