View
4
Download
0
Category
Preview:
Citation preview
1
SISTEMA DE ADMINISTRACIÓN DE SERVIDORES DE BASES DE DATOS
VIRTUALES EN LA NUBE CONTROLADOS MEDIANTE UN DISPOSITIVO MÓVIL
SOL JULLIET LOZANO ARISTIZABAL
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS
FACULTAD TECNOLOGICA
INGENIERIA EN TELEMÁTICA
BOGOTA D.C.
2015
2
SISTEMA DE ADMINISTRACIÓN DE SERVIDORES DE BASES DE DATOS
VIRTUALES EN LA NUBE CONTROLADOS MEDIANTE UN DISPOSITIVO MÓVIL
SOL JULLIET LOZANO ARISTIZABAL
CÓDIGO: 20121378013
TRABAJO DE GRADO PARA OPTAR AL TITULO DE
INGENIERA EN TELEMÁTICA
Tutor: JUAN CARLOS GUEVARA
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS
FACULTAD TECNOLOGICA
INGENIERIA EN TELEMATICA
BOGOTA D.C.
2015
3
Nota de Aceptación
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
_________________________
Firma del Tutor
_________________________
Firma del Jurado
_________________________
Firma del Jurado
Bogotá D.C. Noviembre de 2015
4
TABLA DE CONTENIDO
INTRODUCCIÓN ............................................................................................................................... 12
1. FASE DE ORGANIZACIÓN, DEFINICIÓN Y ANÁLISIS ................................................... 15
1.1. TEMA ..................................................................................................................................... 15
1.2. TÍTULO .................................................................................................................................. 15
1.3. OBJETIVOS ............................................................................................................................. 15
1.3.1. General .............................................................................................................................. 15
1.3.2. Específicos ........................................................................................................................ 15
1.4. DESCRIPCIÓN DEL PROBLEMA ............................................................................................... 16
1.5. PREGUNTA DE INVESTIGACIÓN .............................................................................................. 20
1.6. JUSTIFICACIÓN ...................................................................................................................... 21
1.7. MARCO TEÓRICO ................................................................................................................... 24
1.7.1. Cloud Computing .............................................................................................................. 24
1.7.2. Escenarios ......................................................................................................................... 26
1.7.3. Tipos de infraestructuras en la nube ................................................................................. 29
1.7.4. Sistemas de comunicaciones móviles ............................................................................... 31
1.7.5. Grid Computing ................................................................................................................ 35
1.7.6. Seguridad .......................................................................................................................... 38
1.7.7. Virtualización .................................................................................................................... 40
1.7.8. Móviles ............................................................................................................................. 44
1.7.9. Servidor de Bases de datos ............................................................................................... 45
1.7.10. Internet .............................................................................................................................. 48
1.7.11. Bases de datos distribuidas ............................................................................................... 49
1.8. MARCO CONCEPTUAL ............................................................................................................ 51
1.8.1. Servidor ............................................................................................................................. 51
1.8.2. Servidor de base de datos .................................................................................................. 51
1.8.3. Computación en la nube ................................................................................................... 52
1.8.4. Máquina virtual ................................................................................................................. 52
1.8.5. Bases de datos ................................................................................................................... 53
1.8.6. Servicios............................................................................................................................ 53
1.8.7. SOAP (siglas de Simple Object Access Protocol) ............................................................ 53
1.8.8. Aplicación Móvil .............................................................................................................. 54
1.8.9. Android ............................................................................................................................. 54
5
1.9. MARCO HISTÓRICO ................................................................................................................ 55
1.9.1. Virtualización .................................................................................................................... 55
1.9.3. Telefonía móvil ................................................................................................................. 58
1.10. MARCO LEGAL ....................................................................................................................... 59
1.11. METODOLOGÍA ...................................................................................................................... 60
1.12. DELIMITACIONES ................................................................................................................... 64
1.12.1. Delimitación geográfica .................................................................................................... 64
1.12.2. Delimitación temporal ...................................................................................................... 64
1.12.3. Delimitación temática ....................................................................................................... 64
1.12.4. Delimitación técnica ......................................................................................................... 66
1.13. ALCANCES ............................................................................................................................. 67
1.14. RECURSOS ............................................................................................................................. 68
1.14.1. Técnicos ............................................................................................................................ 68
1.14.2. Operativos ......................................................................................................................... 69
1.14.3. Económicos ....................................................................................................................... 69
1.15. CRONOGRAMA ....................................................................................................................... 71
2. CONFIGURACIÓN DE LA CLOUD ........................................................................................ 73
2.1. QUE ES CLOUD COMPUTING .................................................................................................. 73
2.2. INFRAESTRUCTURA DE LA CLOUD ......................................................................................... 73
2.3. AMAZON EC2 ........................................................................................................................ 74
3. DISEÑO DEL PROYECTO ....................................................................................................... 76
3.1. MODELAMIENTO DEL NEGOCIO ............................................................................................. 76
3.2. LISTA PRELIMINAR DE CASOS DE USO ................................................................................... 78
3.3. MODELO DEL DOMINIO ......................................................................................................... 79
3.4. MODELO DE CASOS DE USO ................................................................................................... 80
3.5. DOCUMENTACIÓN DE CASO DE USO ...................................................................................... 81
3.6. DIAGRAMAS DE SECUENCIA .................................................................................................. 89
3.7. DIAGRAMAS DE COMUNICACIÓN ........................................................................................... 93
3.8. DIAGRAMAS DE ACTIVIDAD .................................................................................................. 95
3.9. DIAGRAMAS DE ESTADO ....................................................................................................... 99
3.10. DIAGRAMA DE CLASES ........................................................................................................ 100
3.11. LISTA DE CLASES ................................................................................................................. 100
3.12. RESPONSABILIDADES DE LAS CLASES ................................................................................. 101
6
3.13. DICCIONARIO DE DATOS ...................................................................................................... 106
3.14. MODELO LÓGICO ................................................................................................................. 108
3.14.1 Servidor Java ....................................................................................................................... 108
3.14.2. Cliente Android .................................................................................................................. 109
3.15. MODELO FÍSICO ................................................................................................................... 110
3.15.1. Servidor java ................................................................................................................... 110
4. IMPLEMENTACIÓN ............................................................................................................... 111
4.1. DIAGRAMA DE COMPONENTES ............................................................................................ 111
4.2. DIAGRAMA DE DESPLIEGUE................................................................................................. 111
4.3. DIAGRAMA DE PAQUETES .................................................................................................... 112
5. SISTEMA INTEGRADO .................................................................................................... 112
5.1 DEFINICIÓN ARQUITECTURA .......................................................................................................... 112
5.1.1. Elementos y principales componentes del sistema ............................................................... 112
5.1.2. Capas del sistema ................................................................................................................. 120
5.1.3. Mecanismos arquitecturales necesarios para el sistema ....................................................... 123
5.1.4. Tecnologías elegidas para cada una de las capas ................................................................. 124
5.1.5. Componentes comparados o de código abierto forma en que se tomó la decisión .............. 127
5.1.6. Descripción de los principales patrones de diseño ............................................................... 129
6. INSTALACIÓN APK ANDROID ............................................................................................. 131
7. PRUEBAS .............................................................................................................................. 131
7.1. ESCENARIOS DE PRUEBAS ................................................................................................... 134
8. CONCLUSIONES ..................................................................................................................... 135
9. RECOMENDACIONES............................................................................................................ 136
10. BIBLIOGRAFÍA ................................................................................................................... 137
11. INFOGRAFAFIA .................................................................................................................. 138
7
LISTA DE TABLAS
Tabla 1. Metodología ............................................................................................................... 63
Tabla 2. .Software utilizado para el desarrollo ........................................................................ 66
Tabla 3. Recursos técnicos ....................................................................................................... 68
Tabla 4. Recursos operativos ................................................................................................... 69
Tabla 5. Recursos Económicos ................................................................................................ 70
Tabla 6. Recursos Técnicos ..................................................................................................... 70
Tabla 7. Documentación caso de uso iniciar sesión ................................................................ 81
Tabla 8. Documentación caso de uso prender servidor ........................................................... 81
Tabla 9. Documentación caso de uso Apagar servidor ............................................................ 82
Tabla 10. Documentación caso de uso Subir Servicio Base de datos ...................................... 83
Tabla 11. Documentación caso de uso Bajar Servicio de Base de Datos ................................ 84
Tabla 12. Documentación caso de uso Realizar Copias de Seguridad .................................... 85
Tabla 13. Documentación caso de Uso Agregar Máquina Virtual ......................................... 86
Tabla 14. Documentación caso de Uso Editar Máquina Virtual .............................................. 87
Tabla 15. Configurar Máquina Virtual ..................................................................................... 88
Tabla 16. Documentación caso de uso Consultar ayuda .......................................................... 88
Tabla 17. Responsabilidad Clase MainController ................................................................. 101
Tabla 18. Responsabilidad Clase Login ................................................................................ 101
Tabla 19. Responsabilidad Clase Lista .................................................................................. 102
Tabla 20. Responsabilidad Clase Agregar ............................................................................ 102
Tabla 21. Responsabilidad Clase PDF ................................................................................... 102
8
Tabla 22. Responsabilidad de la Clase DatabaseManager ..................................................... 103
Tabla 23. Responsabilidad Clase VirtualMachineServices ................................................... 103
Tabla 24. Responsabilidad Clase RemoteControllerServices .............................................. 105
Tabla 25. Responsabilidad MailServices .............................................................................. 105
Tabla 26. Diccionario de Datos VirtualMachine ................................................................... 106
Tabla 27. Diccionario de Datos Tabla Usuario ..................................................................... 107
Tabla 28. Selección de tecnologías ........................................................................................ 129
Tabla 29. Diseño Casos de Prueba ......................................................................................... 134
9
LISTA DE ILUSTRACIONES
Imagen 1. Arquitectura Cloud Computing ............................................................................... 25
Imagen 2. Arquitectura SOA .................................................................................................... 47
Imagen 3. Fases Metodología RUP (RationalUnificatedProcess) ........................................... 61
Imagen 4. Gestión de interoperabilidad ................................................................................... 76
Imagen 5. Gestión Administración servidor ............................................................................ 77
Imagen 6. Modelo del dominio ................................................................................................ 79
Imagen 7. Modelo de casos de uso ........................................................................................... 80
Imagen 8. Diagrama de secuencia Diagrama de secuencia Prender Servidor ......................... 89
Imagen 9. Diagrama de Secuencia Apagar servidor ................................................................ 90
Imagen 10. Diagrama de Secuencia subir Servicio de Base de Datos ..................................... 91
Imagen 11. Diagrama de Secuencia Realizar copias de seguridad .......................................... 92
Imagen 12. Diagrama de Comunicación Prender Servidor ..................................................... 93
Imagen 13. Diagrama de Comunicación Apagar Servidor ..................................................... 93
Imagen 14. Diagrama de Comunicación Subir Servicio Bases de Datos ................................ 94
Imagen 15. Diagrama de Comunicación Realizar copias seguridad ........................................ 94
Imagen 16. Diagrama de Actividad Prender Servidor ............................................................. 95
Imagen 17.Diagrama de Actividad Apagar Servidor ............................................................... 96
Imagen 18. Diagrama de Actividad Subir Servicio Base de Datos .......................................... 97
Imagen 19. Diagrama de Actividad Realizar copias de Seguridad .......................................... 98
Imagen 20. Diagrama de Estado Administración .................................................................... 99
10
Imagen 21. Diagrama de Estado Configuración ...................................................................... 99
Imagen 22. Diagrama de Clases ............................................................................................. 100
Imagen 23. Modelo lógico servidor ....................................................................................... 108
Imagen 24. Modelo Lógico Cliente ....................................................................................... 109
Imagen 25. Modelo Físico Servidor ....................................................................................... 110
Imagen 26. Diagrama de Componentes ................................................................................. 111
Imagen 27.Diagrama de Despliegue ...................................................................................... 111
Imagen 28. Diagrama de Paquetes ......................................................................................... 112
Imagen 29.Arquitectura del sistema Integrado ...................................................................... 113
Imagen 30. Funcionamiento tecnología REST ...................................................................... 114
Imagen 31. Definición de funcionamiento arquitectura ......................................................... 118
Imagen 32. Capas del sistema ................................................................................................ 120
11
ABSTRACT
In this research project different technology issues is also proposing a service implementation
which contribute to improving situations in which companies may have in their database services
to try to use improved techniques efficiency, flexibility and resource management, where the
economic factor, the emergence of new technologies have an important role in our society
presence generated the need to migrate data to the cloud with the ability to access from wherever
we are, the virtualization, cloud computing, mobile services are part of some issues which will be
addressed during the implementation of this project in order to provide services optimization
tool.
For the realization of the project is necessary to know some of the relevant factors for which
arises the need to investigate and publish this management system, one of these is the continued
advancement of mobile and computing technologies that force recently update the technical
services offered in business, as the need for the information available to date and always at
separate companies to manage and maintain a data center where large investments are needed to
operate to optimize their resources by using the benefits offered by the emergence of the new
information technologies for better utilization of services.
12
INTRODUCCIÓN
En el presente proyecto de investigación se trata diferentes temas de tecnologías además de
proponer una implementación de servicio el cual contribuya con el mejoramiento de situaciones
en las cuales las empresas puedan tener en cuanto a sus servicios de bases de datos para intentar
utilizar técnicas de mejoramiento en eficiencia, flexibilidad y administración de recursos, en
donde el factor económico, el surgimiento de nuevas tecnologías tienen un papel importante de
presencia en nuestra sociedad generando la necesidad de migrar datos a la nube con la
posibilidad de acceder desde cualquier lugar donde nos encontremos, la virtualización , la
cloudcomputing, servicios móviles hacen parte de algunos temas los cuales se van a tratar
durante la realización de este proyecto con el fin de ofrecer una herramienta de optimización de
servicios.
Para la realización del proyecto es necesario conocer algunos de los factores relevantes por las
que nace la necesidad de investigar y proponer este sistema de administración, una de estas es el
avance continuo de las tecnologías móviles e informáticas que obligan actualizar recientemente
las técnicas de servicios ofrecidas en las empresas, como la necesidad de tener la información
siempre actualizada y disponible siempre por lo que las empresas aparte de administrar y
mantener un centro de datos donde se necesitan grandes inversiones para el funcionamiento
quieren optimizar sus recursos utilizando los beneficios ofrecidos por el surgimiento de las
nuevas tecnologías de información para un mejor aprovechamiento de servicios.
13
La característica principal para la realización de esta investigación es la optimización y
benéficos ofrecidos por la virtualización y la cloudcomputing como herramientas para ofrecer
una solución móvil para controlar un servidor de servicio en la nube sin incurrir en costos
adicionales de mantenimiento para su funcionamiento tomando como base el uso del móvil como
instrumento para la comodidad en la información.
En la actualidad el uso de la cloudcomputing ha generado un nuevo enfoque de comercio
electrónico creando la necesidad de ofrecer a través de internet servicios como almacenamiento,
aplicaciones y muchos más servicios, por lo que queremos hacer una investigación e
implementación de un servicio en la nube con el fin de mejorar un servicio y demostrar la
eficiencia de las tecnologías utilizadas para su realización, contribuyendo a la flexibilidad de
brindar la información mitigando la perdida de datos y los costos de administración de servidores
como problemas generados por su mal funcionamiento de servidores locales alojados en un
centro de datos físico.
El funcionamiento de los servidores de acuerdo a su infraestructura y el modelo que se
analiza a profundidad nos da un enfoque más profundo acerca del funcionamiento de los
servicios con las aplicaciones en cuanto a los entornos virtuales y la complejidad dada en las
soluciones de escalabilidad y flexibilidad, que nos brinda este tipo de soluciones, además de
profundizar en las plataformas de servicios y las interacciones con las aplicaciones móviles,
permiten tener una visión más amplia de esta nueva forma de optimizar y tener facilidad a la
información desde cualquier parte en que nos encontremos, dejando claramente la forma en que
14
se descentralizan los servicios para un mejor aprovechamiento y los beneficios que este nos
ofrece.
La incursión de nuevos dispositivos y la transformación del almacenamiento de la
información, los nuevos enfoques orientados a negocios y a servicios, el avance en las TIC, hace
necesario gestionar, administrar y tener disponibilidad de la información de una manera ágil,
sencilla y de fácil adaptación a las necesidades de las empresas para brindar un mejor servicio y
desempeñar su objeto de negocio de una forma más eficiente.
15
1. FASE DE ORGANIZACIÓN, DEFINICIÓN Y ANÁLISIS
1.1.Tema
Para la elaboración del sistema de virtualización de servidores, controlados desde un
dispositivo móvil, se hace necesario el estudio de los siguientes temas: servidores virtuales,
servicios móviles como herramienta para la administración de servicios en la nube, Iaas, la
optimización, disponibilidad y eficiencia de recursos de bases de datos.
1.2.Título
Sistema de administración de servidores de bases de datos virtuales en la nube controlados
mediante un dispositivo móvil.
1.3.Objetivos
1.3.1. General
Desarrollar un sistema de administración de servidores de bases de datos virtuales en la nube
controlados mediante un dispositivo móvil, para apoyar el proceso de optimización de los
recursos de las empresas.
1.3.2. Específicos
Diseñar un modelo que permita el control de servidores de bases de datos virtuales en
la nube mediante un aplicativo móvil y utilizando alertas que informen al usuario los
cambios de estado en los servicios.
16
Crear los módulos de inicio, detención de la máquina virtual, y de ayuda al usuario
que permita conocer el aplicativo de manera más completa.
Desarrollar el sistema que permita el control de copias de seguridad, usuarios y
contraseñas del servidor de bases de datos en la nube.
Implementar un servidor de base de datos virtualizado que permita el aprovechamiento
de almacenamiento que ofrece la nube.
Realizar Pruebas del sistema.
1.4.Descripción del problema
A medida que pasa el tiempo y con el avance continuo de las tecnologías, las exigencias de
los usuarios que se incrementan día a día se hacen más relevantes para los empresarios. Por tal
razón es cada vez más importante mantener a los clientes actualizados ofreciéndoles las mejores
condiciones, para aumentar y mejorar sus recursos y servicios.
Algunas de las características del avance tecnológico son la compartición de datos, la
movilidad y la necesidad permanente de estar conectado a la información. Dichos factores hacen
que cada vez más personas quieran tener flexibilidad en sus almacenamientos de información
para mejorar sus recursos. Por esta razón muchas empresas están optando por trasladar sus datos
a lugares donde puedan tener un mayor control, gestión en el flujo de su empresa y mejora en
cuanto al acceso de los datos, desde cualquier lugar que garantice la disponibilidad de la
información.
17
Debido a que las empresas tienen diferentes necesidades ya sea por crecimiento, o por nuevas
tecnologías; se hace necesario brindar disponibilidad además de eficiencia y optimización en los
servicios, para lograr un mejor aprovechamiento en el trabajo realizado, de acuerdo con las
necesidades de invertir en la actualización de sus servidores, caso de la renovación y adquisición
de equipos de hardware, más específicamente de los servidores utilizados para el funcionamiento
óptimo del negocio con el fin de brindar un mejor servicio. La adquisición continúa de equipos
de hardware, al cual están obligadas las empresas, no solo que ha producido el crecimiento físico
de los servidores, sino que han causado un aumento en el número de personas dedicadas al
mantenimiento y administración de los servidores, el espacio físico del servidores, el consumo
eléctrico demandado por los servidores y por el sistema de refrigeración usado para mantener a
los servidores en óptimas condiciones. Esto en consecuencia lo único que logra es un incremento
en los costos a las empresas1.
Por otro lado, muchas de las organizaciones que cuentan con un centro de datos al límite de su
capacidad, buscan flexibilidad para desplegar más recursos de tecnologías de la información sin
comprometerse en inversiones a largo plazo y aportar a la reducción de problemas como picos
de trabajo, o disponibilidad temporal de recursos económicos2; brindando adicionalmente
mejoras tecnológicas a su empresa. Actualmente la virtualización de servidores es un
componente fundamental para consolidar un modelo de recursos optimizados y orientados a los
servicios.
1Tomado biblioteca PUCE- SI
http://dspace.pucesi.edu.ec/handle/11010/177 2Tomado del Blog ERP Software Blog
September 29, 2011 by ERP Software Blog Editors:http://www.erpsoftwareblog.com/2011/09/la-diferencia-entre-virtualizacion-y- computacion-en-la-nube/
18
Las empresas están ejecutando todo tipo de aplicaciones en la Nube, como la gestión de las
relaciones con los clientes, recursos humanos, contabilidad, etc. Algunas de las empresas más
importantes del mundo han pasado sus aplicaciones a la Nube después de comprobar
rigurosamente la seguridad y la fiabilidad. En la actualidad las personas han trasformado sus
servicios a la nube para convertirse en empresas transcendentales de negocios, por un nuevo
modelo de mercado electrónico además de las movilidad para acceder a estas en cualquier lugar
por lo que la información siempre debe estar disponible y en cualquier momento3.
Teniendo en cuenta que la virtualización es una de las bases de cloud Computing, y puede
ofrecer distintos servicios de computación a través de internet, puede brindar mejores recursos
que permiten a su vez optimizar los servicios, sin preocupación de espacios y factores
económicos, la implementación de esta tecnología permite el aprovechamiento al máximo de los
recursos de hardware y software en las empresas ha sido un tema popularizado en los últimos
años como lo indica en su artículo la computación en la nube un nuevo paradigma tecnológico
para las empresas y organizaciones donde se expone el impacto en la economía y en los negocios
que ha tenido la computación en la nube en los nuevos modelos tecnológicos de la web4, y
donde se expone la importancia, las ventajas y riesgo que esto puede tener en el desarrollo de las
empresas .
Actualmente las áreas de IT tienen diversos problemas en cuanto servidores para alojar
aplicaciones dentro de una empresa y la constante presión para optimizar y reducir gastos en
3Tomado de la revista Bolivianas revistas electrónica en línea
http://www.revistasbolivianas.org.bo/scielo.php?pid=S1997-40442012000200028&script=sci_abstract
4Tomado revista ICADE
https://revistas.upcomillas.es/index.php/revistaicade/article/view/289/223
19
cuanto a servicios de infraestructura, mantenimiento y personal especializado que se encargue
de la gestión de los servidores además de los inconvenientes con el lugar y la disponibilidad que
se debe prestar para este tipo de servicios, debido al crecimiento que ha tenido en los últimos
años el procesamiento de la información se ha incrementado la utilización de herramientas para
la administración y gestión en los servidores y servicios por medio de la nube por su facilidad de
acceso los beneficios en cuanto a reducción de gastos y tiempo.
En este contexto podemos analizar el uso de las tecnologías para la implementación de
herramientas que optimicen los recursos en las medianas y grandes empresas, donde se evidencia
la falta de disponibilidad de los datos, almacenamiento, capacidad de procesamiento,
flexibilidad, comodidad en cuanto espacios físicos para realizar la administración de servicios
sobre servidores.
Por otro lado y con la disponibilidad de dispositivos móviles y la creciente capacidad técnica
que ofrecen, un mayor número de compañías están en la búsqueda de integrar este tipo de
aparatos en sus procesos diarios de negocio, Tras el avance tecnológico de los dispositivos y una
mayor eficiencia en las comunicaciones por medios como voz, correo o texto, permiten una
mayor información accesible para los usuarios, lo cual aporta beneficios de conectividad y
comunicación, según la conferencia dictada en XVI Congreso Argentino de Ciencias de la
Computación, la cloudcomputing es vista por algunos autores como la Cuarta Generación de
aplicaciones y se espera que sea la forma en que en estos próximos años se consumirá los
recursos informáticos, por lo que es un componente para lograr mejorar la comunicación,
movilidad en la administración de los servicios que soporte la diversidad de equipos y que
20
funciones adecuadamente, además también se debe tener en cuenta que los dispositivos son
distintos y las plataformas deben ser accedidas desde cualquier lugar y debe comportarse de
acuerdo que nos brinde la información necesaria para administrar los servicios5.
Finalmente se puede decir que la pérdida de información en las empresas de acuerdo a los
servidores de bases de datos locales, es uno de los factores importantes para el desarrollo de su
objeto, lo cual ocasiona muchos inconvenientes a nivel interno, y por lo que es necesario brindar
una disponibilidad de información de forma oportuna; en lugar de comprar varios servidores
dedicados con funciones específicas y con requerimientos hardware especiales que generan
costos adicionales a las empresas, por lo que se puede hacer uso de los avances tecnológicos
con el fin de proporcionar soluciones que se adapten a las necesidades de gestión y servicios sin
generar costos en recursos administrativos y técnicos para el desempeño de los servicios
asociados a los servidores, en cuanto al tiempo de respuesta ofrecido por los administradores,
movilidad donde el tiempo que se tiene para dar respuesta a ciertos requerimientos y la
disponibilidad de información debe ser a tiempo, por lo cual es necesario implementar una
herramienta practica que sea portable para el usuario.
1.5.Pregunta de investigación
¿Es posible gestionar y controlar los servidores virtuales de bases de datos utilizando los
servicios en la nube mediante una aplicación móvil, para apoyar el proceso de optimización de
los recursos de las empresas?
5 Tomado repositorio Institucional de la UNLP SEDICI
http://sedici.unlp.edu.ar/handle/10915/19374
21
1.6.Justificación
La virtualización es una tecnología computacional que permite a un usuario acceder a
múltiples dispositivos físicos. Otra forma de verlo es que una sola computadora controle
múltiples máquinas, o un sistema operativo utilizando múltiples computadores para analizar una
base de datos. Esto a su vez reduce el número de servidores que las compañías necesitan adquirir
y administrar. Le permite consolidar sus servidores y hacer más con menos hardware. También
le permite soportar más usuarios por cada unidad de hardware, entregar más aplicaciones y
correr aplicaciones más rápidamente.
De la misma forma, la nube se presenta como una oportunidad para todas aquellas empresas
que tradicionalmente se han dedicado a las tecnologías de la información y que ven en la
generalización del uso de los servicios de Cloud una vía de desarrollo para incrementar su
volumen de ventas mediante la prestación de servicios en la nube, logrando resultados que se
quieren alcanzar sin que tengan que asumir costes y riesgos específicos, haciendo aquello a lo
que siempre se han dedicado.
La nueva era de la nube ha marcado el modo en el que se trabaja en un computador, pues hoy
en día ya no es necesario que tengamos instalado todo en nuestra máquina para poder acceder a
los datos desde cualquier lugar, además de la facilidad y movilidad que nos brinda el celular para
controlar ciertas actividades de nuestro trabajo haciendo uso de las tecnologías para aprovechar
los recursos. Hemos evidenciado la problemática de las bases de datos y la disponibilidad de la
22
información acerca de la administración de los servidores y poder controlar los problemas
presentados de una forma eficiente y rápida.
La práctica de la computación en la nube es algo relativamente conocido por consumidores en
casi todo el mundo, un ejemplo es el uso de correo electrónico a través de proveedores como
gmail, yahoo o Hotmail, la cual accede mediante internet al almacenamiento de dicha
información en la nube obteniendo datos que no se encuentran en su propio equipo. Esto
representa un cambio en la forma de infraestructura de las tecnologías de la información y el
software.
Una de las características que posee el Cloud Computing es la relación coste-eficiencia la cual
mejoraría la agilidad y flexibilidad en sus procesos de almacenamiento lo que es un punto más
atractivo para los empresarios que evalúan todas las posibilidades que esta puede brindar.
En cuanto a los elementos móviles, son cada vez más utilizados en nuestra sociedad. Los
Smartphone llamados también teléfonos inteligentes, ofrecen día a día aplicaciones novedosas lo
cual hacen más atractivos sus productos y servicios. Por ello la implementación de herramientas
con el uso de dichos dispositivos es de gran importancia para el manejo personalizado de la
información y la flexibilidad que brindan estos dispositivos, como la accesibilidad desde
cualquier lugar, la respuesta que estos tiene de una manera rápida y eficiente por lo que se
considera un factor importante para brindar soluciones de alta nivel de servicio y comodidad.
23
Por otro lado, una de las preocupaciones más comunes que se presentan en los
almacenamientos de servidores virtuales es la seguridad, esto se debe a que en ocasiones las
personas suelen interpretar, como inseguro al almacenamiento en la red, ya que si se observa
desde el punto de vista de acceso, la internet es un lugar donde puede ingresar cualquier persona
y tomar lo que se quiera; pero en realidad la seguridad en la nube es completamente fiable, lo
que brindaría al usuario mayor confiabilidad en el almacenamiento de su información.
Esta aplicación se realiza con el fin de mejorar los recursos y servicios de las empresas, con
tecnologías que brindan grandes beneficios y flexibilidades de información; utilizando
herramientas que proporcionan ventajas de movilidad, almacenamiento y aplicación en los
diferentes ámbitos empresariales.
De acuerdo con el escrito realizado por Luis Joyanes Aguilar nos muestra los diferentes
beneficios que trae la computación en la nube (cloudcomputing) y donde se refiere a las
diferentes proveedores de servicios en la nube, como ha evolucionado ofreciendo sus servicios
de una manera más eficiente a los usuarios de empresas, y como utilizan sus centros de datos
distribuidos en diferentes partes del mundo para entregar espacio de almacenamiento web
accesible y económico y que garantiza mayor cobertura, eficiencia en los servicios de
almacenamiento y aprovechamiento de recursos.6
La administración de servicios de bases de datos desde las maquinan virtuales aportan grandes
utilidades y soluciones por medio de los nuevos avances que nos han ofrecido en los últimos
años la tecnología, y que reduce los gastos de administración, energéticos, almacenamientos de
6 Tomado de articuloRevista ICADE. https://revistas.upcomillas.es/index.php/revistaicade/article/view/289/223
24
las empresas que buscan expandir y ampliar su mercado además de brindar accesibilidad de una
manera sencilla y práctica.
Este proyecto contiene el uso de envió de correos que alerten los cambios realizados al
servidor en la nube, para dar a conocer los estados de detención del servicio de base de datos
que se pueden presentar, hacia el dispositivo móvil que es controlado por la persona encargada,
además de apagar y prender la máquina virtual desde el aplicativo móvil para demostrar acciones
de administración en cuanto al servidor y el control del servicio descripto.
1.7.Marco teórico
1.7.1. Cloud Computing
El concepto de Cloud Computing tiene la capacidad de brindar el acceso a aplicaciones como
un servicio. Ya no es necesario desembolsar grandes capitales para el desarrollo de hardware
para desplegar un servicio o el costo humano para que este funcione. La virtud de Cloud
Computing viene dada en la flexibilidad que esta provee.
25
Imagen 1. Arquitectura Cloud Computing
Fuente: https://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube
Según la IEEE ComputerSociety, computación en la nube es un paradigma en el que la
información se almacena de manera permanente en servidores en Internet y se envía a memorias
temporales del cliente, lo que incluye computadores portátiles, equipos de escritorio, centros de
ocio, teléfonos celulares, etc. Este modelo permite al usuario acceder a un catá- logo de servicios
estandarizados y responder a las necesidades de su negocio. El usuario, a cambio, paga
únicamente por el consumo efectuado.
a) Beneficios
Reducción del costo total de propiedad; obviamente esta ventaja está más que comprobada y
ampliamente promocionada por proveedores de servicio Cloud.
26
Mayor escalabilidad y fiabilidad: naturalmente al obtener el soporte de un proveedor de nube,
los principales beneficios que se obtiene son la tolerancia a fallos, reducción de latencia,
copias de seguridad.
Aumento de agilidad de desarrollo de aplicaciones; al desarrollar una aplicación se puede
usar Cloud Computing para simular miles de usuarios y de esta forma comprobar su
desempeño rápida y eficaz.
b) Riesgos
Acuerdo a nivel de servicio; es decir el miedo de las empresas a poner su información fuera
de su alcance.
Seguridad de la aplicaciones; las aplicaciones necesitan un ambiente que se les de seguridad
para desarrollarse correctamente.
1.7.2. Escenarios
a) Nube Privada
Una cloud privada es una modalidad particular de plataforma cloud constituida por un entorno
cloud diferenciado y seguro que sólo el cliente especificado puede utilizar. Al igual que en otras
modalidades de cloud, las clouds privadas proporcionan capacidad de procesamiento como un
servicio, que se ejecuta dentro de un entorno virtualizado cuyos recursos proceden de un
repertorio subyacente de dispositivos informáticos físicos. Sin embargo, en el modelo de
cloudprivada, la plataforma cloud (el repertorio de recursos) sólo está accesible para una
organización concreta, lo cual le proporciona un mayor grado de control y privacidad.
27
Los mecanismos técnicos que se utilizan para proporcionar los diferentes servicios que
pueden clasificarse dentro de la categoría de servicios cloud privados pueden variar
considerablemente, por lo que no resulta fácil definir qué es lo que constituye una cloud privada
desde el punto de vista técnico. En lugar de plantearlo de esta manera, este tipo de servicios
suelen categorizarse por las funcionalidades que ofrecen a sus clientes. Rasgos característicos de
las clouds privadas son, por ejemplo, el aislamiento de los recursos cloud para su uso exclusivo
por parte de una única organización concreta, y el mayor nivel de seguridad, en contraposición a
las clouds públicas, en las cuales hay muchos clientes accediendo a servicios virtualizados que
toman sus recursos del mismo banco de servidores y acceden a ellos a través de redes públicas.
Los servicios de cloud privada toman sus recursos de un repertorio diferenciado de ordenadores
físicos, aunque éstos pueden estar alojados tanto dentro como fuera de las instalaciones de la
empresa, y el acceso a ellos puede realizarse a través de líneas punto a punto privadas o de
conexiones cifradas seguras que discurran por redes públicas.
El grado adicional de seguridad que proporciona el modelo cloud con aislamiento lógico entre
clientes resulta ideal para cualquier organización, por ejemplo una gran empresa, que necesite
almacenar y procesar datos privados o realizar tareas delicadas. Por ejemplo, una entidad
financiera podría estar interesada en utilizar un servicio decloud privada para almacenar
internamente los datos más confidenciales, como exige la legislación, sin dejar de disfrutar
dentro de su infraestructura de negocio de algunas de las ventajas que ofrece el modelo cloud,
como la asignación de recursos a demanda.
28
c) Nube pública
Una nube pública es un conjunto de ordenadores y redes informáticas de recursos basados en
el estándar de computación en nube de modelo, en el que un proveedor de servicios hace que los
recursos, tales como las aplicaciones y almacenamiento, disponibles al público en general sobre
el Internet. Servicios en la nube pública pueden ser gratuitos o se ofrecen en un modelo de pago
por uso.
Aplicaciones, almacenamiento y otros recursos se ponen a disposición del público en general
por un proveedor de servicios. Hay proveedores de servicios como Amazon , Microsoft o Google
que son dueños de toda la infraestructura de su centro de datos , así como corredores de la nube
que agregada infraestructura de múltiples proveedores.
d) Nube híbrida
Una nube híbrida es un servicio en la nube integrada utilizando nubes privadas y públicas para
realizar funciones distintas dentro de una misma organización. Todos los servicios de
cloudcomputing deben ofrecer ciertas eficiencias en diferentes grados, pero los servicios de nube
pública es probable que sean más rentables y escalables que las nubes privadas. Por lo tanto, una
organización puede maximizar su eficiencia mediante el empleo de los servicios de nube pública
para todas las operaciones no sensibles, que confía solamente en una nube privada, donde lo
requieren y garantizar que todas sus plataformas se integran a la perfección.
Los modelos híbridos de nube pueden ser implementados en un número de maneras:
✓ Separada equipo proveedores de nube para proporcionar tanto los servicios públicos y
privados como un servicio integrado
29
✓ Individuales proveedores de nube ofrecen un paquete híbrido completa.
Las organizaciones que gestionan sus nubes privadas mismos se inscriban a un servicio de
nube pública que luego se integran en su infraestructura.
En la práctica, una empresa puede implementar de nube híbrida de hosting para alojar su sitio
web de comercio electrónico dentro de una nube privada, donde es seguro y escalable, pero su
sitio folleto en una nube pública, donde es más rentable (y la seguridad es menos de una
preocupación). Alternativamente, una infraestructura como servicio (IaaS) ofreciendo, por
ejemplo, podría seguir el modelo de nube híbrida y proporcionar un negocio financiero con el
almacenamiento de datos de los clientes dentro de una nube privada, pero luego permitir la
colaboración en los documentos de planificación de proyectos en la nube pública - donde que se
puede acceder por varios usuarios desde cualquier lugar conveniente.
1.7.3. Tipos de infraestructuras en la nube
a) Infraestructura como Servicio (IaaS)
Con el redescubrimiento de la virtualización en el datacenter para la arquitectura x86 se
consiguió desacoplar las cargas de trabajo del hardware físico y su consolidación sobre
servidores cada vez con mayor capacidad. Este ha sido el paso que ha permitido empezar a
considerar los recursos físicos de datacenter como grupos independientes de computación, red y
almacenamiento. IaaS consiste en construir una solución que comprenda los “Fabrics” (tejidos,
estructuras) de red y almacenamiento y el conjunto de elementos de cómputo incluidos en los
servidores, con su capa de virtualización por encima, y ofrecerla a clientes internos y/o externos.
30
Las capas superiores corren de manera independiente a cómo estén organizados y gestionados
estos recursos.
b) Plataforma como Servicio (PaaS)
Engloba, además de los recursos de infraestructura, a los sistemas operativos, middleware y
runtimes. Todo este conjunto será ofrecido a clientes internos y/o para que por encima se
ejecuten y se almacenen aplicaciones y datos propios. La manera más sencilla y clásica de
entenderlo es asociar el Middleware y Runtime a servidores Web, Bases de Datos y Frameworks
de desarrollo de aplicaciones, que se usarán para hospedar las aplicaciones de los clientes. PaaS
también se beneficia de las ventajas de la virtualización, pero es conveniente recordar que este
modelo lleva mucho tiempo entre nosotros, por poner un ejemplo desde casi los principios de
Internet con los clásicos servicios de alojamiento Web.
c) Software como Servicio (SaaS)
Consiste en ofrecer una solución completa basada en Software, de forma que el cliente puede
consumir diferente tipo de aplicaciones sin tenerse que preocupar de absolutamente nada de lo
que hay por debajo para sustentarla. Al igual que en el caso anterior existen numerosísimos
ejemplos de Software como Servicio en Internet desde, orientados tanto a usuario final del
mercado de consumo como a usuarios empresariales. Correo, almacenamiento, juegos,
aplicaciones ofimáticas y de colaboración, CRMs, redes sociales y un largo etcétera conforman
este tipo de servicios.
31
1.7.4. Sistemas de comunicaciones móviles
Las comunicaciones móviles se dan cuando tanto el emisor como el receptor están, o pueden
estar, en movimiento. La movilidad de estos dos elementos que se encuentran en los extremos de
la comunicación hace que no sea factible la utilización de hilos (cables) para realizar la
comunicación en dichos extremos. Por lo tanto utilizan básicamente la comunicación vía radio.
Las comunicaciones móviles son actualmente el área de crecimiento más rápido dentro del
sector de las telecomunicaciones, especialmente la telefonía móvil celular. En todo el mundo, a
principios de 1999 existen cerca de 200 millones de usuarios móviles de telefonía celular y es
evidente que el número de usuarios continuará creciendo en los próximos años, alcanzando una
cifra superior a los 100 millones en el año 2000 sólo en la Unión Europea. La explicación a este
crecimiento del mercado se encuentra en el rápido avance de la tecnología, las oportunidades
comerciales que se asocian con la movilidad personal y la bajada de precios en los equipos y de
las propias tarifas de conexión y por tráfico.
Los sistemas de comunicaciones personales (PCS) comprenden un amplio rango de servicios
que, más allá de la simple movilidad, permiten al usuario disponer de conexión telefónica con
independencia de su localización física, el terminal empleado y el medio de transmisión. Para
ello, emplean tanto las tecnologías móviles como las funciones de red inteligente de la red fija,
todas ellas tienden a integrarse en la llamada UMTS (Universal Mobile
TelecommunicationsSystem).
32
Puesto que el espectro de radio es un recurso limitado compartido por todos los usuarios, se
debe idear un método para dividir el ancho de banda entre tantos usuarios como sea posible.
La utilización de las ondas radioeléctricas se reveló desde hace tiempo como el único medio
eficaz de establecer comunicaciones con puntos móviles, y lo seguirá siendo durante mucho
tiempo, ya que las ondas de radio gozan de la propiedad de salvar obstáculos, y el resto de las
interacciones conocidas por la física actual no puede propagarse a grandes distancias.
Desgraciadamente el espectro radioeléctrico es un recurso limitado cuya utilización racional
sólo ha sido posible mediante una reglamentación muy estricta que permite la optimización de la
asignación de frecuencias.
Tal despilfarro de recursos fue posible porque la única ocupación del espectro, en aquellos
tiempos, era la que hacían las emisoras de radiodifusión. En los años 60, con la proliferación de
las cadenas de radio y televisión, el uso cada vez más frecuente de los radio enlaces de
microondas, los enlaces de satélite, etc., la ocupación del espectro preocupaba ya de tal manera,
que la telefonía móvil se vio obligada a evolucionar hacia sistemas basados fundamentalmente
en un aprovechamiento mejor del espectro disponible.
a) Modo simplex: a una frecuencia
La transmisión y la recepción se efectúan en forma secuencial, en un sentido cada vez. Para
habar, se debe "solicitar permiso", lo que se hace pulsando el botón del terminal denominado
33
PTT, "Push To Talk" o "Pulsar Para Hablar". Dentro de los sistemas simplex se encuentran los
que funcionan a una o a dos frecuencias. Los primeros son aquellos que utilizan la misma
frecuencia para transmisión y recepción. Presentan como principal inconveniente la alta
probabilidad de captura de una comunicación por otra, debido a una alta interferencia co-canal;
sin embargo, permiten la comunicación entre móviles, sin pasar por la base. Este tipo de
sistemas se utiliza para soportar las comunicaciones de seguridad en los servicios móviles
marítimo y aeronáutico. Los sistemas a dos frecuencias separan la transmisión de la recepción.
Ofrecen mayor protección a la interferencia co-canal pero obligan a que todas las
comunicaciones pasen necesariamente por la estación base, al no poder los móviles hablar entre
sí.
Ventaja: sencillez, además un móvil cuyo retroalcance no le permita llegar a la EB puede
hacerlo a través de otro móvil.
Inconveniente: captura de una comunicación por otra; captura por parte de una estación base
de la comunicación de un móvil con otra estación base para solucionar lo último se acude a
separación en frecuencia (4-5 MHz). Cuando hay varios equipos no hay reducción en el
espectro utilizado.
b) Modo semidúplexA dos frecuencias: soluciona el anterior problema al precio de que los
móviles no pueden hablar entre sí.
Supera el problema de los símplex a dos frecuencias comunicándose los móviles (son
símplex) entre sí a través de la estación base (dúplex).
34
Este sistema utiliza frecuencias diferentes de transmisión y de recepción. Es una mejora del
sistema simplex a dos frecuencias, donde se incorpora un duplexor a la estación de base. En este
caso, la estación base funciona en dúplex y los terminales móviles lo hacen en simplex. La
estación base se limita a retransmitir las comunicaciones que recibe, a lo que se denomina
"TalkThrough" (TT). Para identificar una solicitud de comunicación frente a posibles
interferencias, se manejan tonos de control a frecuencias "sub-audio" (< 300 Hz) que acompañan
a la comunicación. Así, sólo se activará la estación base cuando reciba una señal, en la
frecuencia de recepción adecuada, acompañada del todo "subaudio".
c) Modo dúplex: Se requiere un radiocanal diferente para enlazar cada móvil con la base.
En estos sistemas la estación base transmite en una frecuencia f1 y recibe en una frecuencia
f2 mientras que el móvil transmite en una frecuencia f2 y recibe en f1. Tanto estación base como
móvil disponen de duplexor que permite la transmisión y recepción simultáneas. En este sistema
no es posible tampoco la comunicación directa móvil -móvil, sin pasar por la estación base. La
implementación de estos sistemas es más cara y compleja que la de los anteriores.
Si bien esta clasificación es útil a la hora de comprender las particularidades de cada sistema
de comunicaciones móviles, para el desarrollo de esta asignatura se cree más conveniente
considerar la clasificación de sistemas según un conjunto de características que les confieren
cierta operatividad. Además de las particularidades de la comunicación - simplex, semi-dúplex o
dúplex - dentro de este conjunto de características se consideran otras como el tipo de gestión de
la comunicación y la canalización, en definida, se trata de agrupar los sistemas en relación con
las facilidades de comunicación que permiten.
35
La telecomunicación sin hilos está diseñada para usuarios cuyos movimientos están
delimitados a un área bien definida. El usuario de la telecomunicación sin hilos hace llamadas
desde un terminal portátil que se comunica por señales de radio a una estación de base fija. La
estación de base está conectada directa o indirectamente a la red telefónica conmutada (RTC). El
área restringida cubierta por un sistema de telecomunicación sin hilos puede ser desde una casa o
apartamento privados hasta un distrito urbano o un bloque de oficinas. Cada aplicación tiene sus
necesidades específicas.
1.7.5. Grid Computing
La computación grid es una tecnología innovadora que permite utilizar de forma coordinada
todo tipo de recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no
están sujetos a un control centralizado. En este sentido es una nueva forma de computación
distribuida, en la cual los recursos pueden ser heterogéneos (diferentes arquitecturas,
supercomputadores, clusters...) y se encuentran conectados mediante redes de área extensa (por
ejemplo Internet). Desarrollado en ámbitos científicos a principios de los años 1990, su entrada
al mercado comercial siguiendo la idea de la llamada Utilitycomputing supone una importante
revolución.
El término grid se refiere a una infraestructura que permite la integración y el uso colectivo de
ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados
por diferentes instituciones. Puesto que la colaboración entre instituciones envuelve un
36
intercambio de datos, o de tiempo de computación, el propósito del grid es facilitar la integración
de recursos computacionales. Universidades, laboratorios de investigación o empresas se asocian
para formar grid para lo cual utilizan algún tipo de software que implemente este concepto.
Se llama grid al sistema de computación distribuido que permite compartir recursos no
centrados geográficamente para resolver problemas de gran escala. Los recursos compartidos
pueden ser ordenadores (PC, estaciones de trabajo, supercomputadoras, PDA, portátiles, móviles,
etc), software, datos e información, instrumentos especiales (radio, telescopios, etc.) o
personas/colaboradores.
La computación grid ofrece muchas ventajas frente a otras tecnologías alternativas. La
potencia que ofrece multitud de computadores conectados en red usando grid es prácticamente
ilimitada, además de que ofrece una perfecta integración de sistemas y dispositivos heterogéneos,
por lo que las conexiones entre diferentes máquinas no generarán ningún problema. Se trata de
una solución altamente escalable, potente y flexible, ya que evitarán problemas de falta de
recursos (cuellos de botella) y nunca queda obsoleta, debido a la posibilidad de modificar el
número y características de sus componentes.
Estos recursos se distribuyen en la red de forma transparente pero guardando unas pautas de
seguridad y políticas de gestión de carácter tanto técnico como económico. Así pues, su objetivo
será el de compartir una serie de recursos en la red de manera uniforme, segura, transparente,
eficiente y fiable, ofreciendo un único punto de acceso a un conjunto de recursos distribuidos
geográficamente en diferentes dominios de administración. Esto nos puede llevar a pensar que la
37
computación Grid permite la creación de empresas virtuales. Es importante saber que una grid es
un conjunto de máquinas distribuidas que ayudan a mejorar el trabajo sobre software pesado.
No se puede dejar de mencionar las características como son:
Capacidad de balanceo de sistemas: no habría necesidad de calcular la capacidad de los
sistemas en función de los picos de trabajo, ya que la capacidad se puede reasignar desde la
granja de recursos a donde se necesite.
Alta disponibilidad. con la nueva funcionalidad, si un servidor falla, se reasignan los
servicios en los servidores restantes;
Reducción de costes: con esta arquitectura los servicios son gestionados por "granjas de
recursos". Ya no es necesario disponer de "grandes servidores" y podremos hacer uso de
componentes de bajo coste. Cada sistema puede ser configurado siguiendo el mismo patrón.
Se relaciona el concepto de grid con la nueva generación del protocolo IP. El nuevo protocolo
de Internet IPv6 permitirá trabajar con una Internet más rápida y accesible. Una de las ideas
clave en la superación de las limitaciones actuales de Internet IPv4 es la aparición de nuevos
niveles de servicio que harán uso de la nueva capacidad de la red para intercomunicar los
ordenadores.
Este avance en la comunicación permitirá el avance de las ideas de gridcomputing al utilizar
como soporte la altísima conectividad de Internet. Es por ello que uno de los campos de mayor
innovación en el uso del gridcomputing, fuera de los conceptos de supercomputación, es el
desarrollo de un estándar para definir los GridServices frente a los actuales Web Services.
38
1.7.6. Seguridad
El cambio en la forma de hacer los negocios ha sido tan profundo que es muy diferente del de
hace una década tan solo: Los negocios hoy ya no son locales,es más, ni siquiera regionales,
deben ser mundiales, es decir capaces de interactuar a escala global. Empresas con sucursales en
los diferentes continentes, empresas pequeñas y medianas trabajando para otras empresas o
asociadas entre sí, ejecutivos y personal de la empresa viajando constantemente, tienen un
mismo problema: la comunicación, es más la interacción con recursos o información que está
centralizada en la sede central o en otras sucursales. Así, la seguridad en Internet cobra cada vez
mayor importancia, ya que no sólo se deben proteger los servidores de la empresa con Firewalls,
sino también la comunicación que se realizan a través de Internet, que es una red pública
susceptible de ser interceptada por millones de usuarios. Una respuesta al problema de seguridad
de la información, fue la creación de la criptografía, técnica de codificación que hace que lo
transmitido por Internet sólo pueda ser decodificado por quienes se desea; lo cual facilito la
posibilidad de crear redes privadas virtuales (VPN) institucionales sobre Internet. (de negocios,
educativas, militares, etc.) Este tipo de redes facilita la conexión de sitios remotos como las
sucursales de las empresas que estarán interconectadas entre sí.
Hay que tener en cuenta que en la seguridad se debe tener en cuenta los protocolos para que
haya confiabilidad entre estos están:
39
Rest es un "protocolo que define las operaciones en recursos y en formatos de datos". Como
el protocolo REST es una familia de arquitecturas está basado en "principios o reglas de
arquitectura de red", los estados y la funcionalidad de la aplicación de REST se representan
mediante recursos, los recursos son los elementos de información, para manipular dichos
recursos, los componentes de la red (clientes y servidores) se comunican a través de una
interfaz estándar (HTTP) e intercambian representaciones de estos recursos (los ficheros que
se descargan y se envían).
Simple object Access protocol (soap) SOAP es un protocolo "basado en XML para
aplicaciones que envían o reciben mensajes en internet". SOAP es un protocolo estándar que
deriva de XML-RPC.
Soap fue diseñado para ser simple con tres características principales: "la Extensibilidad, la
Neutralidad y la Independencia de cualquier plataforma o modelo de programación". SOAP
consiste en tres partes que son: un sobre (envelope), el cual define el contenido del mensaje
así también como procesarlo, también tiene un conjunto de reglas de codificación para
expresar instancias de tipos de datos; y por ultimo consta de una conversión para representar
llamadas a procedimientos y respuestas, es decir se puede realizar las peticiones mediante
HTTP a un servidor web tanto como cliente o como servidor. SOAP utiliza HTTP como
protocolo de transferencia, aunque puede ser utilizado también en RPC. Ver la estructura del
protocolo SOAP.
40
Universal description, discovery, and integration (Uddi) es una "especificación de registro de
negocio que forma una fundación técnica para el soporte de la descripción y descubrimiento
de servicios web que otros proveedores brindan". Dichos registros de UDDI en el catálogo se
hace en XML, es una iniciativa industrial abierta en los servicios Web. El registro de un
negocio en UDDI tiene tres partes: Páginas blancas (dirección, contacto y otros
identificadores conocidos), Páginas amarillas (categorización industrial basada en
taxonomías), y Páginas verdes (información técnica sobre los servicios que aportan las
propias empresas).
Simple networkmanagementprotocol (snmp) el protocolo SNMP es un "protocolo importante
para monitorear el sistema. Varios sistemas pueden acoplarse con un monitor para obtener
información y dar soporte al sistema". El Protocolo Simple de Administración de Red "es un
protocolo de la capa de aplicación que facilita el intercambio de información de
administración entre dispositivos de red" Este protocolo hace que los administradores puedan
supervisar el funcionamiento de la red, además de buscar sus problemas, también resolverlas
y planear el crecimiento de dichos funcionamientos.
1.7.7. Virtualización
Virtualización es la técnica empleada sobre las características físicas de algunos recursos
computacionales, para ocultarlas de otros sistemas, aplicaciones o usuarios que interactúen con
ellos. Esto implica hacer que un recurso físico, como un servidor, un sistema operativo o un
dispositivo de almacenamiento, aparezca como si fuera varios recursos lógicos a la vez, o que
41
varios recursos físicos, como servidores o dispositivos de almacenamiento, aparezcan como un
único recurso lógico.
Por ejemplo, la virtualización de un sistema operativo es el uso de una aplicación de software
para permitir que un mismo sistema operativo maneje varias imágenes de los sistemas operativos
a la misma vez.
Esta tecnología permite la separación del hardware y el software, lo cual posibilita a su vez
que múltiples sistemas operativos, aplicaciones o plataformas de cómputo se ejecuten
simultáneamente en un solo servidor o PC según sea el caso de aplicación.
Hay varias formas de ver o catalogar la virtualización, pero en general se trata de uno de estos
dos casos: virtualización de plataforma o virtualización de recursos.
Virtualización de plataforma
Se trata de simular una máquina real (servidor o PC) con todos sus componentes (los cuales
no necesariamente son todos los de la máquina física) y prestarle todos los recursos necesarios
para su funcionamiento. En general, hay un software anfitrión que es el que controla que las
diferentes máquinas virtuales sean atendidas correctamente y que está ubicado entre el hardware
y las máquinas virtuales. Dentro de este esquema caben la mayoría de las formas de
virtualización más conocidas, incluidas la virtualización de sistemas operativos, la virtualización
de aplicaciones y la emulación de sistemas operativos.
42
Virtualización de recursos
Esta permite agrupar varios dispositivos para que sean vistos como uno solo, o al revés,
dividir un recurso en múltiples recursos independientes. Generalmente se aplica a medios de
almacenamiento. También existe una forma de virtualización de recursos muy popular que no es
sino las redes privadas virtuales o VPN, abstracción que permite a un PC conectarse a una red
corporativa a través de la Internet como si estuviera en la misma sede física de la compañía.
Virtualización de redes
La virtualización de redes es la reproducción completa de una red física en software. Las
redes virtuales ofrecen las mismas funciones y garantías que una red física; no obstante,
proporcionan las ventajas operacionales y la independencia del hardware propias de la
virtualización, lo que incluye aprovisionamiento rápido, implementación no disruptiva, y
mantenimiento y soporte automatizados para aplicaciones heredadas y nuevas.
La virtualización de redes ofrece dispositivos y servicios de red lógicos, tales como puertos
lógicos, switches, enrutadores, firewalls, equilibradores de carga, redes privadas virtuales (VPN,
Virtual Private Network), etc., para las cargas de trabajo conectadas. Las aplicaciones se ejecutan
en la red virtual exactamente del mismo modo en que lo hacen en una red física.
Puede crear una estructura de conexión de red altamente escalable que proporcione niveles
más altos de eficiencia operacional y agilidad, aprovisionamiento más rápido, resolución de
problemas y clonación, junto con el monitoreo, la calidad de servicio (QoS, Quality-of-Service)
y la seguridad; todo esto con el respaldo del software de virtualización de red de VMware.
43
VMware NSX será la plataforma de virtualización de red y seguridad líder en el mundo, que
proporcionará una red virtual móvil, programática y con servicio completo para máquinas
virtuales, y que podrá implementarse en cualquier hardware de red de protocolo de Internet (IP,
Internet Protocol) de uso general.
La plataforma VMware NSX combina lo mejor de Nicira NVP y VMwarevCloud Network
and Security (vCNS) en una sola plataforma unificada. VMware NSX cuenta con una serie
completa de elementos y servicios de red lógicos y simplificados que incluyen switches lógicos,
enrutadores, firewalls, equilibradores de carga, VPN, QoS, monitoreo y seguridad.
El producto final de la virtualización de redes es la red virtual. Las redes virtuales se
clasifican en dos clases principales: externas e internas. Las redes virtuales externas constan de
varias redes locales que el software administra como una única entidad. Las partes que
componen las redes virtuales externas clásicas son el hardware de conmutación y la tecnología
de software VLAN. Entre los ejemplos de redes virtuales externas, se incluyen las grandes redes
corporativas y los centros de datos.
Virtualización de servidores
Permite consolidar servidores e instalarlos dentro de un solo servidor, con el fin de ahorrar
espacio de almacenamiento, costos de hardware, electricidad y soporte. Esto también facilita el
manejo y aumenta la utilización de los recursos de hardware.
44
Las empresas pueden aumentar el aprovechamiento del servidor y del almacenamiento,
reduciendo los costos de equipamiento, energía, refrigeración y espacio. Al combinar servidores
y almacenamiento en conjuntos de recursos que se pueden distribuir a las aplicaciones que la
empresa necesite más, las operaciones de informática se pueden alinear a la cambiante demanda
y a las prioridades de la empresa.
Pensar en la virtualización de servidores es preparar una plataforma de virtualización que
facilita la creación de arquitecturas de computación en nube. Nuestras soluciones ayudan a que el
departamento de TI cumpla con los acuerdos de nivel de servicio de las aplicaciones
fundamentales más exigentes, con el menor costo total de propiedad (TCO, total cost of
ownership) posible.
1.7.8. Móviles
Las aplicaciones también llamadas apps están presentes en los teléfonos desde hace tiempo;
de hecho, ya estaban incluidos en los sistemas operativos de Nokia o Blackberry años atrás. Los
móviles de esa época, contaban con pantallas reducidas y muchas veces no táctiles, y son los que
ahora llamamos featurephones, en contraposición a los smartphones, más actuales.
En esencia, una aplicación no deja de ser un software. Para entender un poco mejor el
concepto, podemos decir que las aplicaciones son para los móviles lo que los programas son para
los ordenadores de escritorio.
45
Las comunicaciones móviles se dan cuando tanto el emisor como el receptor están, o pueden
estar, en movimiento. La movilidad de estos dos elementos que se encuentran en los extremos de
la comunicación hace que no sea factible la utilización de hilos (cables) para realizar la
comunicación en dichos extremos. Por lo tanto utilizan básicamente la comunicación vía radio.
Las comunicaciones móviles no aparecieron de forma comercial hasta finales del siglo XX.
Los países nórdicos fueron los pioneros en disponer de sistemas de telefonía móvil,
Radiobúsquedas (GPS), redes móviles privadas o Trunking. Los sistemas de telefonía móvil
avanzados fueron el siguiente paso. Después llegó la telefonía móvil digital y con la rápida
adopción mundial de las agendas personales, laptops (computadores portátiles), netbooks
(miniordenadores) y un sin fin de dispositivos las comunicaciones móviles se usaron cada vez
más para conectarse vía radio con otros dispositivos o redes. Finalmente cabe destacar la fusión
entre comunicaciones móviles e Internet, lo que fue el verdadero punto de inflexión positivo para
estos dos elementos.
1.7.9. Servidor de Bases de datos
Para bases de datos con múltiples usuarios sirve un servidor de base de datos. Las bases de
datos están situadas en un servidor y se puede acceder a ellas desde terminales o equipos con un
programa -llamado cliente- que permita el acceso a la base o bases de datos. Los gestores de base
de datos de este tipo permiten que varios usuarios hagan operaciones sobre ella al mismo tiempo:
un puede hacer una consulta al mismo tiempo que otro, situado en un lugar diferente.
46
Los servidores de bases de datos surgen con motivo de la necesidad de las empresas de
manejar grandes y complejos volúmenes de datos, al tiempo que requieren compartir la
información con un conjunto de clientes de una manera segura. Ante este enfoque, un sistema
gestor de bases de datos SGBD deberá ofrecer soluciones de forma fiable, rentable y de alto
rendimiento. A estas tres características, le debemos añadir una más: debe proporcionar servicios
de forma global y, en la medida de lo posible, independientemente de la plataforma. Internet se
ha convertido en nuestros días en la mayor plataforma de comunicaciones jamás vista. Esto hace
que las empresas tiendan a presentar su información a través de la Web en forma de contenidos,
que después los clientes consultarán para establecer relaciones con dichas empresas.
Arquitectura SOA
La Arquitectura Orientada a Servicios (SOA en inglés), es un concepto de arquitectura de
software que define la utilización de servicios para dar soporte a ciertos requisitos del negocio.
Esta arquitectura permite crear sistemas altamente escalables, que pueden ayudar a las
organizaciones a impulsar el rendimiento y, al mismo tiempo, reducir costos de TI y mejorar la
flexibilidad en los procesos del negocio.
SOA proporciona una metodología y un marco de trabajo para documentar las capacidades de
negocio y da soporte a las actividades de integración y consolidación de los datos de cualquier
organización.
47
Imagen 2. Arquitectura SOA
Fuente: Blog Emerging Technologies https://emergingtechuva.wordpress.com/2013/11/25/arquitectura-orientada-a-
servicios-soa/
a) Características
Servicios de datos escalables y flexibles.
Servicios de infraestructura para la autentificación, el control de acceso y el registro.
Servicios CRUD para crear, leer y actualizar datos de todas las formas de sistemas back-end,
incluidos datos estructurados, no estructurados, semi-estructurados, de mainframe y en la
nube.
Servicios de integración para ofrecer todas las funciones de integración de datos, como el
acceso, el perfilado, la transformación, la calidad y la entrega de datos, así como la
federación
Servicios de metadatos para gestionar y utilizar metadatos técnicos y de negocio para la
detección, la auditoría, el linaje y el análisis de impacto.
48
1.7.10. Internet
Internet es un conjunto de redes interconectadas a nivel mundial. Puede definirse como una
red mundial de redes de ordenadores. No es por tanto una red de ordenadores en el sentido usual,
sino una red de redes que tiene la particularidad de que cada una de las redes es independiente y
autónoma.
Las redes que forman parte de Internet son de muy diversa índole, propósito y tamaño. Hay
redes públicas y privadas; locales, regionales e internacionales; institucionales, educativas,
universitarias, dedicadas a la investigación, al entretenimiento, etc.
Permite, como todas las redes, compartir recursos. Es decir: mediante el ordenador, establecer
una comunicación inmediata con cualquier parte del mundo para obtener información sobre un
tema que nos interesa, ver los fondos de la Biblioteca del Congreso de los Estados Unidos, o
conseguir un programa o un juego determinado para nuestro ordenador. En definitiva: establecer
vínculos comunicativos con millones de personas de todo el mundo, bien sea para fines
académicos o de investigación, o personales.
Los ordenadores integrados en las redes que forman la red Internet son capaces de
comunicarse entre sí porque todos ellos utilizan el mismo idioma: los protocolos de
comunicación TCP/IP.
Un protocolo de comunicación es un conjunto de convenciones que determinan cómo se
realiza el intercambio de datos entre dos ordenadores o programas. Como decíamos, el protocolo
49
utilizado por todas las redes que forman parte de Internet es el denominado TCP/IP, siglas que en
realidad corresponden a dos protocolos distintos: TCP (Transmission Control Protocol), el
protocolo de control de transmisión, e IP (Internet Protocol), el protocolo Internet.
1.7.11. Bases de datos distribuidas
Por estos días las son más las personas que quieren compartir información a través de la red
desde diferentes lugares del mundo, y empresas que deben garantizar el compartimiento de los
archivos de los usuarios, así optan por dividir esta base de datos en unas más pequeñas
denominados fragmentos, los cuales se pueden colocar en distintas ubicaciones.
Entonces se llama base de datos distribuidas a los fragmentos que se encuentran almacenados
en lugares distintos. Estos sitios constan con una computadora y una DBMS (Sistema de gestión
de base de datos), para administrar la base local situada conectándose entre sí aquellos
fragmentos de una base distribuida por medio de una red de comunicación.
Al momento de surgir una petición de consulta de cualquier sitio, el administrador general de
la base de datos, analiza esta petición y determina qué tipo de base de datos distribuidos
(fragmentos) se puede necesitar. Las bases de datos locales pueden conectarse físicamente de
diversas formas:
Red totalmente conectada
Red prácticamente conectada
50
Red con estructura de árbol
Red de estrella
Red de anillo
Una de las mejoras realizadas como consecuencia de la integración con la Red Global, es la
de la posibilidad de permitir la compartición y distribución de la información a lo largo de los
servidores situados en cualquier parte del mundo. Esto permitirá a las empresas disponer de su
información sea cuál sea el lugar del mundo en el que se encuentre el departamento que la
procesa. E, incluso, permitirá a las empresas poder integrar sus bases de datos con sus
proveedores o clientes, de manera que podrán colaborar a nivel de servicios y recursos de
información, ganando en rapidez y fiabilidad. Para ello, los servidores de datos deberán
proporcionar los servicios de intercambio de información, reglas de sincronización.
Es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se encuentra
físicamente esparcido en varios sitios de la red.
Un sistema distribuido de bases de datos se almacena en varias computadoras. Los principales
factores que distinguen un SBDD de un sistema centralizado son los siguientes:
Hay múltiples computadores, llamados sitios o nodos.
Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones
para transmitir datos y órdenes entre los sitios.
51
1.8.Marco conceptual
1.8.1. Servidor
En Internet, un servidor es un ordenador remoto que provee los datos solicitados por parte de
los navegadores de otras computadoras. Los Servidores almacenan información en forma de
páginas web y a través del protocolo HTTP lo entregan a petición de los clientes (navegadores
web) en formato HTML.
Adicionalmente un servidor es un tipo de software que realiza ciertas tareas en nombre de los
usuarios. El término servidor ahora también se utiliza para referirse al ordenador físico en el cual
funciona ese software, una máquina cuyo propósito es proveer datos de modo que otras
máquinas puedan utilizar esos datos.
1.8.2. Servidor de base de datos
Los servidores de bases de datos surgen con motivo de la necesidad de las empresas de
manejar grandes y complejos volúmenes de datos, al tiempo que requieren compartir la
información con un conjunto de clientes (que pueden ser tanto aplicaciones como usuarios) de
una manera segura. Ante este enfoque, un sistema gestor de bases de datos (SGBD) deberá
ofrecer soluciones de forma fiable, rentable y de alto rendimiento. A estas tres características, le
debemos añadir una más: debe proporcionar servicios de forma global y, en la medida de lo
posible, independientemente de la plataforma. Internet se ha convertido en nuestros días en la
52
mayor plataforma de comunicaciones jamás vista. Esto hace que las empresas tiendan a presentar
su información a través de la Web en forma de contenidos, que después los clientes consultarán
para establecer relaciones con dichas empresas.
1.8.3. Computación en la nube
La computación en nube es un sistema informático basado en Internet y centros de datos
remotos para gestionar servicios de información y aplicaciones. La computación en nube permite
que los consumidores y las empresas gestionen archivos y utilicen aplicaciones sin necesidad de
instalarlas en cualquier computadora con acceso a Internet. Esta tecnología ofrece un uso mucho
más eficiente de recursos, como almacenamiento, memoria, procesamiento y ancho de banda, al
proveer solamente los recursos necesarios en cada momento.
Mediante este servicio la plataforma no se encuentra en un solo servidor sino en varios
servidores conectados entre sí (nube). Esta tecnología permite la creación de Centros de Datos
Virtuales que incrementan el desempeño, estabilidad y disminuyen notoriamente los gastos de
infraestructura.
1.8.4. Máquina virtual
Una máquina virtual es un software que permita simular un ordenador dentro del propio
ordenador donde dicho software es instalado. El ordenador simulado puede ejecutar aplicaciones
como si se tratase de un ordenador real. Este tipo de aplicaciones tiene diferentes usos aunque el
53
más extendido de ellos en los usuarios domésticos es la "prueba" de sistemas operativos, sin
tener que cambiar el que utilizan habitualmente.
1.8.5. Bases de datos
Es el conjunto de informaciones almacenadas en un soporte legible por ordenador y
organizadas internamente por registros (formado por todos los campos referidos a una entidad u
objeto almacenado) y campos (cada uno de los elementos que componen un registro). Permite
recuperar cualquier clase de información: referencias, documentos textuales, imágenes, datos
estadísticos, etc.
1.8.6. Servicios
Una función sin estado, auto-contenida, que acepta una(s) llamada(s) y devuelve una(s)
respuesta(s) mediante una interfaz bien definida. Los servicios pueden también ejecutar unidades
discretas de trabajo como serían editar y procesar una transacción. Los servicios no dependen del
estado de otras funciones o procesos. La tecnología concreta utilizada para prestar el servicio no
es parte de esta definición. Existen servicios asíncronos en los que una solicitud a un servicio
crea, por ejemplo, un archivo, y en una segunda solicitud se obtiene ese archivo.
1.8.7. SOAP (siglas de Simple Object Access Protocol)
Es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden
comunicarse por medio de intercambio de datos XML. Este protocolo deriva de un protocolo
54
creado por DaveWiner en 1998, llamado XML-RPC. SOAP fue creado por Microsoft, IBM y
otros. Está actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los
servicios Web.
1.8.8. Aplicación Móvil
En esencia, una aplicación no deja de ser un software. Para entender un poco mejor el
concepto, podemos decir que las aplicaciones son para los móviles lo que los programas son para
los ordenadores de escritorio.
1.8.9. Android
Es un sistema operativo basado en el núcleo Linux. Fue diseñado principalmente para
dispositivos móviles con pantalla táctil, como teléfonos inteligentes o tablets; y también para
relojes inteligentes, televisoresy automóviles. Inicialmente fue desarrollado por Android Inc.,
empresa que Google respaldó económicamente y más tarde, en 2005, compró.9 Android fue
presentado en 2007 junto la fundación del Open HandsetAlliance(un consorcio de compañías de
hardware, software y telecomunicaciones) para avanzar en los estándares abiertos de los
dispositivos móviles. El primer móvil con el sistema operativo Android fue el HTC Dream y se
vendió en octubre de 2008. Los dispositivos de Android venden más que las ventas combinadas
deWindowsPhone e IOS.
55
1.9.Marco histórico
1.9.1. Virtualización
La virtualización empezó a desarrollarse en la década de 1960 para particionar los mainframes
de gran tamaño a fin de mejorar su utilización.
Luego de unos años en los 80´s y 90´s este particionamiento de la capacidad de computo
prácticamente desaparece debido a la adopción de la arquitectura Cliente / Servidor donde parte
de las cargas de trabajo se trasladaban a las computadores de los usuarios.
Fue IBM quien empezó a implementar la virtualización hace más de 30 años como una
manera lógica de particionar ordenadores mainframe en máquinas virtuales independientes. Estas
particiones permitían a los mainframes realizar múltiples tareas: ejecutar varias aplicaciones y
procesos al mismo tiempo. Dado que en aquella época los mainframes eran recursos caros, se
diseñaron para particionar como un método de aprovechar al máximo la inversión.
La virtualización se abandonó de hecho en las décadas de 1980 y 1990, cuando las
aplicaciones cliente-servidor y los servidores x86 y escritorios económicos establecieron el
modelo de informática distribuida.
56
En 1999, VMware introdujo la virtualización en los sistemas x86 como un medio para
solucionar muchos problemas tales como incremento en la utilización de recursos, amenazas de
ataque de seguridad, mantenimiento de equipos de coste elevado entre otros y transformar los
sistemas x86 en infraestructuras de hardware compartido de uso general que ofrecen un
aislamiento completo, movilidad y opciones de elección del sistema operativo en los entornos de
aplicaciones.
1.9.2. Nube
La historia inicial de la computación en nube nos lleva a finales del siglo veinte, cuando la
prestación de servicios de computación comenzó. Sin embargo el concepto se remonta a J.C.R.
Licklider y John McCarthy.
En 1961, se sugiere públicamente que la tecnología de tiempo compartido (Time-Sharing) de
las computadoras podría conducir a un futuro donde el poder del cómputo e incluso aplicaciones
específicas podría venderse como un servicio (tal como el agua o la electricidad). Esta idea de
una computadora o utilidad de la información era muy popular en la década de 1960, incluso
algunas empresas comenzaron a proporcionar recurso compartidos como oficina de servicios -
donde se alquilaba tiempo y servicio de computo.
En 1996, Douglas Parkhill con su libro llamado "El desafío de la utilidad de la computadora"
exploró a fondo muchas de las características actuales de la computación en nube
57
(aprovisionamiento elástico a través de un servicio de utilidad), así como la comparación de la
industria eléctrica y el uso de las formas públicas, privadas, comunitarias y gubernamentales.
Las empresas de telecomunicaciones hasta la década de los 90s eran quienes ofrecían redes
privadas virtuales (VPN) con una calidad de servicio semejante, pero a un costo mucho menor.
Luego vino Eucalyptus en 2008, como la primera plataforma de código abierto compatible
con el API-AWS para el despliegue de clouds privados, seguido por OpenNebula, el primer
software de código abierto para la implementación de nubes privadas e híbridas. Microsoft
entraría hasta el 2009 con el lanzamiento de Windows Azure. Luego en 2010 proliferaron
servicios en distintas capas de servicio: Cliente, Aplicación, Plataforma, Infraestructura y
Servidor. En 2011, Apple lanzó su servicio iCloud, un sistema de almacenamiento en la nube -
para documentos, música, videos, fotografías, aplicaciones y calendarios - que prometía cambiar
la forma en que usamos la computadora.
Desde hace varios años, cuando una persona ha representado en forma gráfica el Internet, lo
ha hecho dibujando una nube. Y desde hace varios años el término “computación en la nube” o
“cloudcomputing” se escribe para referirse a Internet. El término y la figura de nube, representan
muy acertadamente la manera en que se trabaja en estos días: un computador personal que puede
ser muy básico, conectado a la nube (Internet), en la que se encuentra toda su “inteligencia”. Este
computador no necesita ser muy sofisticado; por ejemplo no necesita tener disco duro, ya que en
algún lugar del planeta se encuentra almacenada su información, a la que puede accesar a través
de Internet (nube).
58
1.9.3. Telefonía móvil
La telefonía celular es un sistema de comunicación telefónica totalmente inalámbrica, en este
caso los sonidos se convierten en señales electromagnéticas, que viajan a través del aire, siendo
recibidas y transformadas nuevamente en mensaje a través de antenas repetidoras o vía satélite.
El área que cubre una antena es una célula. Los encargados de diseñar el prototipo final de la
telefonía móvil, fueron los científicos del laboratorio Bell, quienes después de muchos intentos
inspirados en los radioteléfonos, dieron inicio a la telefonía celular en 1983, extendiéndose a
nivel mundial.
La historia de la telefonía celular se remonta a los años 40s, cuando motivada por la segunda
guerra mundial, la empresa Motorola desarrollo un teléfono móvil llamado HandieTalkie H12-
16, este aparato usaba ondas de radio que para ese momento no superaban los 60 MHz.
El primer teléfono móvil fue el NMT 450 (Nordic Mobile Telephony 450 MHz), desarrollado
por Ericsson, este aparato, todavía usaba las señales de radio con modulación de frecuencia.
Para esta época los teléfonos todavía eran aparatos grandes y pesados, pero constituían un
gran avance en términos de comunicación móvil. Posteriormente se avanzó a frecuencias de
radio (900 MHz) superiores a las ya conocidas.
59
La segunda generación nace a principios de los años 90s, utiliza sistemas GSM, IS-136, iDEN
e IS-95 con frecuencias de 900 y 1800 MHz. En esta generación se abandona el uso de ondas de
radio y se da paso a la era digital de las comunicaciones. Esto ofrece grandes ventajas como la
calidad de voz, mejora en la seguridad y bajos costos de operación.
La tercera generación se caracteriza por ampliar características como ancho de banda y
manejo de datos y ofrecer nuevos servicios como la teleconferencia, televisión, acceso pleno a
internet y descarga de archivos.
La generación 4, o 4G será la evolución tecnológica que ofrecerá al usuario de telefonía móvil
un mayor ancho de banda que permitirá, entre muchas otras cosas, la recepción de televisión en
Alta Definición.
1.10. Marco legal
Teniendo el en cuenta el artículo 71 de la constitución política de Colombia y refiriéndose al
conocimiento se deduce que La búsqueda del conocimiento y la expresión artística son libres.
Los planes de desarrollo económico y social incluirán el fomento a las ciencias y en general, a la
cultura. Por tal razón es importante reconocer que los proyectos tecnológicos cuentan con el
respaldo necesario para llevar a cabo dichas propuestas.
60
El software que se utiliza para la implementación del proyecto corresponde a herramientas
libres, y los equipos para el desarrollo del proyecto son recursos personales y recursos del grupo
de investigación METIS de la Universidad Distrital.
1.11. Metodología
RUP (Rationalunificatedprocess)
La configuración del Sistema de administración de servidores de bases de datos virtuales en la
nube controlados mediante un dispositivo móvil, se realiza utilizando la Metodología de
Desarrollo de Software RUP (Rationalunifiedprocess).
El Proceso Unificado se repite a lo largo de una serie de ciclos que constituyen la vida de un
sistema. Cada ciclo constituye una versión del sistema.
Fases: Cada ciclo constas de cuatro fases: inicio, elaboración, construcción, y transición. Cada
fase se subdivide en iteraciones. En cada iteración se desarrolla en secuencia un conjunto de
disciplinas o flujos de trabajos.
Disciplinas: Cada disciplina es un conjunto de actividades relacionadas (flujos de trabajo)
vinculadas a un área específica dentro del proyecto total. Las más importantes son:
Requerimientos, Análisis, Diseño, Codificación, y Prueba.
61
Cada disciplina está asociada con un conjunto de modelos que se desarrollan. Estos modelos
están compuestos por artefactos. Los artefactos más importantes son los modelos que cada
disciplina realiza: modelo de casos de uso, modelo de diseño, modelo de implementación, y
modelo de prueba.
Imagen 3. Fases Metodología RUP (RationalUnificatedProcess)
Fuente: http://ttps-ruby.github.io/capacitacion-ruby-ttps/#30
Arquitectura orientada a servicios (SOA)
Es un paradigma de arquitectura para diseñar y desarrollar sistemas distribuidos. Las
soluciones SOA han sido creadas para satisfacer los objetivos de negocio las cuales incluyen
facilidad y flexibilidad de integración con sistemas legados, alineación directa a los procesos de
negocio reduciendo costos de implementación, innovación de servicios a clientes y una
adaptación ágil ante cambios incluyendo reacción temprana ante la competitividad.
Permite la creación de sistemas de información altamente escalables que reflejan el negocio
de la organización, a su vez brinda una forma bien definida de exposición e invocación de
62
servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción
entre diferentes sistemas propios o de terceros.
SOA define las siguientes capas de software:
Aplicaciones básicas - Sistemas desarrollados bajo cualquier arquitectura o tecnología,
geográficamente dispersos y bajo cualquier figura de propiedad;
De exposición de funcionalidades - Donde las funcionalidades de la capa aplicativa son
expuestas en forma de servicios (generalmente como servicios web);
De integración de servicios - Facilitan el intercambio de datos entre elementos de la capa
aplicativa orientada a procesos empresariales internos o en colaboración;
De composición de procesos - Que define el proceso en términos del negocio y sus
necesidades, y que varía en función del negocio;
De entrega - donde los servicios son desplegados a los usuarios finales.
SOA proporciona una metodología y un marco de trabajo para documentar las capacidades de
negocio y puede dar soporte a las actividades de integración y consolidación.
A continuación se especifica y se integran las metodologías utilizadas con sus actividades
propias para el desarrollo de este proyecto.
63
Etapas del
Proyecto Modulo Metodología Actividades
Req
uer
imie
nto
s Administración
Ayuda
RUP
Identificación de actores
Lista preliminar de casos de uso
Depuración de casos de uso
Documentación de Casos de uso
Servicios Web SOA Identificación servicio Web
An
áli
sis
Administración
Ayuda
RUP
Lista de casos de uso
Depuración de casos de uso
Documentación de casos de uso
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Estado
Diagrama de Clase
Servicio Web SOA
Diagrama de Secuencia
Diagrama de Actividad
Diagrama de Estado
Diagrama de Clase
Dis
eño
Administración
Ayuda
RUP
Listado Inicial de Clases
Responsabilidades de las clases
Modelo de Interfaz
Servicio Web SOA
Lista Inicial de Clases
Responsabilidades de las Clases
Definir la organización del Código
Imp
lem
enta
ción
Administración
Ayuda
RUP
Documentación de Código Fuente
Implementar Clases
Definir la Organización del Código
Servicios Web SOA
Implementar Clases
Documentación de Código Fuente
Pru
ebas
Administración
RUP
Prueba de Sistemas
Ayuda Prueba de Integración
Servicio Web SOA Pruebas Servicio Web
Pruebas de Integración
Tabla 1. Metodología
64
1.12. Delimitaciones
1.12.1. Delimitación geográfica
El desarrollo de este proyecto se llevará a cabo en el Grupo de Investigación METIS de la
Universidad Distrital Francisco José de Caldas (Facultad Tecnológica).
1.12.2. Delimitación temporal
Para el completo diseño e implementación del presente proyecto se ha estimado un tiempo de
doce (15) meses, a partir de la institucionalización del anteproyecto.
1.12.3. Delimitación temática
El desarrollo del Sistema de Administración de servidores de Bases de Datos virtuales en la
nube controlados mediante un dispositivo móvil, está compuesto principalmente por dos partes:
el desarrollo de la aplicación móvil y la implementación del servidor de bases de datos en la
nube.
El Sistema de administración de servidores virtuales en la nube, contempla para su desarrollo
e implementación las herramientas de software libre que se encuentran relacionadas a
continuación:
65
SOFTWARE UTILIZADO PARA EL DESARROLLO
Java – Android
developertools
El SDK de Android proporciona las bibliotecas API y las herramientas
de desarrollo necesarias para crear, probar y depurar aplicaciones para
Android. Incluye los componentes del SDK de Android esenciales y una
versión del IDE de Eclipse con una función de ADT (Android Developer
Tools) para agilizar el desarrollo de aplicación Android.
Eclipse Eclipse es una plataforma de desarrollo open source basada en Java. Es
un desarrollo de IBM cuyo código fuente fue puesto a disposición de los
usuarios. En sí mismo Eclipse es un marco y un conjunto de servicios para
construir un entorno de desarrollo a partir de componentes conectados
(plug-in).
MySQL MySQL es el servidor de bases de datos relacionales más popular,
desarrollado y proporcionado por MySQL AB. MySQL AB es una
empresa cuyo negocio consiste en proporcionar servicios en torno al
servidor de bases de datos MySQL.
Apache El servidor HTTP Apache es un servidor web HTTP de código abierto,
para plataformas Unix (BSD, GNU/Linux, etc.),Microsoft
Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1
Amazon web
services
Amazon Web Services es una colección de servicios de computación en
la nube que en conjunto forman una plataforma de computación en la nube,
ofrecidas a través de Internet por Amazon.com.
66
Angular
framework
javascript
Es un impresionante framework javascript opensource desarrollado
por Google. Un framework para crear Webapps en lenguaje cliente con
Javascript ejecutándose con el conocido single-page
applications (aplicación de una sola página) que extiende el tradicional
HTML con etiquetas propias (directivas) como pueden ser ng-app, ng-
controller, ng-model, ng-view.
Cordova plugin Un plugin de Cordova/Phonegap sirve como unión entre el WebView que
muestra la aplicación híbrida y la plataforma nativa sobre la cual corre.
Estos plugins se componen de un interfaz JavaScript
Tabla 2. .Software utilizado para el desarrollo
1.12.4. Delimitación técnica
La plataforma inicial que va soportar el desarrollo del sistema de administración de servidores
está conformada por los siguientes componentes:
Sistema operativo Windows
Proveedor de servicios en la nube Amazon Web services
Manejador de base de datos MySQL
Servidor Web, de aplicaciones y de servicios Apache.
Lenguaje de programación Java especificación JEE
Ambiente de desarrollo Eclipse
Angular Framework javascript
Apache Ant
67
Cordovaplugin
Android studio.
1.13. Alcances
El proyecto consiste en el diseño y desarrollo del sistema de administración de servidores de
bases de datos virtuales en la nube controlados mediante un dispositivo móvil. Contempla el
desarrollo de los siguientes componentes:
● Mensajes de Correo: implementa el modelo de información a través de mensajes de
correo, cuando se presenten cambios de estado en los servicios del servidor virtual en la nube,
que permita al usuario mantenerse informado.
● Módulo de administración: Permite al usuario iniciar y detener las máquinas virtuales,
subir, bajar y hacer copias de seguridad del servicio de bases de datos a través del dispositivo
móvil.
● Módulo de ayuda, describe el funcionamiento de las diferentes opciones del sistema para
diferentes usuarios que lo utilizan, facilitando la comprensión de las diferentes facilidades que
ofrece.
● El sistema diseñado no controlara completamente las maquinas virtualizadas por lo que
solo se implementara las funciones básicas de prender y apagar la máquina y tres funciones
específicas para administrar el servicio de bases de datos implementado.
68
1.14. Recursos
1.14.1. Técnicos
Llevar a cabo la implementación del Sistema de administración de servidores de bases de
datos virtuales en la nube controlados mediante un dispositivo móvil, demanda el uso de
software de desarrollo el cual cuenta con un licenciamiento gratuito, por lo tanto, la estimación
de costos para la puesta en marcha no será afectada por el software utilizado. Los recursos
técnicos necesarios para la puesta en marcha del Sistema administración de servidores, se
relacionan a continuación:
Recurso Nombre
Sistema operativo Windows
Manejador de base de datos Mysql
Servidor de aplicaciones Apache
Lenguaje de programación Java/Android developertools
Ambiente de desarrollo Eclipse
Proveedor de Servicios en la nube Amazon web service
Servidor Web Jboss Tabla 3. Recursos técnicos
Además de los recursos técnicos otro aspecto importante, es la localización de los recursos
necesarios para el desarrollo e implementación del proyecto. Para lo cual se hace uso de los
equipos de cómputo disponibles en el Grupo de Investigación METIS, ubicado en la
Universidad Distrital Francisco José de Caldas, Facultad Tecnológica.
El proyecto es factible técnicamente porque gracias a la condición de licenciamiento libre que
tiene el software según la tabla anterior y la disposición del hardware por parte del grupo de
investigación METIS, se cuenta con los recursos necesarios para el desarrollo del proyecto.
69
1.14.2. Operativos
Llevar a cabo este proyecto demanda un equipo de trabajo humano que cumpla y realice
diferentes actividades, Para ello se cuenta con un grupo de personas cuyos nombres y funciones
se relacionan en la siguiente tabla:
Integrante del equipo Función
Sol Julliet Lozano Investigación y desarrollo para la realización del
proyecto.
Juan Carlos Guevara Bolaños Director del grupo de investigación METIS y tutor del
proyecto.
Tabla 4. Recursos operativos
1.14.3. Económicos
A continuación se relacionan los recursos necesarios para la realización de este proyecto de
investigación, identificando los costos de, el software, hardware, papelería y recursos humanos,
que se describen en las siguientes tablas.
Tipo Función Valor/Hora Cantidad Total
Tutor 1
Asesorías del tutor para la
realización del proyecto, respecto
a la metodología a seguir y las
herramientas tecnológicas con las
que se trabajara para llevar a cabo
el proyecto.
$ 60000
2
$120000
Diseñador El diseñador será la persona que
oriente en la interfaz de la
aplicación móvil y ayuda para el
usuario.
$ 30000 4 horas
semanales $120000
Desarrollador Se necesitara 1 programador que
realice la implementación de la
$ 45000 15 horas
semanales $ 675000
70
solución que se propone.
Total $1830000
Tabla 5. Recursos Económicos
Recursos técnicos se describen a continuación:
Tipo Descripción Valor
Unitario Cantidad Total
Servidores Los servidores se utilizaran para
las pruebas del proyecto serán los
servidores de Amazon donde se
utiliza la versión gratuita de 730
horas mensuales.
$0 3 $ 0
Computador Computador portátil para el
desarrollo y las pruebas del
sistema.
$ 1.200.000 1 $ 1200.000
Celular
Dispositivo móvil para las
pruebas de administración
Motorola Moto G 3ra generación.
$700000 1 $700.000
Total Recursos Técnicos $ 1900.000
Tabla 6. Recursos Técnicos
71
1.15. Cronograma
72
73
2. CONFIGURACIÓN DE LA CLOUD
Para la realización del servidor en la nube fue necesario investigar que es la cloud computing
y que tipo de cloud es necesaria, además de cada uno de los proveedores servicios en la nube
para poder seleccionar uno que nos brinde un buen servicio a bajo costo, el proveedor de
servicios en la nube con el que se realiza este proyecto es Amazon web Services por la gran
variedad de servicios ofrecidos.
2.1.Que es cloud computing
El término cloud computing hace referencia a una concepción tecnológica y a un modelo de
negocio que reúne ideas tan diversas como el almacenamiento de información, las
comunicaciones entre ordenadores, la provisión de servicios o las metodologías de desarrollo de
aplicaciones, todo ello bajo el mismo concepto todo ocurre en la nube.
2.2.Infraestructura de la cloud
La clase de cloud que fue seleccionada para la configuración y realización de este proyecto
es una IAAS Infraestructura como Servicio, modelo de distribución de infraestructura de
computación como un servicio, normalmente mediante una plataforma de virtualización. En vez
de adquirir servidores, espacio en un centro de datos o equipamiento de redes, los clientes
compran todos estos recursos a un proveedor de servicios externo. Una diferencia fundamental
74
con el hosting virtual es que el aprovisionamiento de estos servicios se hace de manera integral a
través de la web7.
De acuerdo a la clase de cloud seleccionada de acuerdo a las necesidades existentes se da una
definición del servicio que ofrece Amazon para la realización del montaje de los servidores
virtualizados en la nube.
2.3.Amazon EC2
Amazon EC2 es la la cual se utiliza para realizar el montaje de los servidores virtualizados,
Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que proporciona capacidad
informática con tamaño modificable en la nube. Está diseñado para facilitar a los desarrolladores
la informática en la nube escalable basada en web8.
La sencilla interfaz de servicios web de Amazon EC2 permite obtener y configurar su
capacidad con una fricción mínima. Proporciona un control completo sobre sus recursos
informáticos y permite ejecutarse en el entorno informático acreditado de Amazon. Amazon EC2
reduce el tiempo necesario para obtener y arrancar nuevas instancias de servidor en minutos, lo
que permite escalar rápidamente la capacidad, ya sea aumentándola o reduciéndola, según
cambien sus necesidades. Amazon EC2 cambia el modelo económico de la informática, al
permitir pagar solo por la capacidad que utiliza realmente. Amazon EC2 proporciona a los
desarrolladores las herramientas necesarias para crear aplicaciones resistentes a errores y para
aislarse de los casos de error más comunes.
7Tomado del Blog nubeblog. http://nubeblog.com/2008/10/15/saas-iaas-y-paas-las-tres-clases-de-cloud-computing/
8Tomado de la página principal de Amazon AWS. https://aws.amazon.com/es/ec2/
75
Para l configuración d elas maquinas virtuales en la nube es necesario tener una cuenta creada
en Amazon y realizar todo el proceso de creación d elas maquinas virtuales, ademaas de
configurar cada uno d elos usuarios que van acceder a realizar los cambios al servidor.
Para una mejor explicación referirse al manual tecnico que se encuentran en el anexo D
manual tecnico de este proyecto.
Ademas de realizar la configuración d elas maquinas virtuales hay que instalar y configurar el
servicio de bases de datos en cada una de las maquinas virtuales creadas linux y windows por lo
que es necesario dirigirse al manual tecnico del anexo D para revisar la configuración e
instalación del mismo.
76
3. Diseño del Proyecto
3.1.Modelamiento del negocio
Imagen 4. Gestión de interoperabilidad
77
Imagen 5. Gestión Administración servidor
78
3.2.Lista preliminar de casos de uso
Iniciar sesión
Prender servidor
Apagar Servidor
Subir servicio de Bases de datos
Bajar servicio de bases de datos
Realizar copias de seguridad de Bases de datos
Agregar máquina virtual
Editar máquina virtual
Configurar máquina virtual
Consultar ayuda
Cargar ayuda
Cerrar sesión
79
3.3.Modelo del Dominio
Imagen 6. Modelo del dominio
cd
Login
Lista
MainController
«interface»
Encender servicio de servidor«interface»
Get Lista Servidores «interface»
Get Servicios de Servidor
«interface»
Realizar Backup
«interface»
Apagar servicio de Servidor
serv er RequestController
Virtual Machine Serv icesVirtualMachineManagerServ ices
Virtual Machine
DataBaseManager
MailServ ices
RemoteServ ices
Agregar
UsuarioServ ices
80
3.4.Modelo de casos de Uso
Imagen 7. Modelo de casos de uso
ud Diagrama de casos de Uso
Usuario Administrador
Iniciar sesión
Prender serv idor
Apagar serv idor
Bajar serv ico de
bases de Datos
Realizar copias de
seguridad
Subir serv icio de
Base de datos
Agregar Maquina
Virtual
Editar maquina
v irtual
Configurar Maquina
v irtual
Consultar ayuda
Cerrar sesion
81
3.5.Documentación de caso de uso
Nombre Iniciar sesión
Actores Usuario administrador
Descripción El usuario debe ingresar los datos de ingreso al sistema.
Precondiciones Se debe tener instalada la aplicación en el celular para
acceder y utilizar la funcionalidad.
Postcondiciones Ingresar al menú de selección.
Flujo normal de eventos 1. Ingresar a la aplicación móvil.
2. ingresar datos de usuario y contraseña.
Manejo de situaciones
excepcionales
Si el usuario no se encuentra registrado se mostrara un
mensaje de datos incorrectos debe registrarse para
ingresar a la aplicación.
Tabla 7. Documentación caso de uso iniciar sesión
Nombre Prender servidor
Actores Usuario administrador
Descripción Se debe poder prender la máquina virtual desde la
aplicación móvil sin realizar ninguna otra opción para
ejecutar la acción.
Precondiciones Ingresar a la aplicación y tener asociado un token e
ingresar a la opción para dar la orden.
Postcondiciones Ejecución de la opción y visualizar mensaje de
confirmación de la opción ejecutada.
Flujo normal de eventos 1. seleccionar opción a ejecutar.
2. Enviar acción.
3. Ejecutar actividad.
Manejo de situaciones
Excepcionales
Si el usuario no selecciona la acción a ejecutar no se
aplicara ninguna acción sobre el servidor.
Tabla 8. Documentación caso de uso prender servidor
82
Nombre Apagar servidor
Actores Usuario administrador
Descripción Se debe poder apagar la máquina virtual desde la aplicación
móvil sin realizar ninguna otra acción solo seleccionando la
opción.
Precondiciones Ingresar a la aplicación tener asociado un token y seleccionar
la acción a realizar.
Postcondiciones Ejecutar la acción en el servidor seleccionado y visualizar
mensaje de confirmación.
Flujo normal de eventos 1. Seleccionar la opción.
2. Enviar acción
3. Ejecutar acción.
4. Enviar resultado.
Manejo de situaciones
excepcionales
Si no se selecciona la opción a ejecutar no se realiza ninguna
acción, o si esta es seleccionada y ocurre un error de
comunicación este mostrara un mensaje informando sobre el
problema ocurrido.
Tabla 9. Documentación caso de uso Apagar servidor
83
Nombre Subir servicio de Bases de datos
Actores Usuario administrador
Descripción A través del aplicativo se debe poder subir el servicio de bases
de datos que se encuentra alojado en las maquinas
virtualizados en el servidor en la nube.
Precondiciones Se debe ingresar a la aplicación tener asociado un tokeny
seleccionar la acción a realizar sobre el servidor.
Postcondiciones Ejecución de la acción seleccionada y visualizar mensaje de
confirmación de la acción realizad sobre el servidor.
Flujo normal de eventos 1. seleccionar acción.
2. Enviar acción a realizar sobre el servicio en el servidor.
3. Ejecutar la acción.
4. Enviar mensaje de confirmación.
Manejo de situaciones
excepcionales
Si no se selecciona la opción a realizar no se ejecuta ninguna
acción sobre el servicio y si este no se ejecuta se debe
informar el problema ocurrido en la comunicación.
Tabla 10. Documentación caso de uso Subir Servicio Base de datos
84
Nombre Bajar servicio de base de datos
Actores Usuario Administrador
Descripción Se debe por medio del aplicativo poder bajar el servicio de
bases de datos instalado en una de las máquinas virtuales.
Precondiciones Se debe ingresar al aplicativo tener asociado un token y
seleccionar la acción a realizar.
Postcondiciones Ejecución realizada y visualización de mensaje de
confirmación de la acción.
Flujo normal de eventos 1. seleccionar la acción a realizar.
2. Enviar datos de ejecución.
3. Se ejecuta la acción dentro del servidor virtualizado.
4. Visualizar mensaje de confirmación.
Manejo de situaciones
excepcionales
Si no se selecciona opción no se ejecuta acción sobre el
servidor y si este llega fallar debe mostrar mensaje de
error informado el inconveniente.
Tabla 11. Documentación caso de uso Bajar Servicio de Base de Datos
85
Nombre Realizar copias de seguridad base de datos
Actores Usuario Administrador
Descripción Se debe poder realizar copias de seguridad de la base de
datos instalada en los servidores virtualizados.
Precondiciones Se debe estar logueado en el sistema tener asociado un
token y seleccionar la opción de copias de seguridad.
Postcondiciones Ejecución de la acción dentro de la base de datos, ver
mensaje de confirmación de acción.
Flujo normal de eventos 1. seleccionar acción a realizar.
2 enviar datos de acción.
3. Ejecutar acción.
4. Mensaje de confirmación.
Manejo de situaciones
excepcionales
Si no se selecciona la acción no se realiza acción y si esta
acción no se ejecuta debe mostrar mensaje de información
de error.
Tabla 12. Documentación caso de uso Realizar Copias de Seguridad
86
Nombre Agregar máquina virtual
Actores Usuario Administrador
Descripción Se debe poder configurar nuevas máquinas virtuales en el
servidor de la nube.
Precondiciones Se debe estar logueado tener asociado un token e iniciar
actividad en la aplicación.
Postcondiciones Crear una nueva máquina virtual en el servidor AWS.
Flujo normal de eventos 1. registrar los datos del usuario.
2. Iniciar actividad en la aplicación.
3. Dar clic en el botón agregar.
4. Ingresar datos máquina virtual.
5. Visualización de máquina virtual creada.
Manejo de situaciones
excepcionales
Si la información ingresada no es correcta no crea
máquina virtual y muestra mensaje de error.
Tabla 13. Documentación caso de Uso Agregar Máquina Virtual
87
Nombre Editar Máquina virtual
Actores Usuario Administrador
Descripción Se debe poder configurar y actualizar la máquina virtual
si se cambia de equipo en algún momento.
Precondiciones Se debe haber iniciado actividad en la aplicación tener
asociado un token e ingresar al menú.
Postcondiciones Poder modificar la máquina virtual y sus datos de
configuración
Flujo normal de eventos 1. registrar los datos del usuario.
2. inicio de actividad.
3. Dar clic en editar.
4. Ingresar datos de máquina virtual.
Manejo de situaciones
excepcionales
Si el usuario no ha iniciado actividad y los datos
ingresados son erróneos aparece mensaje de error
indicando que los datos no corresponden.
Tabla 14. Documentación caso de Uso Editar Máquina Virtual
88
Nombre Configurar Máquina virtual
Actores Usuario Administrador
Descripción Permitir que el usuario pueda configurar el móvil al cual
se va a conectar con el servidor.
Precondiciones Se debe haber iniciado actividad en el aplicativo tener
asociado un tokeny seleccionar la opción.
Postcondiciones Se configura con la información del móvil con el que se
utiliza para la administración.
Flujo normal de eventos 1. ingresar a la aplicación.
2. Seleccionar la opción.
3. Ingresar datos de configuración.
Manejo de situaciones
excepcionales
Si los datos ingresados no son correctos no podrá realizar
la conexión con el servidor.
Tabla 15. Configurar Máquina Virtual
Nombre Consultar ayuda
Actores Usuario Administrador
Descripción Permitir que el usuario pueda consultar ayuda acerca de
las opciones de administración que se presentan.
Precondiciones Se debe estar en el aplicativo y en el módulo de
administración.
Postcondiciones Se debe poder ver la opción de consultar ayuda y las
opciones las cuales se puede consultar.
Flujo normal de eventos 1. ingresar ala aplicación.
2. Seleccionar el tema a consultar.
3. Visualizar los temas seleccionados.
Manejo de situaciones
excepcionales
Si el usuario no se encuentra registrado no puede
visualizar la opción de ayuda.
Tabla 16. Documentación caso de uso Consultar ayuda
89
3.6.Diagramas de secuencia
Prender Servidor
Imagen 8. Diagrama de secuencia Diagrama de secuencia Prender Servidor
sd Prender Serv idor
Usuario Administrador Lista RequestController
UsuarioServices VirtualMachineManagerServices
Lista Maquinas Virtuales
Seleccionar Maquina virtual
Seleccionar Encender Maquina Virtual
Enviar peticion encender servidor
Validar token
Token correcto
Hipervisor Enciende Maquina Virtual
Envia estado del servidor
Retorna Mensaje
Envia mensaje
Muestra Mensaje al usuario
90
Apagar servidor
Imagen 9. Diagrama de Secuencia Apagar servidor
sd Apagar Serv idor
Usuario Administrador Lista RequestController
UsuarioServices VirtualMachineManagerServices
Lista Maquinas Virtuales
Seleccionar maquina Virtual
Seleccionar Apagar maquina Virtual
Enviar petición Apagar Servidor
Validar token
Token Correcto
Hipervisor Apaga Maquina virtual
Envia estado al servidor
Retorna mensaje
Envia mensaje
Muestra mensaje al usuario
91
Subir servicio de BD
Imagen 10. Diagrama de Secuencia subir Servicio de Base de Datos
sd Subir_serv icio_BD
Usuario Administrador Login RequestController
UsuarioServices DatabaseManager RemoteControllerServices
MailServices
Lista Maquinas Virtuales
Seleccionar Maquina Virtual
Seleccionar Subir Servicio base de datos
Enviar petición Subir servicio de BD
Validar Token
Token correcto
Subir servicio de Base de datos
Ejecuta acción sobre base de datos
Envia correo al usuario con el estado del servicio
Retorna estado del servicio
Retorna datos del estado del servicio
Retorna mensaje
Retorna estado del servicio BD
Muestra mensaje
92
Realizar copias de seguridad
Imagen 11. Diagrama de Secuencia Realizar copias de seguridad
Los diagramas correspondientes a los demás caos de uso se encuentran en los anexos A, B, C.
sd Realizar copias de seguridad
Usuario Administrador Login RequestController
UsuarioServices DatabaseManager RemoteControllerServices
Listar Maquinas virtuales
Seleccionar maquina Virtual
Seleccionar Crear Backup BD
Enviar petición realizar ccopias BD
Validar token
Token correcto
Realizar backup
Ejecutar acción crear Backup
Retorna mensaje
Retorna mensaje
Retorna mensaje
Retona mensaje
muestra mensaje al usuario
93
3.7.Diagramas de comunicación
Prender servidor
Imagen 12. Diagrama de Comunicación Prender Servidor
Apagar servidor
Imagen 13. Diagrama de Comunicación Apagar Servidor
sd Prender serv idor
Usuario Administrador
Lista
REquestController
Usuario services
VirtualMachineManagerServices
1: Listar Maquinas Virtuales
1.1: Seleccionar Maquina Virtual
1.2: Seleccionar Encender Maquina Virtual
1.3: Enviar petición al seridor
1.4: Validar token
1.5: Token correcto
1.6: Hipervisor Enciende Maquina virtual
1.7: Envia estado al servidor
1.8: Retorna mensaje
1.9: Envia mensaje1.10: Muestra mensaje al usuario
sd Apagar_serv idor
Usuario Administrador
Lista
REquestController
Usuario services
VirtualMachineManagerServices
1: Listar Maquinas virtuales
1.1: Seleccionar maquina virtual
1.2: Seleccionar apagar Maquina virtual
1.3: Enviar petición al servidor
1.4: Validar token
1.5: Token correcto
1.6: Hipervisor apagar Maquina virtual
1.7: Enviar estado al servidor
1.8: Retorna mensaje
1.9: Envia mensaje
1.10: Muestra mensaje al usuario
94
Subir servicio de Base de Datos
Imagen 14. Diagrama de Comunicación Subir Servicio Bases de Datos
Realizar copias seguridad
Imagen 15. Diagrama de Comunicación Realizar copias seguridad
sd subir_serv icio_BD
UsuarioAdministradorRemoteControllerServices
UsuarioServices
MailServices
Lista
RequestController
DatabaseManager
1: Listar Maquinas virtuales
1.1: Seleccionar maquina virtual
1.2: Seleccionar subir servicio de BD1.3: Enviar petición Subir servicio BD
1.4: Validar token
1.5: Token correcto
1.6: Subir servicio de bases de datos
1.7: Ejecuta acción sobre el servidor
1.8: Envia correo al usuario con el estado del servicio
1.9: Retorna estado del servicio
1.10: Retorna mensaje
1.11: Retorna estado del servicio
1.12: Retorna mensaje
1.13: Muestra mensaje
sd Realizar_backup
UsuarioAdministrador
RemoteControllerServices
UsuarioServicesLista
RequestController
DatabaseManager
1: Listar maquinas virtuales
1.11: Seleccionar Maquina virtual
1.1: Seleccionar Realizar backup
1.2: Enviar petición al servidor
1.3: Verificar token
1.4: Token correcto
1.5: Realizar backup
1.6: Ejecutar acción Realizar backup sobre la Base de datos
1.7: Retorna el estado del servicio
1.8: Retorna mensaje
1.9: Retorna estado del servicio
1.12: Muestra mensaje
1.10: Retorna mensaje
95
3.8.Diagramas de Actividad
Prender servidor
Imagen 16. Diagrama de Actividad Prender Servidor
ad Prender_serv idor
UsuarioServ icesVirtualMachineManagerserv ices
RequestControllerLista
Inicio
Listar Activ idades
Env iar datos al serv idor v alidar token
Env iar tokenEstablecer conexión
hipev isor prende
serv idor
Realizar acción
Serv idor Prendido Servidor prendidoRetorna mensajeMuestra mensaje
Seleccionar Encender
maquina v irtual
Token correcto?
Datos incorrectosNo puede realizar la
acción[si]
[no]
96
Apagar servidor
Imagen 17.Diagrama de Actividad Apagar Servidor
ad Apagar_serv idor
UsuarioServ ices VirtualMachineManagerserv icesRequestControllerLista
Inicio
Listar Activ idades
Env iar datos al serv idor v alidar token
Env iar tokenEstablecer conexión
hipev isor apaga
serv idorApagar serv idor
Env ia estado
apagado
Servidor
apagadoRetorna mensaje
Muestra mensaje
Seleccionar apagar
maquina v irtual
Token correcto?
Datos incorrectosNo puede realizar la
acción[si]
[no]
97
Subir servicio BD
Imagen 18. Diagrama de Actividad Subir Servicio Base de Datos
ad Subir_serv icio_BD
RemoteContollerServ icesMailServ ices
UsuarioServ ices VirtualMachineServ icesUsuariosServ icesLista
Inicio
Listar opciones
Cargar ayuda v alidar token
Env iar tokenEstablecer conexión
Env ia mensaje
Enviar datos
Maquina
virtualActualiza lista de
maquinas v irtuales
Actualiza datos maquina
v irtualesMuestra lista con la
nuev a maquina v irtual
Seleccionar crear backup
Realizar backup
No existe conexión
Token correcto?
Token inv alido
Realizar ación backup
base de datos
Env iar correo estado
del serv icio
[No]
[Si]
98
Realizar copias de seguridad
Imagen 19. Diagrama de Actividad Realizar copias de Seguridad
ad copias_seguridad_BD
RemoteContollerServ icesUsuarioServ ices VirtualMachineServ icesUsuariosServ icesLista
Inicio
Listar opciones
Cargar ayuda v alidar token
Env iar tokenEstablecer conexión
Env ia mensaje
Enviar datos
Maquina
virtual
Actualiza lista de
maquinas v irtuales
Actualiza datos maquina
v irtuales
Muestra lista con la
nuev a maquina v irtual
Seleccionar crear backup
Realizar backup
No existe conexión
Token correcto?
Token inv alido
Realizar ación backup
base de datos
[No]
[Si]
99
3.9.Diagramas de Estado
Administración
Imagen 20. Diagrama de Estado Administración
Configuración
Imagen 21. Diagrama de Estado Configuración
sm Diagarama_estados
Activ idad iniciada
Serv idor Prendido
Serv idor apagado
Serv icio Corriendo
Serv icio Abajo
Copia realizada
sm Estado_configuración
Usuario logueado
Maquin Virtual adicionada
Maquina v irtual actulizada
Maquina CConfigurada
Activ idad Iniciada
Ayuda consultada
100
3.10. Diagrama de clases
Imagen 22. Diagrama de Clases
3.11. Lista de clases
MainController
Login
Lista
Agregar
cd Diagrama_clases
Login
Lista
MainController
serv er RequestController
Virtual Machine Serv ices
VirtualMachineManagerServ ices
Virtual Machine
DataBaseManager
MailServ ices
RemoteServ ices
Agregar
UsuarioServ ices
101
RequestController
UsuarioServices
VirtualMachineServices
VirtualMachineManagerServices
DatabaseManager
MailServices
RemoteControllerServices
3.12. Responsabilidades de las clases
Clase MainController
Descripción Clase encargada de verificar si hay una conexión activa
si existe un token asociado.
Método Responsabilidad
GetMaquina ( ) Guarda los datos localmente.
Tabla 17. Responsabilidad Clase MainController
Clase Login
Descripción Clase encargada de gestionar el ingreso del usuario ala
aplicación.
Método Responsabilidad
Ingresar ( ) Realiza el logueo del usuario y guarda el token localmente.
Tabla 18. Responsabilidad Clase Login
102
Clase Lista
Descripción Clase encargada de cargar la lista de las máquinas virtuales
y las opciones de administración.
Método Responsabilidad
EncenderMaquina ( ) Este método se encarga de enviar la acción de encender la
máquina virtual.
ApagarBD ( ) Envía la acción de bajar el servicio de BD al servidor.
BackupBD ( ) Se encarga de enviar la acción al servidor de realizar las
copias de la base de datos.
GuardarEdición ( ) Envía la petición al servidor y actualiza la lista de máquinas.
RedConfig ( ) Redirecciona a la vista de configuración.
RedPDF ( ) Redirige a la vista inicial.
RedSalir ( ) Desloguea al usuario y redirecciona a la vista.
Tabla 19. Responsabilidad Clase Lista
Clase Agregar
Descripción Esta clase realiza la adición de nueva máquinas virtuales.
Método Responsabilidad
NuevaMaquina ( ) Envía la petición al servidor de adicionar una nueva
máquina y actualiza la vista en la lista.
Tabla 20. Responsabilidad Clase Agregar
Clase PDF
Descripción Se encarga de mostrar la ayuda si el usuario lo solicita.
Método Responsabilidad
NuevaMaquina ( ) Se encarga de cargar la ayuda para la explicación del
funcionamiento de la aplicación.
Tabla 21. Responsabilidad Clase PDF
103
Clase DatabaseManager
Descripción Se encarga de realizar las consultas y la administración en la
base de datos.
Método Responsabilidad
DatabaseManager ( ) Se encarga de realizar él envió de datos para validación
´para realizar la conexión.
CreateBackupDatabase ( ) Esta se encarga de tomar los datos enviados y realizar la
acción de copias de seguridad.
CreateDatabase ( ) Este método crea las bases de datos de acuerdo a la
información suministrada.
Tabla 22. Responsabilidad de la Clase DatabaseManager
Clase VirtualMachineServices
Descripción Se encarga de realizar las modificaciones o inserciones
de nuevas máquinas virtuales.
Método Responsabilidad
VirtualMachineServices ( ) Este método contiene los datos del servidor virtual.
Insert( ) Realiza la inserción y crea una nueva máquina virtual de
acuerdo a los datos que el usuario ingrese.
FindAll ( ) Este es el encargado de buscar las máquinas virtuales
existentes.
FindByInstanced ( ) Encargado de realizar la búsqueda de una instancia de
bases de datos dentro de un servidor.
Update ( ) Este método es el encargado de actualizar, los datos de
las máquinas virtuales que el usuario seleccione.
Tabla 23. Responsabilidad Clase VirtualMachineServices
104
Clase RequestController
Descripción Clase encargada de administrar y procesar las solicitudes que realiza
el cliente tener publicados los servicios que van hacer consumidos
respeto a la petición.
Método Responsabilidad
Requestcontroller( ) Prepara la clase para recibir las peticiones a los servicios.
Test( )
validateLogin( ) Se encarga de en enviar los datos a la clase para establecer la
conexión del usuario.
Logout( ) Mensaje de error.
FindByintanceId ( ) Se encarga de recibir, los datos para buscar la instancia del servidor
seleccionado.
CreateVirtualMachine ( ) Realiza la gestión de los datos para realizar la creación de otra
máquina virtual.
Update VirtualMahine ( ) Recibe, los datos actualizar de la máquina virtual seleccionada.
FindAllVirtualMachine ( ) Buscar máquina virtual seleccionada.
StartVirtualMachine ( ) Recibe la acción de prender la máquina virtual.
StopVirtualMachine( )
Se encarga de direccionar la clase que debe ejecutar la acción de
apagar la máquina.
BackupDatabase( )
Se encarga de hacer toda la gestión para realizar las copias de base
de datos.
StopServiceDatabase( )
Se encarga de realizar la gestión para bajar el servicio de bases de
datos.
StartServiceDatabase ( ) Realiza la gestión para realizar el inicio del servicio.
Tabla 23. Responsabilidad Clase RequestController
105
Clase RemoteControllerServices
Descripción Esta clase se encarga de bajar y subir el servicio de base de
datos en el servidor virtual alojado en la nube.
Método Responsabilidad
RemoteControllerServices ( ) Este es el constructor para que la acción sea realizada en la
máquina virtual.
ExecuteRemoteComand ( ) Método encargado de enviar métodos remotos al servicio de
BD que se encuentran en la máquina virtual.
Tabla 24. Responsabilidad Clase RemoteControllerServices
Clase MailServices
Descripción Esta clase se encarga de enviar los correos informando al
usuario el estado de los servicios dentro de las máquinas
virtuales.
Método Responsabilidad
MailServices ( ) Este es el método constructor creado para que funcione
los demás métodos.
Init ( ) Estos son métodos privados que inician el envío.
SendEmail ( ) Método encargado de convertir el mensaje a html y
además enviar el correo Las cuentas de envío de correo
deben permitir el login desde cualquier dispositivo
LoadProperties ( ) Carga las propiedades para enviar correo.
Tabla 25. Responsabilidad MailServices
106
3.13. Diccionario de datos
Atributo Tipo
Llave
Primaria
Llave
foránea
Null Notnull
Id Int X X
Name Varchar X
intanceId Varchar X
statusCheck varchar X
publicDnsName varchar
Tipo varchar
correos varchar
Estado varchar
secretAccessKey varchar X
accessKeyId varchar X
Tabla 26. Diccionario de Datos VirtualMachine
Atributo Tipo
Llave
Primaria
Llave
foránea
Null Notnull
Id Int X X
Nombre Varchar X
Usuario Varchar X
107
Contraseña varchar X
Token varchar
Estado varchar X
Tabla 27. Diccionario de Datos Tabla Usuario
108
3.14. Modelo lógico
3.14.1 Servidor Java
Imagen 23. Modelo lógico servidor
cd Diagrama Logico
«JavaClass»
ConexionBD
- passwordDB: String
- serialVersionUD: long
- Servidor: String
- urlConexion: String
- usuarioDB: String
+ ConexionBD() : void
+ getConexion(String) : Conecction
+ getConexion() : Connection
«JavaClass»
UsuarioServ ices
+ changeToken(long, String) : void
+ findByLogin(String, String) : IUsuario
+ findByLogin(char, String) : Usuario
+ findToken(String) : Usuario
- generateToken() : void
+ UsuarioServices() : void
«JavaClass»
CorreoServ ices
- logger: Logger
+ correoServices() : void
+ findAll() : List<Correo>
«JavaInterface»
IUsuario
+ changeToken(long, String) : void
+ findByLogin(String, String) : IUsuario
+ findToken(String) : IUsuario
«JavaInterface»
ICorreo
+ findAll() : List<Correo>
«JavaClass»
MailServ ices
- Correo: Correo
- correo: List<Correo>
- Logger: Logger
+ fi l lCorreos() : void
+ init() : void
+ loadProperties() : Properties
+ MailServices() : void
+ SendEmail(String, String, String) : void
«JavaInterface»
IVirtualMachineManager
+ startVirtualMachine(String) : VirtualMachine
+ stopVirtualMachine(String) : VirtualMachine
«JavaInterface»
IVirtualMachine
+ findAll() : List Virtual Machine[]
+ findByIntanceld(String) : VirtualMachine
+ insert(String, String, String, String, String, String) : VirtualMachine
+ update(VirtualMachine) : VirtualMachine
«JavaClass»
RequestController
- Logger: Logger
- Usuario: Usuario
+ backupDatabase(String, String) : VirtualMachine
+ createVirtualMachine(String, String, String, String, String, String, String) : VirtualMachine
+ findAllVirtualMachine(String) : VirtualMachine[]
+ findByIntanceld(String, String) : VirtualMachine
+ logout(long) : Usuario
+ RequestController() : void
+ sendEmail(String, String, String) : void
+ startServiceDataBase(String, String) : VirtualMachine
+ startVirtualMachine(String, String) : VirtualMachine[]
+ stopServiceDatabase(String, String) : VirtualMachine
+ stopVirtualMachine(String, String) : VirtualMachine[]
+ test() : String
+ updateVirtualMachine(String, String, String, String, String, String, long, String, String) : VirtualMachine
+ validateLogin(String, String) : Usuario
+ validateToken(String) : void
«JavaClasss»
VirtualMachineManagerServ ices
- Logger: Logger
+ getPublicDnsNameVirtualMachine(amazonEC2, String) : String
+ getStatusCheckVirtualMachine(amazon, String) : State VirtualMachine
+ startVirtualMachine(RequestController) : VirtualMachine
+ stopVirtualMachine(String) : VirtualMachine
+ virtualMachineManagerServices() : void
«JavaClass»
VirtualMachineServ ices
+ findAll() : VirtualMachine[]
+ findByInstance(String) : VirtualMachine
+ insert(String, String, String, String, String, String) : VirtualMachine
+ update(VirtualMachine) : VirtualMachine
+ virtualMachineServices() : void
«JavaClass»
TokenGenerator
- Especiales: String
- Mayusculas: String
- Minusculas: String
- Numeros: String
+ getPinNumber() : String
+ getToken() : String
+ getToken(int) : String
+ getToken(String) : String
+ TokenGenerator() : void
0..1 {ordered}
0..1 {ordered}0..1 {ordered}
0..1 {ordered}
0..1 {ordered}
109
3.14.2. Cliente Android
Imagen 24. Modelo Lógico Cliente
cd diagrama_logico
MainController
+ GetItem() : void
+ GetMaquina() : void
+ InputServer() : void
+ SetItem() : void
Login
+ GetItem() : void
+ Ingresar() : void
+ Response() : void
Lista
+ BackupBD() : void
+ EncenderMaquina() : void
+ EncendrBD() : void
+ GuaradarEdicion() : void
+ GuardarEdición() : void
+ pagarBD() : void
+ RedConfig() : void
+ RedPDF() : void
+ RedSalir() : void
Agregar
+ NuevaMaquina() : void
+ Response() : void
+ PDF() : void
110
3.15. Modelo físico
3.15.1. Servidor java
Imagen 25. Modelo Físico Servidor
cd Modelo_Fisisco
Usuario
- Contraseña: string
- Estado: String
- Id: long
- Mensaje: String
- Nombre: string
- Token: String
- Usuario: string
+ GetContraseña() : void
+ GetEstado() : void
+ GetId() : void
+ GetMensaje() : void
+ GetNombre() : void
+ GetToken() : void
+ GetUsuario() : void
+ SetContraseña() : void
+ SetEstado() : void
+ SetId() : void
+ SetMensaje() : void
+ SetNombre() : void
+ SetToken() : void
+ SetUsuario() : void
+ ToString() : void
+ Usuario() : void
VirtualMachine
- AccessKeyId: String
- Correo: String
- Estado: String
- EstadoDatabase: String
- instanced: String
- Long: int
- Mensaje: String
- name: String
- PublicDNSname: String
- SecretAceesKey: String
- Tipo: String
+ GetAccessKeyId() : void
+ GetCorreo() : void
+ GetEstado() : void
+ GetEstadoDatabase() : void
+ GetId() : void
+ getInstanceId() : void
+ GetMensaje() : void
+ GetName() : void
+ GetPublicDNSName() : void
+ GetSecretAccessKey() : void
+ GetStatusCheck() : void
+ GetTipo() : void
+ ToString() : void
+ VirtualMachine() : void
Correo
- Correo: String
- Id: long
- Password: String
+ Correo() : void
+ GetCorreo() : void
+ GetId() : void
+ GetPassword() : void
+ SetCorreo() : void
+ SetId() : void
+ SetPassword() : void
+ ToString() : void
DatabaseManager
+ CreataeDatabase() : void
+ CreateBackupDatabase() : void
+ DatabaseManager() : void
111
4. Implementación
4.1.Diagrama de componentes
Imagen 26. Diagrama de Componentes
4.2.Diagrama de despliegue
Imagen 27.Diagrama de Despliegue
id Diagarama_Componentes
Administarción Maquinas
v irtuales
Ayuda
Configuración Serv idor
v irtualRequestController.jav a
Configuración
VirtualMachine
Usuarios
Correo
Administración Bases de
datos
dd Diagarama_despliegue
«interface»
Cliente
APK Android
«server page»
Apache Tomcat
Jav a Aplication
Database interface
«artifact»
Database server
MySQL database
Usuario
Amazon AWS
Maquinas
v irtuales Base de datos
TCP/IP
«trace»
Ingreso datos
«trace»
TCP/IP
«trace»
HTTP/ connecction
«send»
112
4.3.Diagrama de paquetes
Imagen 28. Diagrama de Paquetes
5. SISTEMA INTEGRADO
5.1 Definición Arquitectura
5.1.1. Elementos y principales componentes del sistema
id Diagrama de paquetes
JS
APK
VirtualMachineManagerConnection
VirtualMachineManagerController
VirtualMachineManagerEntities
VirtualMachineManagerModelImpl
VirtualMachineManagerUtil
ConexiónBD DatabaseManager
RequestController
usuario
VirtualMachine
UsuarioServ ices VirtualMachineManagerServ ices
VirtualMachineServ ices
StateVirtualMachine
TokenGenerator
VirtualMachineManagerModel
IUsuario
IVirtualMachineManager
VirtualMachine
113
Los principales componentes que hacen parte del desarrollo de este sistema se describen a
continuación para una mejor explicación y comprensión de los mismos se definen en la siguiente
imagen.
Cliente Android
Rest Service Aplication Server
Servidor JAVA
HTTP
BD
Amazon Web Services
Servicio BD
Servicio BD
Servidores Virtuales
TCP/IP
WEB APIJSON
Request
Imagen 29.Arquitectura del sistema Integrado
fuente: Autoría propia
114
La comunicación entre los componentes de este sistema se realiza de la siguiente forma por
medio de la tecnología REST la cual se acopla de una manera más fácil a los servicios que se
quieren implementar en este proyecto.
La tecnología rest funciona a través del protocolo HTTP es el medio de comunicación y por
dónde se accede a los datos.
Imagen 30. Funcionamiento tecnología REST
Fuente: http://academiaandroid.com/video-tutoriales/
Descripción de recursos
Para la implementación de esta forma de arquitectura en este proyecto se realiza a
continuación una descripción detallada de cada uno de los servicios implementado y como se
realiza la comunicación entre el cliente y el servidor.
115
Recursos (servicios expuestos)
FindDatabasesByIntanceID: encuentra las bases de datos alojadas en una máquina virtual
ValidateLogin: Realiza la validación del usuario con el cual se loguea.
Logout: realiza la acción de desloguea el usuario cerrar la sesión.
FindByIntanceId: Encuentra la instancia de la máquina virtual.
CreateVirtualMachine: almacena las máquinas virtuales.
UpdateVirtualMachine: Actualiza las máquinas virtuales.
FindAllVirtualMachine: busca todas las máquinas virtuales.
StartVirtualMachine: Enciende una maquina virtual.
StopVirtualMachine: Apaga la máquina virtual.
BackupDatabase: genera un backup de la base de datos que se envié.
StopServiceDatabase: Detiene el servicio de bases de datos de una maquina virtual.
StartServiceDatabase: Enciende el servicio de bases de datos.
Métodos utilizados
El método utilizado para la implementación es el método method= RequestMethod.GET por el
cual se realiza el llamado y la forma en que toma los datos desde del cliente, y para solicitar
consumir los servicios al servidor se utiliza el método http.get, para responder las peticiones del
cliente se utiliza ResponseBody o RequestParam el cual indica el tipo de dato que va a
responder al cliente android.
116
Formato de comunicación
Para devolver los datos es necesario utilizar un formato de intercambio de datos el cual se utilizó
JSON de esta manera se puede leer y acceder a la información fácilmente desde el servidor
como se visualiza en el siguiente ejemplo utilizado para definir el logueo del usuario donde se
realiza la solicitud desde el cliente y este le responde el siguiente mensaje:
"id":1,"nombre":"Usuario De
Pruebas","usuario":"test","contraseña":"test","token":"8orZjV8oVBJ","estado":"activo","mens
aje": null}
De esta forma el cliente toma los datos enviados desde el servidor y lo muestra al usuario en la
aplicación en este caso le deja abrir una sesión y le muestra las opciones a las que el usuario
puede navegar dentro de ella.
A continuación se muestra como se realiza el flujo de datos y de funcionamiento para el caso de
uso de encender máquina virtual de acuerdo a la tecnología de arquitectura utilizada.
Llamado desde el cliente:
$http.get("http://" + server + ":" + port + "/" + path + "/startVirtualMachine?intanceId=" +
instancia + "&token=" + token)
Aquí se realiza la petición al servidor por medio del método get y el llamado al servicio
startVirtualMachine el cual está expuesto en el servidor de la siguiente manera:
@RequestMapping(value ="/startVirtualMachine", method = RequestMethod.GET)
117
Este a su vez hace un mapeo de los datos que necesita para poder enviar a un método que se
implementa dentro de la clase VirtualMachineManagerServices donde se envía la acción por
medio de objetos a la máquina virtual de Amazon este método recibe el parámetro de la máquina
para realizar la acción de esta forma:
List<String> instanceIds = new LinkedList<String>();
instanceIds.add(instaceId);
StartInstancesRequest startIR = new StartInstancesRequest(instanceIds);
ec2.startInstances(startIR);
virtualMachine.setStatusCheck(StateVirtualMachine.valueOf(validarEstadoMaquinaVirt
ual(ec2, instaceId)));
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.setInstanceIds(instanceIds);
DescribeInstancesResult result = ec2.describeInstances(request);
List<Reservation> list = result.getReservations();
El cual retorna un objeto de tipo virtualMachine el cual obtiene los estados de la máquina virtual
y actualiza la lista que se muestra al cliente en Android donde se recibe la respuesta de la
siguiente forma.
$scope.respuesta = response;
if (response.mensaje != ""){
alert("Se ha presentado un error");
}else{
alert("Accion de Encendido Satisfactoria");
}
});
118
En la siguiente imagen se da una explicación de la trasferencia de información que se acopla a
las tecnologías utilizadas en la implementación de los servicios para la definición del sistema.
Cliente (Java script Android)
Database Manager
RquestMapping Value URI method =
RequestMethod.GET
Servidor APACHE
Métodos JavaAPI REST
Usuario
Servidores Amazon
HTTP
HTTP
GET
Response
Servidores de bases de datos
Base de datos
Base de datos
stopping, stopped,
starting, running
Genera el evento al servidor
sendEmail: enviar correo
con estado de servidor
Realiza las acciones por medio de mensajes JSON
Llamado: http.get URI
Respuesta: scope.respuesta =
response
Imagen 31. Definición de funcionamiento arquitectura
Fuente: Autoría propia
119
Cliente Android: esta es una aplicación la cual se encarga de recibir los datos e interactuar
directamente con el usuario permitiendo el ingreso y posteriormente realizar las acciones sobre el
servidor, esta se realiza para que funcione con el sistema operativo Android la cual contiene las
siguientes dependencias Angular Framework Javascript, Apachet Ant, Cordova plugin,
Phonegap framework y Android studio. Es encargada de realizar peticiones al servidor el cual
tiene unos servicios expuestos para ser consumidos por el cliente y así proporcionar la
información necesaria al usuario de una manera más fácil, clara y rápida.
Servidor Java: esta es la aplicación encargada de codificador en java y exponer unos
servicios que van hacer consultados y expuestos al cliente, se realiza toda la conexión entre el
cliente Android y el servidor mediante una arquitectura llamada Rest la cual consiste en el
desarrollo web apoyándose en el estándar HTTP para una mejor comunicación entre diferentes
servicios aplicaciones además de ser una arquitectura estandar para crear APIs para servicios
orientados a internet creando una interface de comunicación donde las responsabilidades sea
completamente diferente entre ambas partes.
Servidores virtuales en la nube: servicio alojado en la nube en donde un proveedor de
servicios nos brinda máquinas virtuales como servidores para realizar las configuraciones de
servicios de bases de datos, esta maneja una arquitectura IAAS infraestructura como servicio
donde ofrecen almacenamiento y capacidades de computo como servicios estandarizados.
Amazon web services es el proveedor utilizado para realizar la configuración de los servicios
y servidores virtualizados donde se crean dos máquinas virtuales una con sistema operativo
120
Windows y la otra con sistema operativo Linux están contienen un servicio de bases de datos
para ser administrados desde el celular del usuario.
Funcionamiento
5.1.2. Capas del sistema
La arquitectura del sistema implementada está basada en REST, al ser un paradigma para el
diseño de soluciones orientadas al desarrollo web además de brindar flexibilidad y facilidad de
integración con diferentes metodologías y estar ligada, brindando ventajas de costos e
innovación al cliente, con alto grado de escalabilidad en la figura se muestra las capas
implementadas.
Aplicación Android
Capa de aplicación
Capa de Negocio
Componente de gestión java
Capa de servicios
Rest
Rest
Imagen 32. Capas del sistema
Fuente: autoría propia
El sistema se compone de tres partes diferenciales que son:
121
Capa de aplicación
Capa de servicios
Capa de datos
Capa de aplicación: esta capa encargada de la interface con el usuario, donde captura la
información digitada en el componente APK de Android, se define una serie de interfaces
grafica para que el usuario ingrese los datos necesarios para la administración de la aplicación
está definida en el cliente el cual consume unos servicios expuestos en la capa de servicios.
Esta capa está diseñada por algunas herramientas como angular framework javascript que
permiten diseñar interfaces de visualización con el usuario de una forma amigable e intuitiva
para el usuario, esta capa compuesta de una serie de empaquetamientos con las paginas
diseñadas en CSS y en javasscript imágenes para realizar el renderizado de los componentes de
la vista desplegada en el dispositivo Android.
Capa de servicios: Esta capa es donde se encuentran alojados y expuestos los servicios los
cuales pueden ser consumidos por el cliente, estos servicios son consumidos por medio de una
URI desde el cliente y reciben todas las peticiones realizadas al servidor , los servicios diseñados
para esta capa son los siguientes:
Get lista servidores: Este servicio se encargara de retornar una lista con todos los servidores
administrados por la aplicación.
Get Servicios de servidor: Encargado de retorna la lista de servicios administrables de un
servicio particular.
122
Realizar backup:dado un servidor, realiza el backup de la base de datos contenida en él.
Apagar servicio de servidor: Este tiene la función de dado un servicio y un servidor. Lo
apaga.
Encender servicio de servidor:dado un servicio y un servidor. Enciende dicho servicio.
Cada servicio recibe un argumento para la identificación del servicio o el servidor hacer
administrado (id servicio, id de servidor) esta identifica cada uno de la información la cual va
hacer accedida por medio de una URI que contiene un recurso por medio de un identificador y
tener acceso a su ubicación y ser ejecutada la acción seleccionada por el usuario la estructura
enviada siempre incluye el protocolo de comunicación el host al cual va hacer accedido, puertos
de comunicación además de la ruta donde se encuentra publicado el servicio hacer consultado,
para la publicación de los servicios se utilizó Apache server como servidor de aplicaciones.
Capa de Datos: En esta capa contiene un hibrido con negocio y gestores de bases de datos
aquí reside lógica del negocio gestores de bases de datos donde se realiza todo el
almacenamiento de datos en el servidor java hay una implementación de clases las cuales se
comunican con la capa de aplicación para la realización de gestión en ingreso de datos de
almacenamiento de la base de datos, se encuentra alojado en el mismo equipo donde se encuentra
el servidor y se encarga de realizar las búsquedas en las bases de datos, los servicios en la nube
proporcionan un estabilidad en la información la cual puede ser accedida través de internet, para
realizar la comunicación con el servidor virtual alojado en la nube se realiza por medio de un
API el cual realiza el paso de mensajes con un formato llamado JSON para permitir la
comunicación con Amazon web services.
123
5.1.3. Mecanismos arquitecturales necesarios para el sistema
Para el funcionamiento de la arquitectura planteada en este documento es necesario conocer
cada uno de los mecanismos aquí definidos, donde el conjunto de estos forman el
funcionamiento correcto de la comunicación e interacción entre cada uno de los componentes,
cada una de las capas tiene una función dentro del sistema para permitir una mejor comunicación
dentro de los componentes donde la capa de aplicación permitirá hacer todos los llamados a la
capa de servicios, que es donde se alojaran los servicios definidos para la comunicación por
medio del patrón RESTque permitirá la comunicación por medio del protocolo HTTP para
ejecutar las acciones en los servidores virtualizados.
La arquitectura REST definida para la implementación de los servicios nos brinda una
independencia entre las responsabilidades entre las interfaces de comunicación, permitiendo así
que las peticiones sean completamente independientes.
Cada vez se necesita usar servicios web REST ya que definen un cliente y un servidor
realizando peticiones independientes por medio de los métodos GET,POST, PUT,DELETE y
permitiendo así brindar mayor escalabilidad y describir cualquier interfaz permitiendo que se
ejecute directamente el HTTP para las peticiones.
Este es el principal mecanismo para permitir la comunicación entre cada uno de los
componentes además del medio que en este caso es internet través de sus protocolos que
permiten interconexión y el trasporte de datos para la administración de los servidores.
124
5.1.4. Tecnologías elegidas para cada una de las capas
Las tecnologías utilizadas se encuentran las siguientes:
Capa de aplicación
PhonegaGap: es un framework para el desarrollo de aplicaciones móviles producido por
Nitobi, y comprado posteriormente por Adobe Systems. Principalmente, PhoneGap permite a los
programadores desarrollar aplicaciones para dispositivos móviles utilizando herramientas
genéricas tales como JavaScript, HTML5 yCSS3.
Cordova pluging: Un plugin de Cordova/Phonegap sirve como unión entre el WebView que
muestra la aplicación híbrida y la plataforma nativa sobre la cual corre. Estos plugins se
componen de un interfaz JavaScript común que se usa en todas las plataformas, y de
implementaciones nativas que siguen unos interfaces específicos para cada plataforma a los que
la parte JavaScript hará referencia.
Bootstrap framework: construir un sistema completo a partir de sus componentes base, o bien,
de previas versiones pre compiladas de esos componentes.
HTTP: Protocolo de transferencia de hipertexto es el método más común de intercambio de
información en la worldwide web, el método mediante el cual se transfieren las páginas web a un
ordenador.
Android: Android es un sistema operativo orientado a dispositivos móviles, basado en una
versión modificada del núcleo Linux. Inicialmente fue desarrollado por Android Inc., una
125
pequeña empresa, que posteriormente fue comprada por Google; en la actualidad lo desarrollan
los miembros de la Open Handset Alliance (liderada por Google).
Intel xdk: es una herramienta para desarrollar apps cross-plataform utilizando HTML5.
Con XDK, los desarrolladores pueden programar usando tecnologías estándar como HTML5 y
desde una misma base de código generar apps para distintas plataformas.
Tecnologías capa de servicios
Rest: La Transferencia de Estado Representacional (RepresentationalState Transfer)
o REST es un estilo de arquitectura software para sistemas hipermedia distribuidos como
la World Wide Web. El término se originó en el año 2000, en una tesis doctoral sobre la web
escrita por Roy Fielding, uno de los principales autores de la especificación del
protocolo HTTP y ha pasado a ser ampliamente utilizado por la comunidad de desarrollo.
JSON: (JavaScript ObjectNotation - Notación de Objetos de JavaScript) es un formato ligero
de intercambio de datos. Leerlo y escribirlo es simple para humanos, mientras que para las
máquinas es simple interpretarlo y generarlo.
URI: Un identificador de recursos uniforme o URI del inglés Uniform Resource Identifieres
una cadena de caracteres que identifica los recursos de una red de forma unívoca.
126
Java:es un tipo de lenguaje de programación de propósito general, concurrente, orientado a
objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación
como fuera posible.
Tecnologías de la capa de datos
Amazon Web Services:Amazon Web Services es una colección de servicios de computación
en la nube que en conjunto forman una plataforma de computación en la nube, ofrecidas a través
de Internet por Amazon.com.
HTML: TML es un lenguaje de programación que se utiliza para el desarrollo de páginas
de Internet. Se trata de la sigla que corresponde a HyperText Markup Language, es
decir, Lenguaje de Marcas de Hipertexto, que podría ser traducido como Lenguaje de Formato de
documentos para hipertextos.
TCP/IP: son las siglas de Protocolo de Control de Transmisión/Protocolo de Internet (en
inglés Transmission Control Protocol/Internet Protocol), un sistema de protocolos que hacen
posibles servicios Telnet, FTP, E-mail, y otros entre ordenadores que no pertenecen a la misma
red.
MYSQL: Lenguaje de Consulta Estructurado permitiera generar múltiples y extendidas bases
de datos para empresas y organizaciones de diferente tipo.
127
5.1.5. Componentes comparados o de código abierto forma en que se tomó la decisión
Para decidir que componentes eran los adecuados se realiza un estudio con las diferentes
tecnologías de comunicación entre la arquitectura a utilizar:
128
Tecnología Rendimiento Facilidad Diseño SI NO
Sockets Los sokets tienen un
rendimiento mucho
mejor entre meno
sobrecarga haya.
Hay bastante documentación y no es
difícil su diseño porque se encuentra en
muchas plataformas.
X
RPC Es muy fácil de utilizar
pero son de mejor
rendimiento los RPC.
Abstrae la comunicación a nivel de
invocación estos se utilizan para
programación estructurada en donde se
utilizan librerías, este método consiste
en llamar procedimientos localizados
en otras máquinas.
X
RMI Tienen un mejor
rendimiento que los
servicios web SOAP y
que los socket.
Java RMI es basado en java invoca un
método en forma remota proporciona
mecanismos simple de comunicación.
X
XML-RPC Tiene el mismo
funcionamiento que
RPC.
La facilidad de esta teoría hace que los
mensajes sean trasmitidos por medio
del protocolo HTTP utiliza comandos
útiles y descripción completa de corta
extensión.
X
Servicios web
(SOAP)
Está diseñado para
soportar una
interacción
interoperable maquina
a máquina sobre una
red.
Estos servicios son APIS que pueden
ser accedidos dentro de una red y son
ejecutados dentro del sistema de donde
están creados.
X
Servicios Web
Rest
Ha pasado a ser
ampliamente utilizado
por la comunidad de
desarrollo por ser
utilizado por la
En esta arquitectura se ponen los
recursos con los nombres que se le
asigna a cada uno y cada uno tendrá su
identificador para sr accedido a través
de unos métodos.
X
129
existencia de recursos
que pueden ser
accedidos utilizando
un identificador global.
Tabla 28. Selección de tecnologías
5.1.6. Descripción de los principales patrones de diseño
Para el desarrollo de este proyecto se utilizó encapsulamiento el cual consiste de la siguiente
manera, existe un programa diversos atributos y métodos que servirán para el funcionamiento de
este, para la interacción del usuario con el objeto necesario que se apliquen o se encuentren
disponibles solo aquellos métodos que le servirán al usuario para utilizar ese objeto manteniendo
oculto aquellos que servirán para el funcionamiento interno.
El encapsulamiento consiste en permitir la visibilidad de atributos y métodos en una clase
determinada teniendo tres niveles de la siguiente manera privados (private) que se utilizaran solo
en esa clase, protegidos (protected) que se utilizaran por todas métodos, clases y atributos
mientras se encuentre en el mismo package y los públicos (public) que pueden ser usados por
cualquier clase o método.
Identificación de protocolos
Para el desarrollo de los servicios y la comunicación definida dentro de estos es necesaria la
identificación de los protocolos utilizados para el trasporte de mensajes lo cual se utilizaron
servicios web por la capacidad funcionar con distintas interfaces de una manera más sencilla para
conectar las interfaces de comunicación.
130
Se define que la arquitectura a utilizar es REST por ser más sencilla de diseñar además de no
necesitar demasiado ancho de banda, describe cualquier interfaz entre sistemas que utilicen el
protocolo HTTP para obtener los datos y ejecutar operaciones sobre los datos.
REST es un estilo de arquitectura software para sistemas hipermediadistribuidos como
la World Wide Web. Este es altamente escalable y tiene una serie de diseños fundamentalmente
clave como son:
Un protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la información
necesaria para comprender la petición. Como resultado, ni el cliente ni el servidor necesitan
recordar ningún estado de las comunicaciones entre mensajes. Sin embargo, en la práctica,
muchas aplicaciones basadas en HTTP utilizan cookies y otros mecanismos para mantener el
estado de la sesión (algunas de estas prácticas, como la reescritura de URLs, no son
permitidas por REST)
Un conjunto de operaciones bien definidas que se aplican a todos los recursos de
información: HTTP en sí define un conjunto pequeño de operaciones, las más importantes
son POST, GET, PUT y DELETE. Con frecuencia estas operaciones se equiparan a las
operaciones CRUD en bases de datos (ABMC en castellano: crear,leer,actualizar,borrar) que
se requieren para la persistencia de datos, aunque POST no encaja exactamente en este
esquema.
Una sintaxis universal para identificar los recursos. En un sistema REST, cada recurso es
direccionable únicamente a través de su URI.
El uso de hipermedios, tanto para la información de la aplicación como para las transiciones
de estado de la aplicación: la representación de este estado en un sistema REST
131
son típicamente HTML o XML. Como resultado de esto, es posible navegar de un recurso
REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra
infraestructura adicional.
Adicional a la arquitectura a utilizar el formato para las operaciones realizadas serán por
medio de JSON que es un formato ligero para el intercambio de datos, un subconjunto de la
notación literal de objetos de JavaScript y no requiere el uso de XML este formato brinda
grandes ventajas por ser más sencillo y analizador sintáctico de Jsonesto es debido a que es
mucho más sencillo “parsear” los datos JSON a la estructura que se quiere almacenar.
6. Instalación APK Android
El apk que contiene la aplicación móvil es un tipo de archivo que esta empaquetada usando
algunas tecnologías traducidas al lenguaje de Android. Para la instalación y configuración de esta
se debe realizar la configuración del celular en la sesión de seguridad para habilitar la
instalación de aplicaciones desconocidas esto se puede apreciar en el manual de instalación que
se encuentra en el anexo H de este proyecto.
7. Pruebas
Para la realización de la verificación del sistema y su funcionamiento se realizó la ejecución
de los siguientes casos de prueba en donde se involucran diferentes escenarios con el fin de
realizar una mejor suspensión de la calidad de la aplicación y así mitigar posibles errores al
usuario, por ser una aplicación que realiza un a función de alto grado de seguridad en los datos
que se manejan y se administran.
Durante la ejecución de las pruebas a la aplicación final se encontraron diferentes errores en
cuanto a conexión a visualización y funcionalidad lo cual fue corregido correctamente y realizo
el respectivo retest para verificar que los errores hayan sido corregidos y que esta corrección no
132
genere nuevos errores que puedan afectar la correcta funcionalidad de la aplicación y la finalidad
de satisfacer las necesidades de los usuarios.
Caso de
prueba
nume
ro
Descripción pasos Resultado
esperado
Resultado
obtenido
Estado
Ingresar
aplicativo
CP01 Ingresar al
aplicativo con los
datos de usuario y
contraseña.
1. se debe estar
registrado en el
sistema.
2. Ingresar usuario y
contraseña.
3. dar clic ingresar.
4. Visualizar menú de
navegación.
Ingresar a la
aplicación de
forma correcta
visualizando las
opciones de
navegación.
Se visualiza
las máquinas
virtuales creadas y
las opciones para
administración y
configuración.
Exitoso
Crear
máquina
virtual
CP02 Crear una
máquina virtual desde
el aplicativo móvil.
1. se debe ingresar a
la aplicación.
2. dar clic sobre la
opción crear máquina
virtual.
3. diligenciar los
datos del formulario.
4. dar clic en guardar.
Se muestra en
el listado la
máquina virtual
creada.
Se visualiza
una lista con el
nombre y el
estado de la
máquina virtual.
Exitoso
Configurar
conexión
CP03 Realizar la
configuración
desplegando los
formularios de datos.
1. ingresar al
aplicativo.
2. ingresar datos de
configuración.
3. dar clic en guardar.
Poder
configurar un
nuevo dispositivo
de forma correcta.
Permite
configurar el
dispositivo para
conectarse al
servidor
exitoso
Adicionar
máquina
virtual
CP04
Ingresar los datos
de conexión a una
máquina virtual
creada en Amazon
web services.
1. ingresar los datos
dentro del formulario.
2. dar clic en guardar.
Visualizarlas
maquina virtuales
creadas en
Amazon web
servicies en el
aplicativo móvil.
Se visualiza
un listado con el
nombre de la
maquina la
instancia y el
color indicando el
estado de la
máquina.
fallido
Ver
maquinar
CP05 Ingresa a la
opción ver máquinas
1. ingresar a la
aplicación.
Se visualiza
las máquinas
Visualización
de máquinas en la
exitoso
133
virtuales virtuales visualiza el
listado de máquinas
virtuales.
2. dar clic en el botón
ver máquinas
virtuales.
virtuales creadas. lista.
Ver ayuda CP06 Visualizar la
ayuda donde está la
explicación del
manejo de la
aplicación.
1. ingresar al
aplicativo.
2. dar clic en el botón
ayuda.
3. descarga PDF.
Visualizar la
explicación de las
diferentes
opciones dentro
de la herramienta.
Visualización
de PDF con
explicación de
cada uno de las
opciones.
Exitoso
Salir de la
aplicación
CP07 Poder desloguear
y cerrar la sesión
iniciada por el
usuario.
1. ingresar al
aplicativo.
2. dar clic en salir.
Cerrar la
sesión iniciada.
Se desloguea
de la aplicación
además de cerrar
la sesión iniciada
Exitoso.
Encender
Máquina
virtual
CP08 Encender la
máquina virtual
seleccionada desde la
aplicación.
1. ingresar a la
aplicación.
2. seleccionar la
máquina virtual.
3. dar clic en el botón
encender máquina
virtual.
Máquina
virtual encendida
visualización de
mensaje.
Se visualiza
un mensaje de
confirmación de
la máquina virtual
encendida.
fallido
Apagar
máquina
virtual
CP09 Apagar la
máquina virtual
seleccionada desde la
aplicación.
1. ingresar a la
aplicación.
2. seleccionar
máquina virtual.
3. dar clic en el botón
apagar máquina
virtual.
Máquina
virtual apagada,
visualización de
mensaje.
Se visualiza
mensaje
confirmando que
la máquina virtual
fue apagada.
exitoso
Encender
servicio de
base de datos
CP10 Encender servicio
de bases de datos de
la máquina virtual
seleccionada.
1. ingresar a la
aplicación.
2. seleccionar
máquina virtual.
3. dar clic en el botón
encender servicio de
base de datos.
Base de datos
arriba,
visualización de
mensaje.
Muestra
mensaje de
verificación.
exitoso
Apagar
servicio de
bases de datos
CP11 Apagar servicio
de base de datos.
1. ingresar a la
aplicación.
2. seleccionar
máquina virtual.
3. dar clic en el botón
apagar servicio de
Base de datos
abajo,
visualización de
mensaje.
Muestra
mensaje de
verificación.
exitoso
134
base de datos.
Realizar
copias de
seguridad
CP12 Realizar copias de
seguridad de bases de
datos.
1. ingresar a la
aplicación.
2. seleccionar
máquina virtual.
3. dar clic en el botón
realizar backup.
Copia
realizada,
visualización de
mensaje.
Muestra
mensaje de
verificación.
exitoso
Tabla 29. Diseño Casos de Prueba
7.1.Escenarios de pruebas
Los escenarios de prueba se realizan de acuerdo a la planeación de cada uno de los casos de
uso descriptos en este proyecto haciendo parte de las pruebas realizadas a la aplicación para
verificar su correcto funcionamiento, en donde se evidencia errores y sus respectivas
correcciones, y donde se garantiza que la aplicación realiza cada una de las acciones descriptas
en este proyecto, estos escenarios de prueba se encuentran en el anexo E Pruebas del sistema
adjuntos en este proyecto.
Por favor dirigirse al anexo E.
135
8. CONCLUSIONES
El desarrollo de la aplicación móvil para la administración de servidores virtuales es
una buena forma de tener una herramienta de optimización de servicios de tal forma
que permita un control más eficiente y comodidad para los usuarios.
Para la administración de los servidores virtuales fue necesario escoger una
arquitectura que permita la comunicación de una forma escalable y fácil de
comunicación entre distintos sistemas.
El proyecto permitió el estudio y comprensión de diferentes tecnologías como
Phonegab, Html5, Android, para el desarrollo del aplicativo móvil evidenciando, las
ventajas que estas tienen al implementarlas en cuanto a los aspectos de innovación de
nuevas alternativas de comunicación e interfaces amigables para el usuario.
La utilización de servicios en la nube es una buena técnica para brindar disponibilidad
en cualquier momento y desde cualquier lugar donde físicamente las personas se
encuentren además de los beneficios en cuanto ahorro de actualizaciones y
mantenimientos de servidores.
Con la realización del proyecto se evidencia que las aplicaciones móviles son el auge
actualmente y que estas son de gran ayuda para las necesidades de los usuarios
136
9. RECOMENDACIONES
Este proyecto es apropiado para la administración de varias opciones de los servidores en una
empresa para su mayor utilidad sería bueno ampliar su funcionalidad para poder ejercer control
en todas las aplicaciones que se puedan instalar en las máquinas virtuales y así optimizar mejor
los recursos ofrecidos de una manera más completa, además de mejorar los módulos de
administración de la aplicación Android para un mejor aprovechamiento en cuanto a movilidad
y gestión de los mismos.
137
10. BIBLIOGRAFÍA
1. ESPINOSA, Mejía, Mauricio; Álvarez, Pedro. El ciclo de vida de un servicio Web
compuesto: virtudes y carencias de las soluciones actuales. Departamento de Informática e
Ingeniería de Sistemas, Universidad de Zaragoza María de Luna, 50018 Zaragoza, España 23 de
marzo de 2012.
2. BUENO, Eduardo. Catedrático de Economía de la Empresa y Presidente de Euroforum
Escorial, “La Gestión del Conocimiento: Nuevos Perfiles Profesionales”. 24 de junio de 1999.
3. JOYANES, Aguilar, Luis; Estrategias de Cloud Computing en las empresas. Alfaomega
México 2012.
4. LUJAN, Castillo, Jose; Aprenda desde cero a crear aplicaciones, Alfaomega México de
2015.
138
11. INFOGRAFAFIA
[1]. Tomado de la página principal de Android.
http://developer.android.com/sdk/index.html?hl=sk
[2]. Trabajo de grado de fin de carrera.
http://upcommons.upc.edu/pfc/bitstream/2099.1/14907/1/memoria.pdf
[3]. Memoria de proyecto
http://openaccess.uoc.edu/webapps/o2/bitstream/10609/14737/8/fmagazTFC0612memoria.pdf
[4]. Tomado de video Youtube. https://www.youtube.com/watch?v=gc0R59W-
ezo&feature=youtu.be
[5]. Tomado de la página de Microsoft información Microsoft AZURE.
http://azure.microsoft.com/en-us/documentation/articles/partner-xamarin-mobile-services-android-
get-started/?fb=es-es
[6]. Tomado del Blogger información sobre informática en la nube. http://indira-
informatica.blogspot.com/2007/09/qu-es-mysql.html
[7]. Tomado de presentación management Solutions making thingshappen.
http://www.managementsolutions.com/PDF/ESP/La-nube.pdf
[8]. Revista de opinión boletic.
http://www.astic.es/sites/default/files/articulosboletic/opinion_3_11.pdf
[9]. Trabajo de final de carrera desarrollo de una plataforma de virtualización.
http://www.scribd.com/doc/72351530/VIRTUALIZACION-DE-BASE-DE-DATOS
[10]. Tomado de Memoria de trabajo de grado desarrollo de una aplicación web para la
gestión de entornos virtuales. http://eprints.ucm.es/13083/1/Memoria_SI_Final.pdf
[11]. Tomado de trabajo de fin de carrera Dispositivos de bajo rendimiento sobre servidores de
aplicación de nube privada. http://upcommons.upc.edu/pfc/bitstream/2099.1/14907/1/memoria.pdf
[12]. Artículo sobre cloud. http://www.interoute.es/cloud-article/what-private-cloud
[13]. Tomado revistas tecnológicas.
http://www.revistasbolivianas.org.bo/scielo.php?pid=S199740442012000200037&script=sci_arttex
t
139
[14]. http://www.revistasbolivianas.org.bo/scielo.php?script=sci_arttext&pid=S1997-
40442012000200022&lng=es&nrm=iso&tlng=es
[15]. Tomado artículo de revista Universidad cooperativa de Colombia.
http://revistas.ucc.edu.co/index.php/me/article/view/167
[16]. Tomado de artículo Universidad Politécnica de Catalunya Barcelona tech.
http://upcommons.upc.edu/handle/2099.1/14907
[17]. Tomado Tesis de fin de carrera Implementación de un controlador de virtual box para
openNebula. http://eprints.ucm.es/13081/1/MEMORIA.pdf
[18]. Tomado de trabajo final mobile Cloud computing y su relación con aplicaciones móviles
y aplicaciones sensibles al contexto.
http://sedici.unlp.edu.ar/bitstream/handle/10915/21856/Documento_completo.pdf?sequence=3
[19]. ARIENZA, Jorge L. Sistemas operativos móviles.
http://jlarienza.blogspot.com/2006/10/sistemas-operativos-moviles.html
[20]. Tomado de tesis de maestría en informática.
https://www.colibri.udelar.edu.uy/bitstream/123456789/2979/1/tesis-delgado.pdf
[21]. Tomado de artículo del portal web de la universidad de granada.
http://ofiweb.ugr.es/pages/prtweb/webservices/
[22]. Tomado de revista ICADE universidad pontificia comillas de Madrid.
https://revistas.upcomillas.es/index.php/revistaicade/article/view/289/223
[23]. Tomado del repositorio de la universidad abierta de cataluya.
http://openaccess.uoc.edu/webapps/o2/bitstream/10609/22781/6/rcarrillocrTFC0613memoria.pdf.
[24]. Tomado de Memoria de Universidad de Vigo: metodologías para el desarrollo de
servicios en la web. http://www.albertolsa.com/wp-content/uploads/2009/07/mdsw-revision-de-los-
servicios-web-soap_rest-alberto-los-santos.pdf (consulta el día 18/10/2015 )
[25]. Tomado de Universidad Complutense de Madrid.
http://eprints.ucm.es/13083/1/Memoria_SI_Final.pdf
[26]. Tomado de artículos sobre cloud interoute. http://www.interoute.es/cloud-article/what-
private-cloud.
140
[27]. ARIENZA, Jorge L. Sistemas operativos móviles.
http://jlarienza.blogspot.com/2006/10/sistemas-operativos-moviles.html
[28]. Tomado artículo computación en la nube el nuevo paradigma tecnológico para empresas
organizaciones en la sociedad del conocimiento.
https://revistas.upcomillas.es/index.php/revistaicade/article/view/289/223
[29]. http://openaccess.uoc.edu/webapps/o2/bitstream/10609/22781/6/rcarrillocrTFC0613mem
oria.pdf
[30]. http://es.slideshare.net/IsraelRey/arquitectura-rest
[31]. Tomado de repositorio institucional de la UNLP.
http://sedici.unlp.edu.ar/handle/10915/19374
141
ANEXOS
Recommended