Академический Документы
Профессиональный Документы
Культура Документы
CIS0830-IS13
MIDDLEWARE PARA LA DEFINICIÓN E IMPLEMENTACIÓN DE
SERVICIOS GENÉRICOS INDEPENDIENTES DE LA
PLATAFORMA ORIENTADO A DISPOSITIVOS MÓVILES
Autor:
César Estéban Castañeda Ruíz
Director
JAVIER FRANCISCO LÓPEZ PARRA
Jurados del Trabajo de Grado
ANDRÉS BARRERA
CÉSAR DÍAZ
2
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Rector Magnífico
Página 3
“La Universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus
proyectos de grado. Sólo velará porque no se publique nada contrario al dogma y la moral
católica y porque no contengan ataques o polémicas puramente personales. Antes bien, que
se vean en ellos el anhelo de buscar la verdad y la Justicia”
4
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
AGRADECIMIENTOS
Página 5
Contenido
INTRODUCCIÓN .....................................................................................................16
III - PROCESO...........................................................................................................34
1. METODOLOGÍA PROPUESTA ...........................................................................34
6
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
IV - RESULTADOS ...................................................................................................41
1. EXPLORACIÓN SOBRE LAS PLATAFORMAS PARA DISPOSITIVOS MÓVILES ....41
1.1. Plataformas más relevantes .................................................................................... 41
1.2. Resultado del estudio de las plataformas ................................................................ 45
2. PROPUESTA PARA LA IMPLEMENTACIÓN DE LBS...........................................46
2.1. Propuesta de operaciones básicas en los LBS ......................................................... 46
2.2. Implementación de los diferentes tipos de LBS por medio de Invocación de
Método Remoto y Generación de Evento Asincrónico ...................................................... 47
2.3. La información de posición como parámetro ......................................................... 50
2.4. Resultados del estudio sobre la implementación de LBS ....................................... 51
3. ESTUDIO DE LAS CARACTERÍSTICAS TÉCNICAS DE LA SOLUCIÓN .................52
3.1. Comparación entre los diferentes mecanismos de transferencia de datos .............. 52
3.2. Resultados de la comparación entre los diferentes mecanismos de transferencia de
datos para dispositivos móviles ......................................................................................... 54
3.3. Formato de datos .................................................................................................... 55
3.4. Resultados del estudio de los posibles formatos de datos ...................................... 56
4. PROPUESTA DE SOLUCIÓN ..............................................................................57
4.1. Compilación de las características de la Solución .................................................. 57
4.2. El Middleware “OMNI” ......................................................................................... 57
4.3. El Redirector y el Servidor OMNI ......................................................................... 58
4.4. Sesión OMNI .......................................................................................................... 58
4.5. Tipos de datos en OMNI ........................................................................................ 59
4.6. Excepciones OMNI ................................................................................................ 60
4.7. Servicios OMNI...................................................................................................... 60
4.8. OMNI Middleware Protocol................................................................................... 62
5. IMPLEMENTACIÓN ...........................................................................................64
5.1. Arquitectura ............................................................................................................ 64
5.2. Componentes .......................................................................................................... 64
5.3. Implementación de Servicios con OMNI................................................................ 67
5.4. Aplicaciones del Middleware OMNI ...................................................................... 68
6. PRUEBAS ..........................................................................................................70
6.1. Latencia y Glitter .................................................................................................... 70
6.2. Servicio de prueba – “chatLBS” ............................................................................. 72
6.3. Modificación en la especificación del Middleware OMNI como resultado de las
pruebas............................................................................................................................... 77
Página 7
VI - REFERENCIAS .................................................................................................80
V- ANEXOS ................................................................................................................84
8
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
RESUMEN
En los últimos años, se ha observado un crecimiento considerable en la disponibilidad y el
uso de las redes inalámbricas. El acceso a los servicios remotos por medio de dispositivos
móviles le otorga al desarrollador una nueva herramienta (la localización), la cual le permi-
tirá implementar gran variedad de servicios innovadores que solo hasta ahora comienzan a
explorarse.
Sin embargo, existen múltiples plataformas para dispositivos móviles muy diferentes e in-
compatibles entre sí. Esto impone al desarrollador una carga extra para lograr que sus ser-
vicios sean accesibles desde todas ellas, trabajo que a menudo es más complejo que la im-
plementación del servicio en sí.
ABSTRACT
In the last years, the availability and use of wireless networks has experienced a substantial
increase. Accessing remote services from mobile devices may bring developers information
about user's position. This information allows the implementation of a wide variety of new
and innovating services, most of them still unexplored.
There are several platforms for mobile devices; it is a challenge for developers to achieve
interoperability of their applications between different platforms. This effort is often more
complex than the implementation of the service itself.
The "Mobile-Device oriented Middleware for the Definition and Implementation of Platform-
independent Generic Services" is a platform-independent middleware that allows developers
to define and implement standard and generic services while preserving valuable low re-
sources present in Mobile Devices.
Página 9
RESUMEN EJECUTIVO
Cuando se desea implementar un servicio que será accedido principalmente por dispositivos
móviles, se enfrenta un gran problema: la interoperabilidad.
En la actualidad, existe una variedad de plataformas que compiten por el mercado de disposi-
tivos móviles; esto dificulta la tarea de definición e implementación de servicios porque im-
pone al desarrollador la necesidad de ocuparse de las particularidades de cada una de ellas.
Servicios Pull: Son servicios de tipo RPC, que son invocados por el dispositivo
móvil con ciertos parámetros para obtener un resultado como valor de retorno.
Servicios Push: En este caso, el dispositivo móvil recibe información de forma
asincrónica sin haberla solicitado activamente.
La solución propuesta debía pues proveer las herramientas necesarias para implementar ser-
vicios de tipo Pull y Push.
Después del proceso de exploración, se decidió diseñar un Middleware sobre TCP basado en
XML por las siguientes razones:
10
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Para eliminar este problema, además de la llamada a procedimientos remotos se decidió in-
cluir en el Middleware la capacidad de generar eventos. Los eventos difieren de los RPC en
que no se espera ningún retorno como resultado de su invocación, simplemente se utilizan
para avisar que algo de interés ha sucedido.
Una interfaz con los métodos Pull, que será implementada por el servidor. Estos
métodos retornan un valor como resultado o lanzan una excepción consistente en un
identificador numérico (int) y una cadena de caracteres.
Una interfaz con eventos Pull, que será implementada por el servidor.
Una interfaz con eventos Push, que será implementada por el cliente.
Tanto los métodos remotos como los eventos pueden recibir cualquier cantidad de parámetros
al ser invocados.
Para fines de validación de dicho protocolo, se implementó el middleware para RIM BlackBe-
rry OS y Google ANDROID OS en Java ME, y un servidor funcional para Java SE.
Dada la popularidad creciente de accesorios como el GPS que permiten al dispositivo móvil
conocer su posición geográfica con más o menos precisión, los servicios pueden utilizar la
información de localización como un parámetro adicional que les permitirá contextualizar sus
Página 11
resultados a la ubicación del usuario. Estos servicios se conocen como LBS (Location Based
Services).
Resultados:
La implementación del Middleware se realizó de tal forma que cumple con los obje-
tivos satisfactoriamente.
Los tipos de datos que soporta el Middleware fueron cuidadosamente escogidos y de-
finidos para lograr la interoperabilidad entre plataformas.
Gracias a las extensivas pruebas de rendimiento que se llevaron a cabo pudo evaluar-
se el desempeño del protocolo TCP a través de la red celular. Dicho desempeño pre-
senta ciertas particularidades que fueron tomadas en consideración.
La definición de las operaciones básicas propuestas Invocación de Método Remoto y
Generación de Evento Asincrónico resultó ser adecuada para la implementación de
servicios LBS.
El diseño de servicios bajo el esquema de interfaces remotas de Cliente y Servidor
cubre el objetivo principal de la propuesta inicial para este Trabajo de Grado y lo ge-
neraliza para servicios que no son necesariamente LBS.
12
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
EXECUTIVE RESUME
When a mobile device-oriented service needs to be implemented, the main problem faced by
developers is interoperability.
There are several platforms competing in the market of mobile devices, developers must take
care of all their particular characteristics in order to successfully define and implement mo-
bile-based services.
To overcome this problem, most important wireless data transfer technologies have been
studied (WiFi, WiMax, GSM, GPRS, EDGE, UMTS, HSDPA) and the protocols used by the
time to successfully implement mobile-oriented services (SMS, MMS, WAP, TCP/IP,
UDP/IP).
Pull-type Services: Similar to RPC services. Mobile devices perform a method invo-
cation with associated parameters to obtain results as return values.
The proposed Solution should provide the necessary tools to implement both Pull and Push
services.
After an exploration process, a XML-based Middleware running over TCP has been designed
for some reasons:
TCP allows Full-Duplex transmissions, sending and receiving asynchronous data and
is supported by main wireless data transfer technologies (WiFi, WiMax, GSM, GPRS,
EDGE, UMTS, HSDPA).
Página 13
RPC-based systems are not enough to efficiently implement Push-type services. To deal with
this, some applications invoke RPC procedures on a periodic basis to ask servers if certain
events have occurred. This creates an unnecessary and potentially expensive data flow. In this
work, that approach has been rejected.
The proposed Middleware includes generation events functionality. Differently from RPC,
when events are invoked there are not results awaited from such invocation; they are used
only for notification purposes (Push).
RPC procedures and Events can receive any number of parameters when being invoked.
A protocol for Invocation of RPC Procedures and Remote Event generation has been defined,
as well as the standard for supported data types and possible system and user exceptions.
To successfully validate the proposed protocol, it has been implemented in Java ME and Java
SE and tested over RIM BlackBerry OS and Google ANDROID OS platforms.
Given the increased use of different LCS´s that allow devices to know their current position,
services use location data as an additional parameter to contextualize their results to user
position. These types of services are known as LBS (Location Based Services).
14
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
During developing process it has become evident that the proposed Middleware is capable of
implementing LBS of Pull, Push and Tracking types (principal goal of this work) and can also
be used to implement generic services not necessarily involved with position data.
Results:
The Middleware was implemented in a way that successfully accomplishes all objec-
tives of this work.
Data types supported by the Middleware were carefully chosen and defined to
achieve interoperability between platforms.
Thanks to extensive performance tests, TCP over cellular networks has demonstrated
to have some particular behavior that has been considered when designing the Mid-
dleware.
Definition of proposed basic operations RPC and Remote Event Generation where
enough to implement all types of LBS.
Service design under remote Client and Server interfaces layout successfully accom-
plishes main objectives of this work and generalizes it to implement generic services,
including LBS.
Página 15
INTRODUCCIÓN
Este documento describe el proceso de desarrollo del Trabajo de grado titulado “Middleware
para la definición e implementación de servicios genéricos independientes de la plataforma
orientado a dispositivos móviles”.
El proceso siempre estuvo dirigido al uso eficiente de los recursos limitados de los equipos y
a la preferencia por las tecnologías más recientes que muy seguramente estarán disponibles
para una gran cantidad de usuarios en el futuro cercano.
En la sección I – Descripción general del Trabajo de Grado, el lector encontrará una visión
global del Trabajo que incluye la formulación del problema, la justificación y los objetivos
que se plantearon en la propuesta inicial.
16
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Página 17
1. Oportunidad ó Problemática
1.1 Descripción del contexto
Los teléfonos móviles han estado presentes en Colombia desde hace ya más de una déca-
da, y se han difundido ampliamente. Pero en los últimos años, con el advenimiento de la
“revolución móvil” dejaron de ser sólo teléfonos y alcanzaron el nivel de pequeñas com-
putadoras de bolsillo. La miniaturización de los dispositivos, los avances en la interfaz
hombre-máquina y la reorientación de los servicios que prestan los operadores celulares
hacia una filosofía integradora, similar a la de Internet, permitirán que en pocos años una
gran cantidad de personas en Colombia [CRTC2008] y en el mundo [SASA2007], lleven
en su bolsillo un dispositivo capaz de mantener un flujo de datos constante, veloz y en
tiempo real con Internet.
Además, una red de dispositivos móviles como los descritos agrega una nueva variable:
la posición geográfica del dispositivo en un determinado momento. Dicha información
puede obtenerse por medio de Servicios de Localización (LoCation Services - LCS). El
servicio GPS (Global Position System) resulta particularmente interesante; según
[ABIR2008], es de esperarse que en los próximos 5 años se generalice la inclusión de es-
ta característica en los dispositivos móviles de todas las gamas. Sin embargo, la calidad
del receptor GPS influye en su precisión y los dispositivos móviles de gama baja con
GPS pueden no resultar lo suficientemente precisos para los servicios más exigentes. Pe-
18
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Recientemente, los LBS y los servicios para dispositivos móviles en general han desper-
tado la atención del mercado, ya que tienen un gran potencial que solo hasta ahora co-
mienza a apreciarse. A pesar de esto, las implementaciones a gran escala no han surgido
rápidamente, ya que la mayoría de los servicios existentes son aplicaciones específicas
para ámbitos empresariales cerrados, o son proyectos de exploración e investigación
técnica para futuros desarrollos [MCMA2006].
Si bien los diferentes estándares de acceso a las redes de Internet y telefonía móvil son
aceptados universalmente, La interoperabilidad entre la gran variedad de plataformas dis-
ponibles para dispositivos móviles no se había logrado [COST2002]. Era pues necesaria
la búsqueda de un mecanismo que permitiera implementar Servicios genéricos para dis-
positivos móviles sin que los usuarios tuvieran que preocuparse por la marca o platafor-
ma de su dispositivo al acceder a ellos.
1.2 Formulación
Las redes inalámbricas y los dispositivos móviles ofrecen al usuario la posibilidad de es-
tar conectado permanentemente y en casi cualquier lugar donde se encuentre. Esto abre la
puerta a toda una nueva gama de aplicaciones, servicios, juegos, redes sociales, etc. que
solo hasta ahora está comenzando a ser explorada.
Página 19
obligado a particularizar su servicio para una sola plataforma, con la consiguiente pérdida
de mercado y oportunidades; o a abarcar varias de ellas con el esfuerzo y recursos que es-
to supone.
20
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Con los resultados de dicha exploración, se procedió a proponer una solución viable y a
su implementación y prueba.
Finalmente, haciendo uso del middleware obtenido como producto final, se implementó
una aplicación que demuestra satisfactoriamente las funcionalidades necesarias para
cumplir con el objetivo de este Trabajo de Grado.
2.2. Justificación
El proyecto se realizó con el fin de brindar a los desarrolladores una herramienta que les
facilite la tarea de diseñar e implementar servicios orientados a dispositivos móviles sin
que deban preocuparse por asuntos de compatibilidad entre las diferentes plataformas.
Proponer una solución para la implementación de LBS de tipo Pull, Push y Tracking de
tal forma que sean independientes de la plataforma de cada dispositivo.
Página 21
II. Analizar los datos obtenidos y con base en los resultados, proponer una solución
al problema.
IV. Desarrollar una aplicación práctica que demuestre las funcionalidades básicas de
la propuesta en LBS de tipo Pull, Push y Tracking.
22
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
II - MARCO TEÓRICO
1. LBS
Según [GSMA2003] los LBS ofrecen a los usuarios un conjunto de servicios basándose
en la posición geográfica del cliente que los solicita. Dichos servicios brindan la capaci-
dad a humanos o máquinas de localizar geográficamente a otras personas, dispositivos,
vehículos o recursos, así como de poner a disposición su propia ubicación para otros
usuarios interesados. Los LBS implican dos acciones principales:
Página 23
De acuerdo con [ADUS2004] existen básicamente tres tipos de LBS: Pull, Push y Trac-
king.
1.2.1. Pull
En el primer caso, el servicio puede resolverse entre el Cliente que realizó la so-
licitud y el Servidor. En el segundo caso, el Servidor debe averiguar la posición
de un tercer actor para poder ejecutar satisfactoriamente el servicio.
1.2.2. Push
24
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
1.2.3. Tracking
Un LBS puede pertenecer a una o más de estas categorías. Por ejemplo, en un servicio
para redes sociales, un usuario podría ser notificado de la cercanía con sus amigos (push,
tracking), o podría solicitar información de cuantos de sus amigos han visitado el restau-
rante en que se encuentra en cierto momento (pull).
Un SIG puede entenderse también como un modelo computarizado que representa una
zona geográfica (real o imaginaria) con determinado grado de precisión por medio de un
sistema de coordenadas que permiten identificar cualquier punto de forma unívoca. Adi-
cionalmente, para cada punto puede almacenarse la información relacionada que se con-
sidere de interés dependiendo del uso que se dará al SIG.
Son las tecnologías que permiten obtener la información de localización geográfica del
dispositivo móvil.
Página 25
saje SMS con información sobre las promociones o eventos que se encuentran disponi-
bles en dicho centro comercial.
Actualmente solo existen tres de estos sistemas: ГЛОНАСС (sistema construido por
la extinta CCCP, parcialmente operativo en la actualidad), GALILEO (iniciativa eu-
ropea en desarrollo), y el Sistema de
Posicionamiento Global (Global Po-
sition System – GPS). Todos estos
sistemas operan bajo el mismo prin-
cipio:
26
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
El dispositivo móvil está equipado con un receptor que tiene la capacidad de captar la
señal que emiten constantemente los satélites.
Página 27
Las redes telefónicas celulares fueron inicialmente concebidas para prestar el servicio de
telefonía móvil pero han ido evolucionando hasta convertirse en redes de transferencia de
datos genéricos. Una red celular está conformada por cierto número de células que sub-
dividen y cubren un espacio geográfico determinado. Cada una de estas células está equi-
pada con transmisor-receptor fijo, conocido como estación base. Los dispositivos que de-
seen acceder a dicha red deben conectarse con la estación base correspondiente a la célula
en donde se encuentran en ese momento. Si un dispositivo se desplaza y cambia de célu-
la, también cambia de estación base de forma transparente para la aplicación que está uti-
lizando la conexión [TANE2003].
1G (Primera generación)
2G (Segunda generación)
3G (Tercera generación)
28
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
4G (Cuarta generación)
(2.5G) Se trata de una red de paquetes construida sobre GSM. Permite que las es-
taciones móviles envíen y reciban paquetes IP en una celda que se ejecuta en un
Página 29
(2.5G - 3G) Es una red para el intercambio de paquetes construida sobre GSM. A
diferencia de GPRS, agrega bits extra por baudio que son utilizados para la
transmisión y recepción de los paquetes IP. Dependiendo de su implementación,
permite mayor o menor velocidad en la transmisión de datos. Por esta razón no
puede ubicarse específicamente en 2.5G o en 3G.
2.1.2.6. HSDPA
30
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Fue diseñada para brindar acceso a internet en zonas en las que la instalación de fi-
bra óptica no resulta rentable. Utiliza antenas transmisoras de microondas que en te-
oría pueden transmitir a velocidades de hasta 70Mbps. Está descrita en el estándar
IEEE 802.16.
Página 31
Este sencillo sistema fue diseñado para la transferencia de alrededor de 160 caracteres de
7 bits desde un Servidor a un dispositivo o viceversa. Inicialmente hizo parte de la especi-
ficación de GSM, pero dada su gran popularidad las redes 3G actuales lo soportan.
Es muy fiable y hace uso eficiente de las transmisiones por radio, ya que está relacionado
estrechamente con el hardware del teléfono y la infraestructura de la red celular misma.
Como parte de las funcionalidades de bajo nivel de las diferentes plataformas, el progra-
mador tiene acceso a un API que le permite implementar aplicaciones que envíen y reci-
ban SMS para suplir sus necesidades de transferencia de datos. En el caso de Java ME,
este API está descrito en el documento jsr-120.
En el pasado, este mecanismo ha sido utilizado con éxito para la implementación de LBS
[GANG2004].
Al igual que en SMS, existen funcionalidades de bajo nivel que permiten a las aplicacio-
nes utilizar este sistema para el envío y recepción de datos.
32
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Un navegador WAP provee todos los servicios básicos que proporciona un navegador
WEB pero simplificados para operar con recursos limitados. WAP Push permite hacer uso
de mensajes SMS o de paquetes enviados por GPRS para enviar un link a otro servicio
WAP y descargar datos adicionales.
Se trata de un servicio que permite al Servidor enviar datos al Cliente de forma asincróni-
ca (Push) sin hacer uso de ninguna conexión específica. Es muy eficiente porque utiliza
una infraestructura basada en un hardware especial presente en los teléfonos y que los
operadores deben estar preparados para soportar. Los servicios BlackBerry mail y Black-
Berry Messenger que han dado fama a estos dispositivos están construidos utilizando esta
tecnología. Infortunadamente, este servicio solo funciona en teléfonos BlackBerry; el
operador debe realizar cambios en su infraestructura para soportarlo y el usuario tiene
que pagar por él.
Página 33
III - PROCESO
1. Metodología Propuesta
En la propuesta original del presente Trabajo de Grado se planteó la siguiente metodología:
I. Exploración Previa
II. Análisis
Con los datos recopilados, se analizarán las plataformas disponibles más utilizadas;
sus fortalezas y debilidades en cuanto a la implementación de LBS.
Se diseñará una arquitectura acorde con la propuesta, de tal forma que proporcione
todas las funcionalidades extraídas en la fase anterior. Asimismo, se diseñará un LBS
básico que requiera para su implementación la utilización de las funcionalidades pull,
push y tracking, con el fin de probar la arquitectura a medida que es implementada.
V. Implementación
34
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Durante el desarrollo del proyecto, la metodología propuesta resultó ser adecuada en las tres
primeras fases. Las fases IV y V se llevaron a cabo de forma ligeramente diferente.
I. Exploración previa
Durante esta fase de desarrollo fueron exploradas las plataformas para dispositivos
móviles y su relevancia actual en el mercado. Las plataformas consideradas fueron
Apple iPhone OS, Google Android, RIM Blackberry OS, Microsoft Windows Mobile,
y Symbian OS.
El marco teórico se complementó con los estándares de comunicación móvil que tra-
bajan con las plataformas anteriormente mencionadas: GSM, CDMA, GPRS, EDGE,
UMTS y HSDPA.
II. Análisis
Esta fase se centró en analizar cada plataforma para averiguar las facilidades que
proporciona al desarrollador para acceder a las funcionalidades de bajo nivel que son
necesarias para la implementación de servicios LBS de tipo pull, push y tracking.
En todas menos una de las plataformas consideradas (Apple iPhone OS) dichas fun-
cionalidades son fácilmente utilizables por el desarrollador.
Tras analizar las funcionalidades de red de bajo nivel que otorga cada plataforma al
momento de implementar aplicaciones, se observó que todas permiten establecer co-
nexiones TCP por medio de sockets.
Página 35
Comunicación full-dúplex.
Envío y recepción de datos de forma asincrónica.
Las plataformas analizadas permiten la ejecución de varios hilos. Gracias a esto, pue-
de implementarse un mecanismo de espera para eventos asincrónicos.
De esta forma, se plantea una respuesta a la pregunta que motivó el presente Trabajo
de Grado:
36
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Como resultado del paso metodológico III: Diseño de la propuesta, se obtuvo el do-
cumento que especifica un middleware (Anexo 1).
Durante esta fase, se tomó dicho documento y se utilizó para diseñar una arquitectura
para ser implementada en el paso metodológico V.
V. Implementación
El middleware fue probado utilizando las tecnologías EDGE, WiFi y Ethernet (con-
currentemente), con resultados igualmente positivos.
Una vez probado el middleware, éste se utilizó para diseñar un servicio que requiere
la utilización de las funcionalidades Pull, Push y Tracking necesarias para cumplir
con los objetivos de este Trabajo de Grado.
Página 37
3. Reflexión metodológica
Se diseñará una arquitectura acorde con la propuesta, de tal forma que proporcio-
ne todas las funcionalidades extraídas en la fase anterior. Asimismo, se diseñará
un LBS básico que requiera para su implementación la utilización de las funcio-
nalidades Pull, Push y Tracking con el fin de probar la arquitectura a medida que
es implementada.
b) Ejecución ajustada
Se diseñó una arquitectura con la propuesta, de tal forma que proporcionaba to-
das las funcionalidades extraídas en la fase anterior. Se aplazó el diseño del ser-
vicio LBS de prueba para la fase de implementación.
c) Justificación
38
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
V. Implementación
e) Ejecución ajustada
f) Justificación
Página 39
40
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
IV - RESULTADOS
En esta sección se consignan los resultados que fueron obtenidos durante el desarrollo de este
Trabajo de Grado. El orden de aparición corresponde con el orden de ejecución.
Las plataformas para dispositivos móviles que presentan mayor relevancia en la actuali-
dad [MCCR2009], [YUNC2007] son: Google Android OS, RIM BlackBerry OS, Micro-
soft Windows Mobile, Symbian OS e iPhone OS. A continuación un resumen de cada una
desde el punto de vista del desarrollador de aplicaciones.
Página 41
RIM pone a disposición de los programadores un IDE propio, un plugin para Eclipse
y un emulador para cada uno de sus dispositivos. El IDE puede enlazarse con un dis-
positivo real por medio del puerto USB para realizar la depuración paso a paso.
42
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Esta plataforma ha perdido la gran popularidad que disfrutaba hace algunos años de-
bido a las malas políticas de mercadeo de Microsoft [SEGA2009].
1.1.4. Symbian
Página 43
El programador puede desarrollar aplicaciones para Symbian haciendo uso del com-
pilador de C++ que está disponible de forma gratuita, o de un SDK para Java ME.
Dependiendo del fabricante, existen diferentes emuladores para dispositivos que uti-
lizan Symbian. Una aplicación implementada haciendo uso de cualquiera de estas
herramientas tiene acceso a las funcionalidades de red de bajo nivel del dispositivo.
Aunque el SDK se puede descargar gratis, el desarrollador debe pagar para obtener
las firmas digitales que necesita para instalar su aplicación en un dispositivo real.
(Existen modificaciones no autorizadas de hardware que permiten instalar aplicacio-
nes no firmadas). Solo Apple puede desarrollar aplicaciones que se ejecuten concu-
rrentemente, y el acceso a las funcionalidades de red de bajo nivel está muy limitado.
44
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
a) A excepción de Apple iPhone OS, todas las plataformas proporcionan las herra-
mientas y documentación necesarias para el desarrollo de aplicaciones de forma
gratuita y abierta.
b) RIM BlackBerry OS, Symbian OS soportan la tecnología Java ME, mientras que
Google Android OS se basa en Java SE.
c) A excepción de Apple iPhone OS, todas las plataformas permiten que las aplica-
ciones desarrolladas tengan acceso a las funcionalidades de red de bajo nivel de
los dispositivos.
d) A excepción de Apple iPhone OS, todas las plataformas permiten la ejecución
concurrente de varias aplicaciones, al mismo tiempo que el uso de diferentes
threads por cada aplicación.
Página 45
La solución a proponer debe tener la capacidad de implementar LBS en todas sus modali-
dades (Marco Teórico, secc. 2.1) o en cualquier combinación de las mismas. Para este
propósito se halló un conjunto de operaciones básicas que ejecutadas en un determinado
orden exhiben el comportamiento descrito. Este Trabajo de Grado propone dos operacio-
nes básicas genéricas: Invocación de Método Remoto y Generación de Evento Asincró-
nico.
El Cliente envía una solicitud compuesta por un nombre de método y una se-
rie de parámetros.
El Servidor ejecuta un método con los parámetros proporcionados y genera
un resultado.
El Servidor envía el resultado al Cliente.
46
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Una vez definidas las operaciones básicas Invocación de Método Remoto y Generación
de Evento Asincrónico, se expone cómo estas pueden combinarse para implementar cada
tipo de servicio LBS.
Según (Marco Teórico, secc. 2.1), existen dos subtipos de LBS de tipo Pull:
En este caso, el Cliente realiza una Invocación de Método Remoto y envía como
parámetro su propia posición. Si dicha posición no se puede determinar o
Página 47
48
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
El Servidor utiliza una Generación de Evento Asincrónico en el Cliente con una serie
de parámetros para notificar que cierto suceso ha ocurrido.
Página 49
El tiempo real se encuentra limitado por las propiedades de latencia y glitter de la red
que se utilice para la transmisión de los datos.
En los LBS, se conoce como información de posición al conjunto de datos que permite
ubicar un punto sobre el planeta de forma unívoca. Dependiendo del LCS que se esté uti-
lizando, esta información puede estar complementada con datos como orientación, velo-
cidad y altura sobre la superficie. En todo caso, la información de posición consistirá en
una tupla de datos de algún tipo, muy probablemente numérico. Esta tupla puede consi-
derarse como un parámetro (o una serie de parámetros) que puede ser enviado al realizar
una Invocación de Método Remoto o una Generación de Evento Asincrónico.
Como ejemplo, el Cliente puede interrogar al Servidor acerca del valor de una acción en
determinado momento. O el Servidor puede notificar asincrónicamente a un Cliente que
una acción a alcanzado un valor crítico y debe vender. Ninguno de estas operaciones re-
quiere la información de posición.
50
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Página 51
Con los resultados obtenidos anteriormente, se procedió a hallar las características técnicas
más adecuadas para una solución que permita la implementación de las operaciones básicas
Invocación a Método Remoto y Generación de Evento Asincrónico.
52
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
1) Solo está disponible en las redes de telefonía celular; para interactuar con Internet
se requieren adaptadores.
2) WAP puede visualizar contenido de Internet, pero necesita un adaptador interme-
dio que interprete y transforme los datos.
3) La definición de Invocación de Método Remoto requiere la capacidad de generar
un retorno como parte de la misma transacción. En este caso es necesario generar
un Evento Asincrónico aparte para enviar al Cliente el resultado de la invocación.
4) La latencia depende mucho de la configuración del operador y la congestión ac-
tual de la red. Puede ser de algunos segundos, y en ocasiones, minutos.
5) Entre 800ms y 2000ms.
6) [ARZU2008] 500ms-2000ms, GPRS; 500ms-1000ms, EDGE; ~200ms, UMTS;
~100ms, HSDPA.
7) GPRS es práctico hasta ~500kb, dependiendo de la configuración del operador y
la cobertura. EDGE, UMTS son útiles hasta decenas de Mb (Sin embargo, un
dispositivo móvil en general no descarga o envía archivos de ese tamaño).
HSDPA puede manejar voz y video en tiempo real.
Página 53
a) Los sistemas SMS, MMS y WAP han sido utilizados satisfactoriamente en el pa-
sado para la construcción de LBS, y tienen el potencial para la implementación de
las operaciones básicas Invocación de Método Remoto y Generación de Evento
Asincrónico.
b) Los sistemas SMS, MMS, y WAP son prácticamente universales, todas las plata-
formas para dispositivos móviles soportan los protocolos estandarizados.
c) Los sistemas SMS, MMS, y WAP están estrechamente ligados con las redes de te-
lefonía celular, y no hacen parte de la pila de protocolos de IP.
d) La latencia de los sistemas SMS, MMS y WAP tiende a ser muy alta e impredeci-
ble.
e) El sistema BlackBerry Push es muy eficiente, pero solo está disponible para dis-
positivos BlackBerry y es necesario pagar por su utilización.
f) Los protocolos TCP/IP y UDP/IP están soportados por las tecnologías GPRS,
EDGE, UMTS, HSDPA.
g) El protocolo UDP es de uso restringido en muchas redes de telefonía celular.
54
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Es necesario establecer el formato que se utilizará a la hora de transmitir los datos utili-
zando el protocolo seleccionado (TCP/IP). Para esto existen dos posibilidades: transfe-
rencia binaria y transferencia de texto.
La carga útil consiste en un arreglo de bytes. Es muy eficiente, ya que un solo byte
proporciona 255 estados u 8 banderas, lo cual permite enviar toda la información del
sistema (tipo de comando, errores, etc.) utilizando unos pocos bytes.
Al transmitir de esta forma puede hacerse uso del formato XML que evita la presencia
de caracteres especiales y por lo tanto los potenciales problemas de interoperabilidad,
al mismo tiempo que las tramas se hacen legibles para los humanos facilitando así el
trabajo de depuración.
Página 55
56
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
4. Propuesta de Solución
Una vez halladas las características generales que debe implementar la Solución, se procede a
diseñar una propuesta para la misma.
En las secciones anteriores se hallaron las características que debe tener la Solución pro-
puesta para satisfacer todos los objetivos del presente Trabajo de Grado. Estas caracterís-
ticas son:
El documento de especificación tiene como fin dar a los desarrolladores toda la informa-
ción necesaria para implementar el Middleware en una plataforma determinada de tal
forma que pueda interactuar con otras implementaciones del mismo. Por esta razón, la
especificación del Middleware es completamente independiente de la plataforma. Este
documento puede encontrarse en el anexo 1.
Página 57
58
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Al momento de iniciar sesión, el Cliente debe declarar qué tipo de dispositivo intenta co-
nectarse. Esto podría utilizarse en un futuro con fines estadísticos o para dar trato prefe-
rencial a ciertos dispositivos según su tipo:
Seguidamente, el Cliente recibe una cadena de caracteres de hasta 128 bytes correspon-
diente al valor de la variable de sistema connectionID. Esta variable identifica unívoca-
mente la sesión.
La versión del Middleware que será entregada soporta los siguientes tipos básicos de da-
to:
Página 59
Una interfaz implementada por el Cliente con una serie de Eventos Asincrónicos.
Una interfaz implementada por el Servidor con una serie de Métodos Remotos
que retornan un valor o lanzan una Excepción de Servicio.
Una interfaz implementada por el Servidor con una serie de Eventos Asincróni-
cos.
Un nombre de servicio.
60
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
En (fig. 11) puede verse un ejemplo de la Interfaz de Eventos Asincrónicos del lado del
Cliente en un hipotético servicio de Chat, tal como se vería al utilizar el Middleware en
Java ME que se entrega como parte de este Trabajo de Grado:
import co.edu.javeriana.lbs.omni.io.ConnectionException;
import co.edu.javeriana.lbs.omni.service.PushListener;
import co.edu.javeriana.lbs.omni.io.ConnectionException;
import co.edu.javeriana.lbs.omni.service.PullServices;
Página 61
62
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
(fig. 14) presenta un ejemplo de la trama enviada por el Cliente al Servidor para solicitar
la ejecución de un Método Remoto y las posibles respuestas del Servidor (Valor de Re-
torno o Excepción) en un servicio hipotético de Chat.
<?xml version="1.0"?>
<methodCall>
<methodName>chat.pull.method.getPosicionUsuario</methodName>
<params>
<param>
<value>
<array><data>
<value><int>6545</int></value>
</data></array>
</value>
</param>
</params>
</methodCall>
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value>
<array><data>
<value><double>54.4578</double></value>
<value><double>34.5761</double></value>
</data></array>
</param>
</params>
</methodResponse>
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>0</int></value>
</member>
<member>
<name>faultString</name>
<value><string>The service has generated an exception.</string></value>
</member>
<member>
<name>serviceErrorCode</name>
<value><int>5</int></value>
</member>
<member>
<name>serviceErrorDescription</name>
<value><string>EL USUARIO NO EXISTE!</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Página 63
5. Implementación
Tras definir una solución, el siguiente paso consiste en validar su funcionalidad. Con este fin
se diseñó una arquitectura adecuada para la implementación del Middleware OMNI en Java
ME y Java SE tal como se especifica en (Resultados secc. 1.2). La arquitectura puede consul-
tarse en el anexo 2; la documentación en el anexo 3.
5.1. Arquitectura
5.2. Componentes
64
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Es la puerta de entrada a los Servicios OMNI. Cuando una aplicación desea acceder a
un servicio, se conecta con el Redirector para obtener su dirección IP o host. El redi-
rector puede utilizarse para realizar balanceo de carga u operaciones de mantenimien-
to en los servidores que prestan el Servicio OMNI.
Una vez obtenido el host, el Cliente se conecta con el Servidor OMNI e inicia una se-
sión. A partir de ese momento, puede invocar los Métodos Remotos o recibir los
Eventos asincrónicos que hacen parte del Servicio. El Servidor puede a su vez servir
como puente para otros sistemas, como invocación SOAP o webServices.
Página 65
66
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Para desarrollar Servicios haciendo uso del Middleware OMNI se deben seguir los si-
guientes pasos generales:
Página 67
Dadas sus características, el Middleware OMNI puede utilizarse para implementar gran
cantidad de servicios que involucran dispositivos móviles. Ejemplos de aplicaciones po-
sibles en OMNI son:
68
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Página 69
6. Pruebas
En esta prueba, la Latencia se define como el tiempo que toma un mensaje en ir del
Cliente al Servidor y regresar. En pocas palabras, realizar un PING. El Glitter es la des-
viación estándar de la Latencia.
Para hallar estos valores, se diseñó e implementó un sencillo Servicio OMNI con la si-
guiente Interfaz de Métodos y Eventos Remotos en el Servidor:
import co.edu.javeriana.lbs.omni.io.ConnectionException;
import co.edu.javeriana.lbs.omni.service.PullServices;
Se asumió que el tiempo que tarda el Servidor en generar el retorno es constante y cerca-
no a cero.
70
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
La prueba se realizó con 11 longitudes diferentes de la cadena (carga útil). Los resultados
pueden verse en (fig. 16) y (fig. 17). Los datos registrados en cada prueba pueden consul-
tarse en el anexo 7.
~ , "
--ii;- •
•
•
•
~
•
•
•
•
~
•
•
•
Mi1ioo9 ·
,- /
,= /
/
.-
, ~
/
,- /'
,-
,-
,-
Página 71
Como puede apreciarse, hasta los 3500 bytes de carga útil la latencia y el glitter se man-
tienen dentro de los valores esperados para la tecnología que se está utilizando (3G).
Después de ese valor, el glitter aumenta de tal forma que se hace muy difícil establecer
un valor predecible para la latencia.
Durante las pruebas se enviaron decenas de miles de paquetes a través de la conexión sin
registrar nunca la pérdida de uno de ellos. Esto indica que el sistema es confiable.
El servicio chatLBS permite a los usuarios del sistema comunicarse entre sí por medio de
mensajes, al mismo tiempo que visualiza la posición de cada uno de ellos en tiempo real
(Limitado a la latencia del sistema). (fig. 18).
El chatLBS puede representarse como un grafo completo, ya que cada usuario conoce la
posición de todos los demás.
72
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Este servicio es suficiente para validar las funcionalidades del Middleware porque:
import co.edu.javeriana.lbs.omni.io.ConnectionException;
import co.edu.javeriana.lbs.omni.service.PullServices;
Página 73
import co.edu.javeriana.lbs.omni.io.ConnectionException;
import co.edu.javeriana.lbs.omni.service.PushListener;
74
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Tras su implementación, el servicio fue desplegado como puede verse en (fig. 21).
Figura 21.
Despliegue de Prueba (chatLBS)
Cliente
Emulador
BlackBerry OS
Window s
Servidor
chatLBS
Redlrector OMNI
Página 75
Figura 22.
1 Conectar 11 Desconectar
I Iniciar Sesión 11
.. cerrarSesion Establecer 1
~
I ~ I Broadcast
76
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Adicionalmente, algunos métodos pueden no requerir retorno alguno por parte del Servi-
dor (void) ni lanzar ninguna excepción. En este caso, la nueva funcionalidad de Evento
Asincrónico del Cliente al Servidor sirve para implementarlos más eficientemente, ya que
el hilo invocador en la aplicación Cliente transmite los datos y se desbloquea tras recibir
la notificación ACK de TCP.
Página 77
1. Conclusiones
La exploración llevada a cabo sobre las diferentes plataformas disponibles para dis-
positivos móviles muestra que el estándar Java ME está ampliamente soportado y es
una buena elección a la hora de desarrollar aplicaciones fácilmente adaptables a va-
rias plataformas.
Los protocolos de transferencia de datos SMS, MMS y WAP han sido utilizados exi-
tosamente en el pasado para la implementación de servicios en dispositivos móviles.
Sin embargo, dada la tendencia y las características de las redes actuales y futuras
(3G - 4G) es muy probable que estos sean reemplazados por o implementados sobre
la pila de protocolos de IP.
Un LBS de tipo Pull, Push o Tracking puede definirse como un servicio en el cual se
utiliza la información de posición como parámetro.
Las operaciones básicas propuestas y definidas en este Trabajo de Grado como Invo-
cación de Método Remoto y Generación de Evento Asincrónico son suficientes para
la implementación de servicios genéricos para dispositivos móviles.
78
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
2. Trabajos futuros
El Middleware desarrollado cumple con los objetivos para los cuales fue diseñado. Sin em-
bargo, existen diversas opciones que pueden tomarse para retomar este proyecto y comple-
mentarlo.
Página 79
VI - REFERENCIAS
Article
[GANG2004]
Gang, L.; Shang, F.; Jun, S.; Ye, J. & Meiping, F.
PTGRP: an LBS application based on SMS platform
Proc. Joint Conference of the 10th Asia-Pacific Conference on Communications and
the 5th International Symposium on Multi-Dimensional Mobile Communications,
2004, 1, 234-238 vol.1
Standard
[WINE2003]
Winer, D.
XML-RPC Specification
http://www.xmlrpc.com
UserLand Software,
2003
Book
[TANE2003]
Tanenbaum, A. S.
Mendoza, G. T. (ed.)
Redes de computadoras
Prentice Hall,
2003
Booklet
[STEI2006]
Stefan Steiniger, Moritz Neun, A. E.
Foundations of Location Based Services
2006
Article
[SEGA2009]
Segan, S.
If Microsoft Can't Move Faster in Phones, It's Dead
http://www.pcmag.com/article2/0,2817,2341157,00.asp
PC Magazine,
2009, 28
80
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Article
[SASA2007]
Sasaki, A.; Yamauchi, K.; Chan, W.; Cohen, M.; Wei, D. & Cheng, Z.
Innovative Mobile Phone Services Based on Next Generation Infrastructure in Japan
A Survey
Proc. 7th IEEE International Conference on Computer and Information Technology
CIT 2007,
2007
Article
[SADO2007]
Sadoun, B. & Al-Bayari, O.
LBS and GIS Technology Combination and Applications
Proc. IEEE/ACS International Conference on Computer Systems and Applications
AICCSA '07,
2007
Article
[ABIR2008]
ABI Research®,
More than 550 Million GPS – Enabled Handsets Will Ship by 2012
http://www.abiresearch.com/press/1125-More+Than+550+Million+GPS-
Enabled+Handsets+Will+Ship+by+2012
ABI Research®,
2008
Article
[CRTC2008]
Comisión Nacional de telecomunicaciones (Colombia)
Continúa dinámica de crecimiento en el sector de telecomunicaciones
Informe Sectorial de Telecomunicaciones,
2008
Article
[MURP1995]
Murphy, L. D.
Geographic Information Systems: Are They Decision Support Systems?
1995
Página 81
Article
[MCMA2006]
McMahon, M.; Steketee, C.
Investigation of Proposed Applications for LBS Enabled Mobile Handsets
Proc. International Conference on Mobile Business ICMB '06,
2006
Article
[MCCR2009]
McCracken, H.
Smart Phone OS Smackdown
PC World,
2009
Article
[COST2002]
Costa-Requena, J.; Tang, H. & Espigares, I.
Consistent LBS solution in next generations of mobile internet
Proc. Ninth International Conference on Parallel and Distributed Systems,
2002
Article
[YUNC2007]
Cho, Y. C. ; Jeon, J. W.
Current software platforms on mobile phone
Proc. International Conference on Control, Automation and Systems ICCAS '07,
2007
Manual
[GSMA2003]
GSM Association.
Location Based Services
GSM Association,
2003
Techreport
[GSMW2009]
GSM Association.
Market Data Summary
GSM Association, 2009
82
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Article
[ARZU2008]
Aitor Arzuaga Munsuri, Jose Miguel Arzuaga Canals, M. Z. A.
Implementación de aplicaciones de telecontrol sobre redes GPRS
2008
Article
[ADUS2004]
Adusei, I. K.; Kyamakya, K. & Erbas, F.
Location-based services: advances and challenges
Proc. Canadian Conference on Electrical and Computer Engineering,
2004
Página 83
V- ANEXOS
84
Pontificia Universidad Javeriana Memoria de Trabajo de Grado
Página 85