Академический Документы
Профессиональный Документы
Культура Документы
Ingeniera de la Computacin
Por
Miguel ngel Sucre Gonzlez
Presentado por
Miguel ngel Sucre Gonzlez
____________________________
Prof. Ascnder Surez
Jurado
____________________________
Prof. Carlos Figueira
Tutor Acadmico
ii
Resumen
En el mundo de la telefona celular es importante el crecimiento que ha tenido el uso de
la mensajera de texto en los ltimos aos. Gracias a esto la mensajera de texto no slo es
para comunicarse entre personas sino que tambin se utiliza para el entretenimiento,
participacin y diversin de los usuarios, principalmente en la Radio y TV. En respuesta al
nuevo crecimiento de aplicaciones para la mensajera de texto, surge el objetivo de esta
pasanta: la elaboracin de un sistema automatizado para la creacin, mantenimiento, y
reportes de concursos para SMS (Short Message Service). El SMS es un servicio para el envo
y recepcin de mensajes cortos, que funciona sobre las redes de telefona celular digital.
Se desarrollo una primera versin del sistema, llamado ActiveSMS que engloba todas
las tareas que implican crear, mantener y monitorear un concurso SMS, reduciendo los recursos
necesitados por la empresa Conectium Limited para el desarrollo y la puesta en marcha de los
concursos.
iii
Dedicatoria
iv
Tabla de Contenidos
1
Introduccin ...................................................................................................................... 1
2.1.1
Visin................................................................................................................... 3
2.1.2
Misin .................................................................................................................. 3
2.2
2.3
2.3.1
2.3.2
2.3.3
2.4
3
Objetivo General:......................................................................................................... 7
3.2
Marco Terico.................................................................................................................... 8
4.1
4.2
4.3
4.3.1
4.4
4.5
4.6
4.6.1
4.6.2
4.6.2.1
Fase de Inicio................................................................................................. 13
4.6.2.2
4.6.2.3
Construccin .................................................................................................. 14
4.6.2.4
Transicin ...................................................................................................... 14
4.6.3
4.7
4.7.1
4.7.1.1
Clasificacin de Patrones................................................................................... 15
Patrones de Creacin..................................................................................... 15
v
4.7.1.3
Patrones de Comportamiento......................................................................... 17
5.1.1
5.1.2
5.1.3
5.1.4
5.2
4.7.1.2
5.2.1
Actores............................................................................................................... 21
5.2.2
5.2.2.1
5.2.2.2
5.2.2.3
Mdulo Web:.................................................................................................. 22
5.2.2.4
5.3
5.4
5.5
5.6
Fase de Elaboracin........................................................................................................ 24
6.1
6.2
6.2.1
6.2.1.1
6.2.2
6.2.2.1
6.2.2.2
6.2.2.3
6.2.3
Vista de Implementacin.................................................................................... 26
6.2.4
6.3
6.3.1
6.3.2
6.3.3
6.3.4
6.4
6.5
7.1.1
7.1.1.1
Manejador de Sesiones:................................................................................. 33
7.1.1.2
Sesiones ........................................................................................................ 34
7.1.1.3
7.1.1.4
Concursos...................................................................................................... 35
7.1.1.5
7.1.2
7.1.2.1
IMG-Queue .................................................................................................... 36
7.1.2.2
Subsistema de Conexiones............................................................................ 37
7.1.3
7.2
Mdulo de Persistencia...................................................................................... 37
8.1.1
Vistas................................................................................................................. 40
8.1.2
Controlador ........................................................................................................ 40
8.1.3
Modelo............................................................................................................... 40
8.2
8.3
Mdulo de Persistencia.............................................................................................. 41
8.4
9.2
9.3
10
Conclusiones............................................................................................................... 45
11
Recomendaciones....................................................................................................... 47
12
Notas ............................................................................................................................ 48
13
Referencias Bibliogrficas.......................................................................................... 50
14
Apndices .................................................................................................................... 51
vii
Lista de Figuras
Figura 1.Funcionamiento Del SMS. [2]........................................................................................ 9
Figura 2. Arquitectura de tres capas. [6].................................................................................... 11
Figura 3. RUP en dos dimensiones. [7] ..................................................................................... 13
Figura 4 Plan de desarrollo del software. Elaboracin propia. ................................................... 23
Figura 5. Vista Implementacin. Elaboracin Propia. ................................................................ 27
Figura 6. Vista de Despliegue. Elaboracin Propia.................................................................... 28
Figura 7. Fbrica Abstracta. [8] ................................................................................................. 29
Figura 8. Decorador. [8] ............................................................................................................ 30
Figura 9. Patrn DAO. [12]........................................................................................................ 31
Figura 10. Flujo de mensajes. Elaboracin Propia .................................................................... 34
Figura 11. Flujo del IMG-Queue. Elaboracin Propia ................................................................ 36
Figura 12. Arquitectura de Hibernate. [12]................................................................................. 37
Figura 13. Arquitectura Struts. [13]............................................................................................ 39
viii
Lista de Abreviaciones
API Application Programming Interface
CIMD Computer Interface to Message Distribution
CNTM Conectium Limited
EMI External Machine Interface
GSM Global System for Mobile Communications
HQL Hibernate Query Language
HTML Hyper Text Mark up Language
HTTP Hyper Text Transfer Protocol
IMG Internet Message Gateway
IP Internet Protocol
JSP Java Server Pages
OIS Open Interface Specification
PDU Protocol Data Unit
RUP Rational Unified Process
SMPP Short Message Peer to Peer
SMS Short Message Service
SQL Structured Query Language
TCP Transfer Control Protocol
UCP Universal Computer Protocol
UML Unified Modelling Language
URL Universal Resource Locator
VPN Virtual Private Network
ix
1 Introduccin
La popularidad de la mensajera de texto ha venido aumentando aceleradamente a lo
largo de los ltimos aos en Venezuela y Latinoamrica en general. Gracias a su bajo costo y
gran potencial de aplicaciones, los mensajes de texto son la primera forma de comunicacin a
travs de las redes mviles en Venezuela. Hoy en da aproximadamente el 60% de los
venezolanos estn en capacidad de utilizar este servicio con expectativas de crecimiento
bastante altas.
La mensajera de texto no solo sirve para comunicarse entre los suscriptores de las
compaas de telefona celular, adems sirven para el entretenimiento (Trivias, Votaciones,
Comentarios, etc.), consultas y otra infinidad de servicios de informacin tambin llamados
servicios SMS Premium.
El objetivo principal del proyecto hacer un sistema para crear, administrar y monitorear
un concurso SMS totalmente adaptable a las necesidades del usuario. Para lograr esto se
requiere manejar cual es la lgica de los tipos concursos, los distintos comportamientos que
deben tener los concursos durante la sesin de juego. Por otro lado se necesita la conexin con
la red celular para el envo y recepcin de mensajes, y por ltimo una consola Web
administrativa que permita manipular los concursos.
2 Entorno Empresarial
En este captulo se describe el entorno en el cual el proyecto de pasanta fue
desarrollado, con el fin de conocer a la empresa Conectium Limited. Se expone la misin y
visin de esta empresa, luego la trayectoria de Conectium Limited en el mbito internacional y
en Venezuela, seguido de la organizacin y estructura, y finalmente la ubicacin del pasante
dentro de la empresa.
2.1
2.1.1
Misin
Conectium Limited, se propone obtener la mayor base de suscriptores de comunicacin
2.2
una empresa que ha incrementado su cartera de productos y servicios para ofrecer aplicaciones
como portales SMS, WAP entre otros, desarrollo de contenidos, descargas de tonos para
celulares, imgenes y video, etc.
2.3
2.4
complicada debido a que, primero se necesita desplegar el concurso, y luego configurar los
sistemas que procesen mensajes (IMG) segn los requerimientos de cada pas, lo cual implica
tiempo fuera del aire y probables conflictos con otros servicios. Por ejemplo, si una trivia ya se
encuentra activa en Venezuela (Movistar, Movilnet, Digitel) con el numero de acceso 1515, y la
palabra clave F.* basada en expresiones regulares; de igual manera se quiere poner en
funcionamiento una votacin en Venezuela y en Mxico utilizando tambin el 1515 con la
palabra clave Futbol, esta trivia generar conflictos con la anterior.
Se puede concluir que estos procesos son muy lentos y requieren mucho personal, lo
cual genera retrasos de respuesta al cliente, mayor probabilidad de fallas y poca reutilizacin de
software. De all surge otro objetivo del proyecto de pasanta que consiste en desarrollar una
consola o portal Web desde donde el cliente de Conectium Limited o el analista de producto
responsable puedan crear de forma automatizada los concursos. De esta forma se mejora la
eficiencia dentro de la empresa y se brinda mejor calidad de servicio a los clientes.
3.1
Objetivo General:
Disear e implementar una plataforma que integre las funcionalidades de creacin,
mantenimiento y reportes de todo tipo de concursos SMS. Esta plataforma estar constituida
por una herramienta Web y un sistema de procesamiento de mensajes de texto.
3.2
Objetivos Especficos:
Desarrollar un programa que permita manejar las sesiones y la interaccin entre los
usuarios y los concursos, utilizando patrones de diseo de tipo estructural, creacin y
comportamiento. Mdulo de Manejo de concursos y procesamiento de sesiones.
Implementar varias interfaces con el sistema IMG (Internet Message Gateway) para la
transmisin y recepcin de mensajes de texto. Mdulo de Conexin con la red mvil celular.
Desarrollar una aplicacin Web, utilizando el patrn de diseo MVC Modelo Vista
Controlador, para la administracin, generacin y reportes de los concursos SMS.
4 Marco Terico
En este captulo, sern definidos algunos trminos y conceptos especficos del tema a
tratar. Son tomados de varios autores reconocidos en el rea.
.
4.1
Definicin de SMS
SMS significa Servicio de Mensajes Cortos (En ingls, Short Message Service). Es un
mtodo de comunicacin que enva texto entre telfonos celulares. Tambin es posible desde
computadoras o dispositivos mviles, a telfonos celulares y viceversa. Se le llama corto
porque el tamao mximo del mensaje es de 160 caracteres (letras, nmeros o smbolos del
alfabeto Latino). Para otros alfabetos como el chino, el tamao mximo es de 70 caracteres. [2]
El SMS fue creado en Europa a finales de los aos 1980s cuando se incluyo dentro de
la tecnologa GSM, inicialmente se ide para dejar mensajes cortos a usuarios de la telefona
celular para cuando tuviesen el telfono apagado o sin cobertura. [Ob. Citada]
4.2
Los telfonos celulares utilizan un canal especial de comunicacin con la celda, llamado el
canal de control, que se utiliza para mantener en la red al usuario, hacer y recibir llamadas. El
canal de control funciona como va para enviar los SMS. Cuando se enva un SMS, el telfono
desde donde se origina lo enva a la celda a travs del canal de control, luego va desde la torre
hasta el SMS Centre, el cual lo redirecciona hasta la otra torre donde se encuentra el telfono
destinatario, una vez ah la torre hace la entrega. [Ob. Citada]
4.3
Protocolos de comunicacin
"Para la transmisin y recepcin de mensajes SMS, los SMSC tienen interfaces de redes
cableadas, as como tambin interfaces con la red mvil. Se han definido un nmero de
protocolos para poder interactuar con los SMSC desde las redes cableadas:
4.4
Protocolo SMPP
"El SMPP es un protocolo estndar de las telecomunicaciones para intercambiar
mensajes SMS entre dos nodos entidades SMS como lo son los SMS Centers Frecuentemente
es utilizado para permitir a las aplicaciones de terceros (Ej. Proveedores de servicios de valor
agregado como lo es Conectium Limited) enviar y recibir mensajes de forma masiva. EL SMPP
fue originalmente diseado por Aldiscon, una pequea empresa irlandesa. En 1999, paso a ser
parte del SMS Forum. [4]
Est basado en pares de solicitud y respuesta de PDUs (Protocol Data Units, o
paquetes) intercambiados por conexiones TCP/IP o X.25 SVC3. Los PDU son codificados en
formato binario por eficiencia. Las versiones mas utilizadas son la 3.3 y la 3.4 que permite la
opcin de un transmisor-receptor sobre una sola conexin. [Ob. Citada]
4.5
10
Una arquitectura de tres capas, incluye una capa superior donde residen la interfaz
grfica y servicios del usuario. Una segunda capa que se encarga de proveer servicios para el
manejo de procesos (administracin y monitoreo) que son utilizados entre aplicaciones. La
segunda capa o capa intermedia tambin es llamada servidor de aplicaciones. La centralizacin
de los procesos lgicos hace que la administracin y los cambios sean mucho ms fciles,
simplemente se realiza el cambio una sola vez dentro del servidor de la capa de aplicacin y
automticamente est disponible para todos los usuarios. Con otro diseo de arquitectura se
tendra que hacer el cambio en cada aplicacin del usuario. [Ob. Citada]
La tercera capa o capa de datos, provee la funcionalidad del manejo optimizado de
servicios de datos y archivos. El manejo de datos asegura que la data sea consistente en todo
el sistema distribuido, utilizando funciones como bloqueo, consistencia y replicacin de datos.
La conectividad entre las capas puede ser modificada segn los requerimientos de datos y
servicios por parte del usuario. [Ob. Citada]
4.6
(RUP). Se dice que fue basada porque no se sigui estrictamente sus lineamientos, sin
embargo se utilizaron varios aspectos y mejores prcticas que ayudan desarrollar un mejor
software.
En pocas palabras, RUP es un proceso de desarrollo de software. Provee un enfoque
disciplinado para asignar tareas y responsabilidades dentro de una organizacin de desarrollo.
Su principal objetivo es generar software de alta calidad que cumpla con las necesidades de los
usuarios finales, dentro de un tiempo y
prcticas del desarrollo de software, comprobadas a lo largo del tiempo por organizaciones
exitosas:
desarrollar
iterativamente,
manejar
requerimientos,
arquitectura
basada
en
4.6.1
12
4.6.2
compuesta por varios ciclos, cada ciclo representa una nueva generacin del producto. [Ob.
Citada]. RUP divide cada ciclo en cuarto fases:
4.6.2.1 Fase de Inicio
Durante la fase de inicio, se establecen los casos del negocio para el sistema y se
define el alcance del proyecto. Se identifican los actores que interactuarn con el sistema, esto
implica definir los casos de uso y describir a los ms significantes. Tambin se incluyen los
factores de xito, riesgos potenciales y la estimacin de recursos necesarios para el proyecto.
[Ob. Citada]
4.6.2.2 Fase de Elaboracin
El propsito de la fase de elaboracin es analizar el dominio del problema, establecer
una arquitectura base, crear el plan de desarrollo, y eliminar los riesgos ms grandes del
proyecto. Para alcanzar los objetivos es necesario tener una visin amplia y poco profunda del
proyecto. Las dediciones de la arquitectura deben ser hechas con el entendimiento total del
sistema: su alcance, su funcionalidad principal y los requerimientos no funcionales. Durante las
primeras iteraciones de esta fase se obtiene un prototipo ejecutable de la arquitectura. La idea
13
es que el esfuerzo se concentre en los casos de uso crticos, que usualmente representan los
mayores riesgos tcnicos. [Ob. Citada]
4.6.2.3 Construccin
Durante esta fase, todos los componentes y funcionalidad restante de la aplicacin son
desarrollados e integrados dentro del producto, al mismo tiempo de que son cuidadosamente
probados. La fase de construccin representa el proceso de manufactura del producto y hace
nfasis en el manejo de recursos, optimizar costos, cumplir con el plan de trabajo y asegurar la
calidad. [Ob. Citada]
4.6.2.4 Transicin
Tiene como propsito la transicin del producto a los usuarios finales. Incluye
actividades como: pruebas de versiones beta, operacin paralela con sistema el cual se
reemplaza, adaptacin de bases de datos, entrenamiento de usuarios, pasar el producto a los
equipos de ventas. Tambin se hace un esfuerzo en ajustar, corregir errores, y mejorar la
usabilidad y el desempeo del software. [Ob. Citada]
Cada una de estas fases concluyen con un hito bien definido, en cada hito se toman
decisiones crticas, por ende se deben cumplir los objetivos claves. Cada una tiene un propsito
distinto y se pueden realizar una o ms iteraciones en cada fase, segn el plan de desarrollo.
[Ob. Citada]
4.6.3
14
4.7
Patrones de Diseo
Los patrones de diseo son descripciones de objetos y clases que se comunican entre s
y que son adaptados para resolver un problema de diseo en un contexto determinado. [8] En
general un patrn tiene cuarto partes esenciales:
El nombre del patrn es un trmino que se utiliza para describir un problema de diseo,
y su solucin en una palabra o dos. El problema describe cuando aplicar el patrn, explica el
problema y el contexto para el cual es utilizado. La solucin describe los elementos que
conforman el diseo, sus relaciones, responsabilidades y colaboraciones. La solucin no
describe una solucin concreta en particular, ya que un patrn es una plantilla que puede ser
aplicado en distintas soluciones. Las consecuencias son los resultados y costos de haber
aplicado el patrn. [Ob. Citada]
4.7.1
Clasificacin de Patrones
Los patrones de diseo se clasifican de dos formas: la primera, por su propsito y la
segunda, por su alcance. Los patrones pueden tener propsitos de creacin, estructural o de
comportamiento. Los patrones de creacin se enfocan de la construccin de los objetos, los
estructurales manejan la composicin de clases u objetos, y los patrones de comportamiento se
caracterizan por la forma en que las clases u objetos interactan y distribuyen
responsabilidades. El otro criterio de alcance especifica si el patrn se aplica a una clase o a
objetos. [Ob. Citada]
4.7.1.1 Patrones de Creacin
Bsicamente abstraen el proceso de instanciacin. Ayudan a hacer un sistema
independientemente de cmo son creados, compuestos y representados sus objetos. Un patrn
de creacin para una clase utiliza la herencia para variar el tipo de clase concreta que ha sido
creada; en cambio para los objetos, el patrn delegar la instanciacin a otro objeto. [Ob.
Citada]
Los patrones de creacin son importantes en sistemas que dependen cada vez ms en
la composicin de objetos que en la herencia de clases. Mientras esto ocurra, el nfasis se aleja
15
En el caso de las clases los patrones de comportamiento utilizan herencia para distribuir
el comportamiento entre ellas. Un ejemplo es el patrn Mtodo Plantilla, que es una definicin
abstracta de un algoritmo, lo define paso a paso. En el caso de patrones de comportamiento
para objetos utilizan composicin en vez de herencia. Algunos describen como un grupo de
objetos cooperan para realizar una tarea que ningn objeto puede llevar a cabo solo. [Ob.
Citada]
Los patrones de comportamiento ms comunes son: Interpretador, Mtodo Plantilla, Cadena
de Responsabilidad, Comando, Iterador, Mediador, Memento, Flyweight (Peso mosca),
Observador, Estado, Estrategia y Visitante.
17
5 Fase de Inicio:
Este captulo presenta todas las actividades realizadas durante la fase de inicio de la
metodologa RUP. Tambin se sealan algunos artefactos resultantes de las actividades.
5.1
Dada la complejidad del proceso y los retrasos en el tiempo de entrega hacia los
clientes, se ide una plataforma interactiva (ActiveSMS) desde donde los clientes pueden
realizar cualquier tipo de concurso SMS de manera fcil y rpida, la plataforma tiene la
funcionalidad de:
Crear, modificar y eliminar concursos SMS (Primera fase slo Trivias y Comentarios) a
travs de un portal Web.
5.1.1
18
Para poder participar y llevar a cabo un concurso, es necesario enviar un mensaje desde
un telfono celular con la palabra clave indicada a un nmero determinado y luego el operador
telefnico redirecciona el mensaje a los sistemas de Conectium Limited. Cuando el sistema
ActiveSMS recibe el mensaje, verifica la palabra clave y si corresponde a un concurso activo, se
crea una sesin entre el concurso y el nmero telefnico desde donde se encuentra
participando la persona. A partir de este momento, todos los mensajes recibidos se dirigirn
directamente hacia la sesin del concurso, siempre y cuando est activa.
Una vez que llega el mensaje a la sesin del concurso, es procesado y se responde de
una forma especfica. La idea es que este comportamiento de procesamiento y respuesta pueda
ser extendido, modificado o combinado con otros dependiendo de los requerimientos
especificados por el cliente. En fin, la principal funcin del mdulo de manejo de los concursos
es procesar los mensajes entrantes, verificar el contenido y dar un mensaje de respuesta a
solicitud previa.
Mdulo de Conexin con la red mvil celular. Cmo se envan y reciben los
mensajes de texto?
permita establecer una comunicacin de mensajes desde ActiveSMS con el IMG y viceversa.
Sin embargo el IMG ya posee una interfaz para conectarse con otros sistemas a travs
de una llamada HTTP. Esta forma de integrarse con el IMG es mucho ms sencilla y rpida
aunque no tan robusta. De todas maneras se implementar una interfaz adicional en el modulo
de conexin conjuntamente con el mdulo Web, para proveer la opcin de comunicarse con
el IMG de esta forma.
5.1.3
5.1.4
persistencia que funciona independientemente del manejador de datos, es decir, los datos se
pueden almacenar en una base de datos, un archivo XML, etc.
5.2
5.2.1
Actores
Nombre
Descripcin
Rol
Gerente de la plataforma
Usuario Gerente
Usuario Monitor
Usuario Final
5.2.2
Casos de Uso
21
3. Ver resumen/Ver detallado de todos los mensajes. Se presenta de una forma organizada
el movimiento de los mensajes procesados por la plataforma.
5.3
22
5.4
importantes que pudiesen afectar a la calidad final del producto a desarrollar. Los ms
importantes fueron los siguientes:
Para una descripcin ms detallada, que incluye la magnitud, los impactos, los
indicadores y la estrategia de mitigacin ver el Apndice D.
5.5
5.6
Hitos Alcanzados
Arquitectura preliminar.
23
Fase de Elaboracin
Durante esta fase se concibe el dominio del problema, se analiza y se identifican los
casos de uso ms riesgosos del proyecto. El objetivo fundamental de esta fase es minimizar
estos riesgos que ponen en juego el xito del desarrollo. Durante esta fase se realizaron las
actividades propuestas por la metodologa RUP, de las cuales se generaron los siguientes
artefactos:
6.1
Estas vistas capturan las decisiones ms significativas del diseo, mostrando como la
arquitectura se descompone en componentes, y como stos estn interrelacionados entre s.
Las decisiones tomadas de diseo deben estar estrechamente relacionadas con los
requerimientos, funcionales y no funcionales del software, sin embargo estas decisiones
tambin afectan a los requerimientos y en diseos futuros. [Ob. Citada]
Se utiliza el Lenguaje de Modelado Universal (UML), como notacin de todas las vistas
de la arquitectura. En la metodologa RUP se llaman las 4+1 vistas que son descritas a
continuacin a excepcin de la vista de proceso:
6.2
6.2.1
ilustran los distintos escenarios en los cuales pueden ser ejecutados los casos de uso. Los
casos de uso son descripciones de la interaccin entre un usuario y el sistema. Los casos de
uso sirven como contrato entre el cliente y el desarrollador y son una parte esencial para las
siguientes actividades durante el proceso de desarrollo. En esta vista se incluyen los diagramas
24
6.2.2
Vista Lgica
"Para entender la estructura y la organizacin del diseo del sistema utilizamos la vista
lgica, ya que ilustra los subsistemas o mdulos, paquetes y clases que componen a toda la
arquitectura del sistema. Tambin representa el dominio y la solucin del problema. Esta vista
se refina a lo largo de las iteraciones del proceso de desarrollo. [Ob. Citada]
Los artefactos que se utilizaron para describir esta vista son: el modelo conceptual y el
diagrama de clases. Tambin sealamos los patrones que utilizamos en el diseo de los
distintos mdulos del sistema, que explican detalladamente el porqu y cul es la ventaja de
utilizar este tipo de patrones dentro del sistema ActiveSMS.
6.2.2.1 Modelo Conceptual o del Dominio
Aqu se describen todos los aspectos sobre el problema a resolver, este modelo no
contiene ningn tipo de solucin solo se encarga de modelar y relacionar los conceptos de la
realidad que rodean al problema que se quiere resolver. Ver apndice H.
6.2.2.2 Diagramas de Clases
El Diagrama de Clases es el diagrama principal de diseo y anlisis para un sistema.
En l, la estructura de clases del sistema se especifica, con relaciones entre clases y
estructuras de herencia. Durante el anlisis del sistema, el diagrama se desarrolla buscando
una solucin ideal. Durante el diseo, se usa el mismo diagrama, y se modifica para satisfacer
los detalles de las implementaciones. La definicin de clase incluye definiciones para atributos y
operaciones. [Ob. Citada]
25
Vista de Implementacin
En esta vista se describir la organizacin esttica del proyecto, es decir, cmo estn
organizados los mdulos, subsistemas o paquetes del sistema. Esta vista tiene como objetivo
guiar el desarrollo del software, distribucin, agrupamiento y visibilidad. Adems esta vista sirve
para la asignacin de requerimientos al equipo de desarrollo, para la planificacin de costos y
tiempos, para el monitoreo y justificar la reusabilidad, portabilidad y seguridad del software.
[Ob. Citada]
Para visualizar mejor qu clases estructuran cada mdulo del sistema ActiveSMS, se
recomienda ver el diagrama de clases. A continuacin se presenta la Fig. 5 que contiene la
distribucin de los subsistemas y paquetes.
6.2.4
Vista de Despliegue
El sistema ActiveSMS, despus de haber estado en pruebas servidores de desarrollo
Los telfonos celulares envan el mensaje al SMS Center, este mismo reenva el
27
mensaje hacia el IMG a travs de un enlace dedicado (VPN) utilizando varios protocolos,
generalmente el mas utilizado es el SMPP. Una vez que llega al IMG se genera una llamada
HTTP al servidor de aplicaciones ActiveSMS, quien da el mensaje de respuesta y se enva por
el mismo camino hasta el usuario final.
Hardware
Servidor de Aplicaciones para ActiveSMS (Web, Base de Datos, Colas): HP ProLiant DL320
(Rack). Especificaciones: Intel Pentium D con EM64T, 2 GB de RAM, Unidad de disco tipo Hot
plug 3.5 SATA
Software
Servidor de Aplicaciones (Web, Base de Datos, Colas):
28
6.3
6.3.1
Decisiones de Diseo
Mdulo de Lgica de Concursos y Manejo de sesiones
Para el diseo de este mdulo se aplicaron patrones de tipo estructurales, de
Mtodo Plantilla: se utiliza para especificar los pasos del algoritmo que maneja los
estados de un concurso especifico. Se utiliza conjuntamente con los decoradores para
manipular el comportamiento de los concursos.
Singleton: son utilizados para el manejo de sesiones, concursos y telfonos de prueba.
La idea es tener slo una instancia de estos manejadores de modo que no es necesario utilizar
varias instancias a la vez. Otra de las razones es para tener una lista de atributos que se
pueden compartir entre sesiones.
29
Cul es la ventaja? La principal ventaja de utilizar este patrn es poder realizar varias
combinaciones de varios comportamientos a la vez, esto da la gran flexibilidad de crear un
concurso con las funcionalidades deseadas. Por ejemplo, si un cliente necesita una Trivia con
preguntas aleatorias, puntaje y que d un premio al n-simo ganador, no es necesario
implementar una trivia con estos comportamientos, con slo aplicarle los decoradores deseados
obtenemos el comportamiento que necesitemos.
6.3.2
todos los mensajes entrantes hacia un servidor de colas, para luego ser procesado por el
30
mdulo de manejo de concursos, que se conectara a travs de este mdulo. Una vez
procesado, se genera un mensaje de respuesta que es enviado de nuevo al servidor de colas y
finalmente entregado al IMG para ser remitido a la red celular.
Otra solucin fue la idea de crear un Servlet que hiciera la misma funcin de recibir
mensajes a travs de una solicitud HTTP. La ventaja de esta propuesta es que el IMG ya posee
una forma de enviar solicitudes HTTP, entonces no se necesitara modificar nada del IMG, slo
configurarlo para que enve las solicitudes hacia el sistema ActiveSMS.
6.3.3
31
6.3.4
Se toma la decisin de utilizar el patrn MVC (Modelo, Vista, Controlador) como base del
mdulo Web.
6.4
Usabilidad: la interfaz Web debe ser rpida de usar, intuitiva y con la misma apariencia
que utilizan los otros sistemas de Conectium Limited.
Disponibilidad: es necesario que el sistema est activo 99% del tiempo, debido que los
concursos pueden ser utilizados a cualquier hora.
Seguridad: todos los mdulos deben estar protegidos, especficamente el mdulo Web
que puede ser visto por el pblico.
6.5
Hitos Alcanzados
7 Fase de Construccin I
Este captulo presenta la primera fase de construccin del proceso de desarrollo, la cual
comprende las implementaciones completas del mdulo de manejo de concursos y el mdulo
de conexin con la red celular diseados en la fase anterior. Tambin comprende la
realizacin de las primeras pruebas de funcionalidad y prueba de la arquitectura.
7.1
7.1.1
lenguaje Java 5. Puede ejecutarse como una aplicacin estndar, o a travs de una aplicacin
Web (J2EE). Para esta primera fase solo se implementaron las Trivias. Sus componentes
principales son los siguientes:
33
Vale la pena destacar que las sesiones activas se almacenan en una lista, sin embargo
existen concursos que no se necesitan almacenar. Adicionalmente existe un hilo que revisa
cada minuto las sesiones activas, y elimina aquellas que su tiempo de vida ha expirado o que
su estado es inactivo.
7.1.1.2 Sesiones
Las sesiones se implementan como una clase que extiende de la clase padre Sesion.
Cada concurso implementa su clase sesin, que contiene todo lo que implica la mecnica de
funcionamiento. Su responsabilidad es determinar como debe responder el concurso a un
mensaje entrante. El comportamiento de la sesin es posible alterarlo implementando uno o
varios decoradores para esta clase.
34
Identificacin por palabra clave (Keyword): es cuando el contenido del primer mensaje
entrante contiene una o varias palabras que identifica al concurso. La mayora usan esta
modalidad ya que es posible compartir un mismo shortcode para varios concursos. Por
ejemplo, cuando llega un mensaje desde el shortcode 8080 con la palabra Futbol, el
manejador elige el concurso que corresponde a esa palabra clave.
Identificacin por hora: es cuando la hora del primer mensaje entrante cae dentro de
un intervalo de un concurso previamente configurado. Se utiliza la mayora de las veces
para concursos de tipo comentario, se puede compartir el shortcode siempre y cuando
los intervalos no se solapen. Por ejemplo, un programa de radio que dura desde una
hora determinada a otra quiere recibir los comentarios de los radio escucha. Entonces
se configura el concurso (en este caso comentarios) en el sistema y todos los mensajes
que lleguen dentro del perodo del programa sern identificados.
Es importante saber que los concursos tienen fecha de inicio y una de finalizacin, la
identificacin de un concurso por parte del manejador depender de estas fechas.
7.1.1.4 Concursos
Son las sub-clases que se derivan de la clase padre Concurso y forman toda la variedad
de concursos del sistema. Su nica funcin es almacenar toda la informacin referente al
concurso. Por ejemplo, la clase Trivia contiene la coleccin de preguntas, respuestas, puntaje,
etc.
35
36
La forma ms comn del IMG para conectarse con la red celular es a travs de una
conexin SMPP con el SMSC del operador telefnico. Sin embargo en esta fase se implement
una forma de conexin a travs de un MODEM GSM, utilizando el API de SMSLib v 1.0 lo cual
facilit el proceso de pruebas.
7.1.3
Mdulo de Persistencia
El mdulo de persistencia es implementado utilizando la herramienta Hibernate 3
(versin para Java) que permite trabajar objeto/relacional y generar sentencias SQL [16], con el
fin de poder utilizar un manejador de base de datos para almacenar los objetos entidad en
tablas. El mdulo de manejo de concursos y el mdulo Web utilizan el de persistencia para
obtener y almacenar la informacin del repositorio de datos. Durante el proyecto se utiliz el
manejador relacional de base de datos PostgreSQL 8.0.
37
7.2
Hitos Alcanzados
38
8 Fase de Construccin II
En este captulo se presenta la segunda fase de construccin del sistema, que abarca
principalmente la implementacin del mdulo Web y la parte restante del mdulo de
persistencia. Adicionalmente se agregaron nuevos requerimientos dentro de los mdulos de
manejo de concursos. Finalmente se realizaron algunas pruebas del sistema.
8.1
Mdulo Web
Este mdulo utiliza una arquitectura de 3 capas, que son las siguientes: La capa de
presentacin representada por las pginas, la capa de aplicacin que es manejada por el
servidor Web y la capa de datos en la cual se utiliza el mdulo de persistencia de datos.
39
8.1.1
Vistas
Las vistas son implementadas utilizando pginas JSP + Struts TagLibs + StrutsForm. En
las primeras se encuentra todo el diseo grafico y la informacin que est contenida en los
formularios de Struts. Previamente el controlador carga la informacin de la base de datos en
los formularios de Struts, luego esta informacin se despliega en el navegador, segn los Tags
de Struts colocados dentro de las paginas JSP.
8.1.2
Controlador
Es manejado por el Struts Servlet el cual se encarga de recibir la peticin HTTP del
navegador, busca que accin se necesita realizar, la ejecuta, carga el formulario de Struts y
luego redirecciona a la pgina JSP indicada.
8.1.3
Modelo
La capa del modelo de datos, viene directamente desde los objetos del negocio a travs
8.2
sistema ActiveSMS, se utiliza un Servlet que atiende peticiones HTTP para recibir los mensajes
que el IMG enva y viceversa. Esta parte del mdulo Web es una implementacin del
subsistema de conexiones que se describi anteriormente, slo que esta vez se usa
conjuntamente con un Servlet. A continuacin se describe el proceso:
8.3
Mdulo de Persistencia
En esta segunda parte de construccin de este mdulo, se complet la implementacin
de todas las interfaces y fabricas, que son necesarias para el correcto funcionamiento del
mdulo Web.
Modificacin de archivos de mapas de Hibernate: se revisaron los archivos de mapas
de objetos para que cumplan correctamente con las relaciones entre objetos y colecciones, de
tal modo evitar as problemas cuando se realicen operaciones sobre estos.
Por ejemplo, una Trivia hace referencia a una lista de preguntas que a su vez hace
referencia a un conjunto de respuestas, al editar o eliminar una pregunta, las respuestas
pueden quedar sin relacin, lo que llevara a dejar datos no relacionados, y a generar un error.
Por ltimo se prepar el cdigo para las consultas HQL que hacen los reportes de
trfico de mensajes, sorteos de varias modalidades, ms puntos por participante, filtros, etc.
8.4
Hitos Alcanzados
41
9 Fase de Transicin
En este captulo final se presenta un resumen de ajustes y pruebas realizadas al sistema
ActiveSMS durante todo el proceso de desarrollo. De la misma forma, durante esta fase nuevos
requerimientos fueron solicitados por Conectium Limited no obstante, se tom la decisin de
implementar algunos y les dems se planificaron para versiones futuras. Para finalizar se
realiza un resumen del estado actual del sistema.
9.1
concurso: los comentarios para programas de radio y TV. Ya que este tipo de concursos no
son complejos ni requieren de mucha codificacin o pruebas, se decidi implementarlos dentro
del sistema.
9.2
pruebas del sistema; sin embargo durante la fase de transicin fueron mucho ms extensas con
el fin de verificar el correcto funcionamiento de todos los casos de usos y los requerimientos no
funcionales. Los tipos de pruebas aplicados durante todo el desarrollo fueron:
Pruebas Unitarias.
Pruebas de Integracin.
Pruebas Funcionales.
Las pruebas contra los requerimientos funcionales que se realizaron en esta fase fueron
hechas utilizando los casos de uso del sistema y sus posibles escenarios, se probo casi la
totalidad de todas las funciones posibles, encontrando en el camino varios errores que se
corrigieron.
9.3
anteriormente. Bsicamente, se crean y configuran los concursos va el mdulo Web que son
guardados en la base de datos (mdulo de persistencia), luego cuando llegan los mensajes por
el mdulo de conexin con la red celular, el sistema puede empezar a procesar mensajes y
comienza el flujo del juego (mdulo de lgica de concursos) hasta que finaliza la interaccin con
el usuario.
Hasta ahora, los concursos disponibles en el mdulo de lgica de concursos son: Trivias
y Comentarios, los cuales son configurados a travs del mdulo Web. Dentro de las Trivias
tenemos varias opciones como, decidir si la Trivia acumula puntos, si las preguntas tienen
orden secuencial o aleatorio, si la trivia da un premio, etc. En una versin futura se piensan
agregar ms comportamientos u opciones a las trivias, as como tambin otros tipos de
concursos como Votaciones, Loteras, Pruebas de admisin, etc.
Por otro lado, el mdulo Web slo maneja reportes sencillos de trfico, realiza sorteos y
contiene un pequeo buscador de mensajes enviados y recibidos. Para la prxima versin se
requieren hacer reportes grficos, buscadores ms avanzados, sorteos con distintas
modalidades, en fin, una serie de mejoras a nivel de reportes Web. A pesar de las pruebas
exhaustivas del mdulo Web, todava quedan algunos pequeos errores que sern corregidos
prximamente.
44
10 Conclusiones
ActiveSMS es un sistema automatizado diseado para integrar las funcionalidades de
creacin, mantenimiento y reportes de todos los tipos de concursos SMS de forma rpida y
sencilla. Su diseo fue pensado para que sirviera como plataforma para disear e implementar
cualquier tipo de concurso y para reutilizar al mximo posible el cdigo.
Otra de las caractersticas es que provee una forma rpida y sencilla de crear, activar y
monitorear concursos utilizando una aplicacin Web como parte del esencial del sistema. Del
mismo modo la separacin de las capas dentro de la aplicacin para facilitar la integracin de
los componentes y el mantenimiento del sistema. Se decidi basarse en la metodologa RUP
para desarrollar un producto que cumpla con las mejores prcticas en el desarrollo de software.
45
Para finalizar, gracias a la facilidad para crear y poner en marcha los concursos SMS,
ahora Conectium Limited utilizar menos recursos en desarrollar para sus clientes, reduciendo
as los costos y traducindose en mayor cantidad y calidad de concursos SMS para toda
Latinoamrica.
46
11 Recomendaciones
Comprender los mecanismos para crear nuevos tipos de concursos, dentro del mdulo
persistencia.
Mejorar el enrutamiento de mensajes por parte del IMG, para que se pueda verificar la
actividades ms importantes y
47
12 Notas
[1] Conectium Limited. Misin-Visin. Extrado el 16 de febrero de 2007.
URL:http://www.conectium.com/es-conectium.html
48
[10] Sun Developers Network, Core J2EE Patterns - Data Access Object. Extrado el 30 de
Julio de 2006.
URL: http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
[11] Varios Autores, Modelo Vista Controlador. Extrado el 16 de febrero de 2007 de
Wikipedia en espaol.
URL: http://es.wikipedia.org/wiki/Modelo_Vista_Controlador
[12] HIBERNATE - Relational Persistence for Idiomatic Java, Hibernate Reference
Documentation. Extrado el 16 de febrero de 2007.
URL: http://www.hibernate.org/hib_docs/v3/reference/en/html_single/
[13] Yu Colin, Fung Jane (2003). Writing a Simple Struts application using WebSphere Studio
v5. Extrado el 16 de febrero de 2007 de IBM WebSphere Developer Technical Journal.
URL: http://www-128.ibm.com/developerworks/websphere/techjournal/0302_fung/fung.html
49
13 Referencias Bibliogrficas
Ambler, S. The Unified Process Elaboration Phase. CMP, 1era edicin, 2000, 277 pginas.
Ambler, S. The Unified Process Transition Phase. CMP, 1era edicin, 2001, 309 pginas.
Larman, C. Applying UML and Patterns. Prentice Hall, 2da edicin, 2002.
Kroll P. The Rational Unified Process Made Easy. Addison-Wesley Professional, 1era edicin,
2003, 464 pginas.
Pugh E. and Gradecki J. Professional Hibernate. Wrox, 1era edicin, 2004, 456 pginas.
Teurel, A. (2001), Pruebas de sistemas orientados a objetos. Extrado el 16 de febrero de
2007. URL: http://www.ldc.usb.ve/~teruel/ci3715/clases/testing2.html
50
14 Apndices
Apndice A: Documento Visin del Proyecto.
Apndice B: Documento de Casos de uso.
Apndice C: Documento Glosario del sistema.
Apndice D: Documento de Riesgos.
Apndice E: Plan de desarrollo del proyecto.
Apndice F: Descripcin de los requerimientos por parte de Conectium Limited.
Apndice G: Prototipo del mdulo Web.
Apndice H: Modelo conceptual.
Apndice I: Diagrama de Clases. Mdulo lgica de concursos y manejo de sesiones.
Apndice J: Diagrama de Clases. Mdulo conexin con la red celular.
Apndice K: Diagrama de Clases. Mdulo Web.
Apndice L: Diagrama de Clases. Mdulo de persistencia.
Apndice M: Diagrama de secuencia. Procesar mensaje.
Apndice N: Diagrama de secuencia. Crear/Editar/Eliminar Trivias.
Apndice O: Arquitectura del IMG-Queue.
Apndice P: Archivos de mapeo de Hibernate.
Apndice Q: Archivo de configuracin de Struts.
51