UNIVERSIDAD VERACRUZANA Facultad de Contaduría y Administración Base de datos en la nube con la utilización de la tecnología OLAP MONOGRAFÍA para obtener el Título de: Licenciado en Sistemas Computacionales Administrativos Presenta Jonathan Zeferino Murrieta Asesor: Erasto Alfonso Marín Lozano Cuerpo Académico: Planeación e Innovación Tecnológica Xalapa-Enríquez, Veracruz Febrero 2015 UNIVERSIDAD VERACRUZANA Facultad de Contaduría y Administración Base de datos en la nube con la utilización de la tecnología OLAP MONOGRAFÍA para obtener el Título de: Licenciado en Sistemas Computacionales Administrativos Presenta Jonathan Zeferino Murrieta Asesor: Erasto Alfonso Marín Lozano Cuerpo Académico: Planeación e Innovación Tecnológica Xalapa-Enríquez, Veracruz Febrero 2015 AGRADECIMIENTOS Le agradezco a Dios por haberme acompañado y guiado a lo largo de mi carrera, por ser mi fortaleza en los momentos de debilidad y por brindarme una vida llena de aprendizajes, experiencias y sobre todo felicidad. A MIS PADRES: A mi Asesorare, sinodales Erasto Alfonso Marín Lozano Antes que otra cosa, Gracias por darme la vida. Margarita Altamirano Vásquez Eloísa Ruiz González Y Maestros: Por el incondicional apoyo que me brindaron durante todo este tiempo, por soñar conmigo y creer en mí. Por luchar conmigo y es que este logro no hubiese sido posible sin su comprensión, su amor y su cariño. Por enseñarme que con dedicación, humildad y fe, todo es posible. Lo que algún día comenzó como nuestro sueño, hoy es una realidad, nuestra realidad. Los amo... Por todo su apoyo, su tiempo, su confianza y su dedicación. Gracias por compartir conmigo sus conocimientos y su amistad A ERICKA MARTÍNEZ MARTÍNEZ: Por sus consejos, su apoyo en las buenas y en las no tan buenas. Por soportarme y dejarme ser parte de su vida en toda esta trayectoria. Gracias... A MIS HERMANOS: Por formar parte de mis sueños, brindarme su cariño, su amistad y todo lo bueno que en ustedes hay. Gracias... ÍNDICE INTRODUCCIÓN .............................................................................................................................. 2 CAPÍTULO I: MARCO TEÓRICO ................................................................................................. 6 1.1 Breve reseña de la evolución de las bases de datos ................................................. 7 1.2 Definiciones ..................................................................................................................... 10 1.2.1 Bases de datos ............................................................................................................. 10 1.2.3 Sistemas OLAP (Procesamiento analítico en línea) ............................................... 13 1.3 Funcionamiento de una base de datos ............................................................................ 15 1.4 Estructuras de una base de datos .................................................................................... 17 1.4.1 Jerárquica ...................................................................................................................... 17 1.4.2 Red ................................................................................................................................. 18 1.4.3 Relacional ...................................................................................................................... 21 1.4.4 Multidimensional ........................................................................................................... 22 1.4.5 Orientada a objetos ...................................................................................................... 23 1.5 Funcionamiento del sistema OLAP ................................................................................... 25 Capítulo II. Principios de computación en nube .................................................................. 28 2.1 Evolución de la computación en nube .............................................................................. 29 2.2.2 Tecnologías pertinentes de la computación en nube ............................................. 35 2.3.1 Software como modelo de servicio ............................................................................ 40 2.3.1.1 Beneficios clave del modelo SaaS ......................................................................... 41 2.3.2 Plataforma como modelo de servicio ........................................................................ 42 2.3.2.1 Elementos mínimos de una solución del modelo de plataforma como de servicio ..................................................................................................................................... 43 2.3.2.2 Diferencias funcionales entre el modelo PaaS y las plataformas tradicionales de desarrollo ............................................................................................................................ 44 2.3.3 Infraestructura como modelo de servicio .................................................................. 45 2.3.3.1 Funciones disponibles para el modelo de Infraestructura como servicio ......... 46 2.4 Modelos de implementación de nubes ............................................................................. 46 2.4.1 Nube Pública ................................................................................................................. 48 2.4.2 Nube Privada................................................................................................................. 48 2.4.3 Nube Comunidad .......................................................................................................... 49 2.4.4 Nube Hibrida ................................................................................................................. 49 2.5 Clasificación de la computación en nube ......................................................................... 50 II 2.5.1 Consumidor de servicio ............................................................................................... 50 2.5.2 Proveedor de servicio .................................................................................................. 51 2.5.3 Desarrollador de servicios ........................................................................................... 53 2.6 Las ventajas y desventajas de la computación en nube ............................................... 54 2.6.1 Ventajas de la computación en nube ........................................................................ 54 2.6.2 Desventajas de la computación en nube .................................................................. 59 Capítulo III. Implementaciones de la computación en nube ............................................. 63 3.1 Empresas desarrolladoras de nubes de servicios .......................................................... 64 3.1.2 Google Inc. ................................................................................................................... 65 3.1.3 IBM ................................................................................................................................. 66 3.1.4 Salesforce.com ........................................................................................................... 67 3.2 Implementaciones de aplicaciones de computación en nube existentes ................... 67 3.2.1 Aplicaciones de computación en nube para la familia .................................... 68 3.2.2 Aplicaciones de computación en nube para la comunidad ............................ 70 3.2.3 Aplicaciones de computación en nube para las empresas ............................ 71 3.3 Casos de estudio de IaaS y SaaS de empresas desarrolladoras multinacionales ... 74 3.3.1 Caso IaaS: Servidores de nube (Rackspace EE.UU., Inc.) y EC2 (Amazon.com Inc.) ............................................................................................................... 74 3.3.2 Caso SaaS: Google Docs (Google Inc.) y Zoho (ZOHO Corp. Inc.) ............... 76 3.4 Empresas mexicanas desarrolladoras de aplicaciones de computación en nube .... 78 3.4.1 S&C Constructores de Sistemas S.A de C.V ...................................................... 78 3.4.1.1 Aplicación de computación en nube (SaaS): Fortimax Versión 4.0 .......... 79 3.4.1.2 Fortimax Versión 4.0 (SaaS): Manejo de contenido empresarial como servicio .................................................................................................................................... 80 3.4.1.3 Fortimax Versión 4.0: Personal ........................................................................... 82 3.4.2 SaaS México (www.saasmexico.com) .................................................................. 83 3.4.2.1 Aplicación de computación en nube: SaaS OFFICE Tool ............................ 84 Capítulo IV. Casos reales ........................................................................................................... 86 4.1 Microsoft System Center .................................................................................................... 87 4.1.1 Acerca de la implementación de cubos .................................................................... 89 4.2 Grupo Salinas ....................................................................................................................... 91 4.3 Gestiweb ............................................................................................................................... 91 4.3.1 Cubos OLAP para diferentes ERPs con Saiku ........................................................ 92 4.4 Eneboo .................................................................................................................................. 93 III CONCLUSIONES........................................................................................................................... 95 FUENTES DE INFORMACIÓN .................................................................................................. 101 ÍNDICE DE FIGURAS ................................................................................................................. 104 IV RESUMEN En todo sistema de información, los recursos de datos deben organizarse y estructurarse en cierta manera lógica de manera que puedan accesar con facilidad, procesarse de manera eficiente, recuperarse con rapidez y manejarse de forma efectiva. Todo esto es hoy en día solucionado gracias a las bases de datos. La computación en nube se refiere a una categoría de soluciones de tecnología que permite a los usuarios accesar a recursos informáticos (en este caso, a recursos de datos), según sea necesario, así los recursos sean físicos o virtuales, dedicados o compartidos, y sin importar la forma en que se acceda a ellos (mediante conexión directa, red de área local [LAN], red de área amplia [WAN] o Internet). 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. Una vez que esta infraestructura está en su lugar, a medida que la base de datos surge, los usuarios simplemente pueden ir a la nube, solicitar los recursos que necesitan y obtener acceso inmediato a su propia base de datos personal. Cuando ya no necesiten los recursos de datos, estos se reciclan de nuevo en la nube para reasignación, en lugar de quedar inactivos y desperdiciados. 1 INTRODUCCIÓN El término de bases de datos no apareció hasta mediados de los años sesenta, época en la cual la información era representada haciendo uso de un conjunto de archivos, generalmente planos. Estos archivos no estaban relacionados entre sí, y los datos almacenados representaban las relaciones existentes en la información que representaban mediante referencias simbólicas y/o físicas. La redundancia era grande y la integridad de la información representada dejaba mucho que desear (Aguilar, 2010). Aun así, muchos desarrolladores de software bautizaban a sus sistemas de archivos como bases de datos, sin preocuparse de que cumplieran o no una serie de propiedades que deben acompañar al uso de este término. Para que se denomine a una base de datos como tal, debe satisfacer una serie de propiedades, las cuales fueron incorporándose a estos sistemas a medida que el software para la administración de la información que se desarrolló fue siendo más eficaz. Hay que tener en cuenta que, hoy en día, no todas las bases de datos satisfacen estas propiedades ideales, por lo que el analista de sistemas se ve obligado a una armonización de las cualidades deseables de una base de datos, a menudo contrapuestas (González, 2010). Los procedimientos y estructuras para el almacenamiento y mantenimiento de la información correspondientes a un determinado dominio de un problema han evolucionado a medida que lo ha hecho la tecnología. Inicialmente los dispositivos de almacenamiento sólo permitía un acceso serial a la información, por lo que las estructuras de datos, mediante las que se podía representar la información, debían ser muy simples (archivos con organización secuenciales) y los procedimientos de acceso a esta información requería un alto tiempo de cómputo puesto que eran puramente seriales. Además, los procedimientos encargados del mantenimiento de la información era totalmente dependientes del hardware utilizando para ello, lo que 3 suponía una continua modificación del software encargado de esta tarea cuando el hardware cambiaba (Aguilar, 2010). Con la aparición de los dispositivos de almacenamiento que permitían el acceso directo, generalmente denominado aleatorio, las estructuras mediante las cuales se podía representar la información se fueron haciendo más complejas. En esta época (histórica) se desarrollaron procedimientos de acceso directo a la información, si bien seguían siendo estos procedimientos los encargados de describir la estructura del almacenamiento de la información que trataban. Si la estructura cambia debido a cualquiera de las múltiples razones posibles (cambios en los requisitos del cliente del sistema o cambios en el entorno del sistema, lo que puede suponer la modificación de la estructura de los registros que se almacenan en los archivos), los procedimientos debían ser modificados para reconocer la nuevo estructura de la información. En esta época, aunque el almacenamiento de la información sí era independiente del dispositivo hardware utilizado, la estructura de la información no era independiente de los procedimientos que la manejaban (http://www...). Como los sistemas son dinámicos, los requisitos cambian con el tiempo, la información a ser tratada en cada problema también cambia y, por tanto, es necesario, de alguna manera, independizar la estructura de la información (los archivos encargados de almacenarla) de los procedimientos encargados de su tratamiento, si no se estaría siempre abocado a la dedicación de una gran cantidad de esfuerzo a la modificación de todos aquellos procedimientos encargados del mantenimiento de la información. Cuando se reconoce que los sistemas evolucionan y que, por tanto, la información y la estructura de la misma no son estática sino que va cambiando con el tiempo, es cuando aparece el concepto de las bases de datos. Si se desea que cualquier modificación en la cantidad, contenido y estructura de la información que se desea mantener acerca de un determinando problema no afecta a los procedimientos desarrollados previamente para el mantenimiento de la misma, es necesario tener en cuenta que existe una independencia de los datos con respecto a los procedimientos. El software, por tanto, debe referenciar los datos al nivel de ítem de 4 datos; es decir, a nivel de atributo o propiedad de los objetos que forman parte o intervienen en el problema, y no a nivel de objeto. Así, la descripción lógica de un registro (un objeto abstracto de interés procedimental) puede contener, para un procedimiento, ítems de datos que son distintos a los que aparecen para otro procedimiento para ese mismo registro (Merino, 2009). Geovanni (2005) menciona que la independencia de los datos con respecto a los procedimientos supone que la visión conceptual de los datos, tal y como se perciben de la observación del problema del mundo real, no tiene por qué ser la misma que la visión de los mismos, la estructura de los archivos utilizados para su almacenamiento. Si los procedimientos encargados del mantenimiento de la información sólo “ven” la estructura física de los datos y si ésta se realiza a nivel de ítem de datos, un cambio en la visión conceptual no tiene por qué afectar, en principio, a estos procedimientos. Esta independencia de la información con respecto a los procedimientos que la maneja debe satisfacer a dos niveles de abstracción para que sea efectiva; por tanto, se habla de: Independencia lógica de los datos, por la que la modificación de la representación lógica general del dominio del problema no afecta a los programas de aplicación que la manipulan, siempre que esta modificación no elimine ninguno de los ítems de datos que estos programas requieran. Independencia física de los datos, por la que la distribución de los datos en las unidades de almacenamientos y la estructura física de la información almacenada es independiente de los cambios de la estructura lógica general de la información y, por tanto, de los procedimientos que manejan la misma. 5 CAPÍTULO I: MARCO TEÓRICO En este primer capítulo comenzara por definir que son las bases de datos mediante opinión de diferentes autores, con el objetivo de tener clara la función de esta, abarcando un poco los diferentes tipos de base de datos y su relación con la computación en la nube. También hablaremos de los sistemas OLAP (Procesamiento Analítico en Línea), para identificar las ventajas sobre esta. 1.1 Breve reseña de la evolución de las bases de datos Una de las tendencias más comunes de nuestra sociedad, es la de almacenar gran cantidad de datos para convertirla en información. Antes de la aparición de las computadoras, el manejo de estos datos era sumamente complejo y laborioso, y por lo general se necesitaba de muchas personas para controlarlos y mantenerlos actualizados. Al surgir las computadoras y desarrollarse, el manejo de información comenzó a automatizarse (Eréndira, 2010). Al principio de la década de los 60´s, se realiza la definición de la estructura elemental de las bases de datos: el archivo. Éstos se organizaban de modo secuencial simple. La estructura física de los datos, era igual que la estructura lógica, no había acceso en tiempo real y se utilizaba el procesamiento por lotes. Todas las operaciones de E/S de los dispositivos de almacenamiento eran ejecutadas por el software, no había independencia de datos, por lo que cada cambio significaba la reescritura de todos los programas, con su respectivo proceso de compilación y depuración (Martínez, 2005). Fue después de 1965 cuando el término Base de datos (BD), comienza a popularizarse, para entonces se utilizaban ya algunos dispositivos de acceso al azar (a través de una llave), lo que evitaba la lentitud del procedimiento secuencial. Esto, sin embargo, no libraba al programador de un dolor de cabeza, puesto que tenía 7 que prever los medios de direccionamiento al momento de escribir un programa. Además, aun no existía una independencia física, no lógica de los datos. Posteriormente aparecen los DMS (Data Management System) o Sistemas manejadores de datos, estos estaban orientados a una sola aplicación, su uso principalmente era la explotación de la información, son el paso anterior a los Sistemas Manejadores de Bases de Datos (SMBD) (Javier, 2005). Conforme el hardware avanza se hace necesaria la creación de un software que hiciera posible la distribución física de los datos, sin que por ello se alterase su estructura lógica, claro está que se debía evitar cambios en los contenidos de los registros o en la estructura fundamental de los archivos. Los archivos estaban diseñados para una aplicación determinada o un grupo de aplicaciones similares. Al evolucionar el procesamiento de los datos comerciales, se hizo evidente que no sería posible tener sólo una independencia de los datos con respecto al hardware, sino que también se debía atender a las adiciones (nuevos campos, nuevas relaciones) hechas a los datos almacenados. Ya en este momento, se reconoce que el software de la BD evoluciona, y que lo más probable es que las aplicaciones realizadas hoy necesitaran continuas modificaciones para los objetos a cumplir mañana. Es entonces cuando los lenguajes se complican, aparece el DML (Data Manipulation Language) y el DLL (Data Definition Language) (Eréndira, 2010). En este momento se da la independencia física y lógica de los datos, el acceso es al azar y las relaciones entre los programas permiten una mayor flexibilidad al momento de realizar aplicaciones, las cuales ya no son tan específicas. En los 80´s, con la baja de precios de los SMBD, éstos logran una mayor aceptación, nace entonces lo modelos semánticos o conceptuales, el más aceptado de ellos es el modelo Entidad Relación (Marqués, 2009). A finales de esta década y durante los 90´s, con el auge de las computadoras personales, BD se popularizan por complejo, los SMBD se vuelven más sencillos de manejar y entender, establecer relaciones entre archivos es más fácil, la transparencia es mayor, se elimina la redundancia innecesaria, comienzan a 8 aparecer términos como consistencia, e integridad, con respecto a los datos. Incluso se comienza a hacer la distinción entre datos e información, tomando a la segunda como el resultado del procesamiento y tratamiento de los primeros (Pérez, 2009). Aparecen las BD Distribuidas, los SMBD se vuelven más poderosos y trasparentes, y se comienzan a estudiar alternativas que buscan resolver problemas de tratamiento de información que las BD actuales no pueden solucionar adecuadamente. Para mediados de 1989 hay cerca de 200 productos comerciales, o quizá más, considerados como SMBD, disponibles en el mercado, los cuales trabajan en casi todos los tipos de plataforma de hardware y software existente. Por ejemplo DB2, SQL/DS, OS/2 Extended Edition Database Manager (gestor de BD para OS/2, edición extendida), ORACLE, INGRES, entre otros muchos. A pesar de los alcances tan grandes que, en áreas como la administrativa, tienen los modelos de datos relacionales, desde finales de los 70´s se hizo evidente que tenía grandes desventajas en términos de poder expresivo semántico, lo que hizo que aparecieran los modelos de entidad relación, de jerarquía semántica y de datos semánticos, cuyo desarrollo ha continuado hasta hoy en día (http://www...). Actualmente, los sistemas que dominan el campo de las Bases de Datos son los relacionales, pues han demostrado ser por demás efectivos, con lenguajes de alto nivel, empleando diversas funciones que garantizan la seguridad, integridad y confidencialidad de la información, y proveyendo de herramientas poderosas tanto al diseñador de la base de datos, como al usuario final. (Anil, 2010) menciona que a pesar de la gran popularidad y alcance de éstos en el terreno empresarial, su efectividad no ha sido la misma en otros campos, como el diseño y la fabricación en ingeniería (CAD/CAM), ingeniería de software asistida por computadoras (CASE), fabricación integrada por computadora (CIM), sistemas de información geográfica, de información médica, de gestión de imágenes, de administración del medio ambiente, y de apoyo a la toma de decisiones. Entre las causas, por las que los SMBD tradicionales no son muy útiles en las áreas antes mencionadas, está el hecho de que tienen poco poder expresivo; además, en este tipo de aplicaciones no resulta fácil hacer corresponder la estructura de datos y 9 relaciones con el modelo de tablas; igualmente, se manejan versiones de objetos, las transaccionales pueden ser de larga duración, las aplicaciones son de naturaleza evolutiva, por lo que los cambios en la estructura deben poder realizarse dinámicamente sin tener que echar abajo el sistema, entre otros muchos requerimientos que las bases de datos tradicionales no pueden cumplir. Es por ello que se han buscado caminos opcionales que proporcionen sistemas administradores de bases de datos más adecuados a la realidad de las aplicaciones anteriormente mencionadas. Entre las nuevas tendencias para SMBD se encuentran: Extensión de los sistemas relacionales. Es una variante del modelo de datos relacional, pero con características extendidas como el representar objetos complejos (Merino, 2010). Sistemas de administración de bases de datos orientadas a objetos. Combinan el modelo de orientación a objetos con la tecnología de bases de datos. Sistemas administradores de bases de datos deductivas. Su principal característica es que tienen mecanismos de inferencia, porque combinan la programación lógica con las bases de datos (Silberschatz, 2005). Sistemas de administración de bases de datos ‘inteligentes’. Se combina la inteligencia artificial y sus desarrollos con las bases de datos. 1.2 Definiciones 1.2.1 Bases de datos Una base de datos se puede definir como “un conjunto de información relacionada que se encuentra agrupada o estructurada. Desde el punto de vista de la informática, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos. Este trabajo se realizara con la 10 finalidad de aprender un poco más sobre una base de datos, sus características, usos, estructuras, diseños, entre otros. Una base de datos tiene mucha importancia en el ritmo de vida que llevamos en los actuales momentos, ya que, está acelera el ritmo en el momento realizar una búsqueda de información” (David, 2005) En su sentido más simple, una base de datos es una colección de datos. Una definición más completa sería: “…una colección de datos interrelacionados almacenados en conjunto, sin redundancias perjudiciales o innecesarias; su finalidad es la de servir a una aplicación o más, de la mejor manera posible; los datos se almacenan de modo que resulten independientes de los programas que usan; se emplean métodos bien determinados para incluir datos nuevos y para modificar o extraer datos almacenados. Dícese que un sistema comprende una colección de bases de datos cuando éstas son totalmente independientes desde el punto de vista estructural.” (Patel, 2009) Como puede notarse en la definición, se hace la diferencia entre base de datos y sistema de base de datos, tomando al segundo como una agrupación de las primeras. Aguilar (2010) menciona que: hay cuatro componentes principales de un sistema de base de datos, estos son: 1. Información. Esta debe ser integrada y compartida. Integrada quiere decir que al unir varios archivos de datos distintos, se elimina en la mayor medida posible la redundancia entre ellos. Compartida quiere decir que cada uno de los elementos de la información en la base de datos puede compartirse entre sus distintos usuarios, sin necesidad de que lo usen para el mismo propósito. 2. Equipo. Se refiere a los dispositivos de almacenamiento secundario, a la microcomputadora, o servidor que se utilice para almacenar el sistema de base de datos y su administrador. 3. Programas. Es el software que permite al usuario interactuar con la base de datos física. A este software se le conoce como (DBMS) Data Base Management System 11 o Sistema Administrador de Base de Datos. Aunque el SMBD es el componente más importante del sistema, no es el único, también existen utilerías, herramientas para desarrollar aplicaciones, ayudas para el diseño, generadores de informes, lenguaje de consulta, etc. 4. Usuarios. Son las personas. Los hay de tres tipos: programador de aplicaciones (el que escribe los programas de aplicación que utilizará la base de datos), usuario final (es el que interactúa con el sistema desde una terminal en línea o PC), administrador de la base de datos (quien tiene la responsabilidad central sobre los 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.” (Sharma, 2009) Una base de datos se define como “un fichero en el cual se almacena información en campos o delimitadores, teniendo acceso a ella posteriormente tanto de forma separada como de forma conjunta. Se utiliza normalmente para recoger grandes cantidades de información. (Por ejemplo el listado de nombres y apellidos de los alumnos de varios cursos).” (Fabian, 2011) Una base de datos (BD) se define como un “conjunto de datos relacionados entre sí”. Los conceptos relevantes en esta definición son “datos” y “relacionados”. (Patel, 2009) “Datos”: Conjunto de hechos relevantes que pueden ser registrados de algún modo, y que cuentan con un significado implícito. Reflejan situaciones del mundo real y cambios en esas situaciones (http://www...). “Relacionados”: Debe existir homogeneidad en la colección de datos que conforma una BD. No se trata de un conjunto seleccionado de forma aleatoria. Los datos se 12 recopilan y registran con una finalidad. Los datos deben ser relevantes con respecto a esa finalidad (http://www...). La particularidad definitiva que convierte a un conjunto de datos en una base de datos es la siguiente: una BD se controlan por medio de Sistemas de Gestión de Bases de Datos (SGBDs). 1.2.3 Sistemas OLAP (Procesamiento analítico en línea) Un cubo OLAP es una estructura de datos que supera las limitaciones de las bases de datos relacionales y proporciona un análisis rápido de datos. Los cubos pueden mostrar y sumar grandes cantidades de datos, a la vez que proporcionan a los usuarios acceso mediante búsqueda a los puntos de datos. De este modo, los datos se pueden resumir o reorganizar según sea necesario, para procesar la variedad más amplia de preguntas pertinentes al área de interés de un usuario. (http://www...) Los cubos son elementos claves en OLAP (online analytic processing), una tecnología que provee rápido acceso a datos en un almacén de datos (data warehouse). Los cubos proveen un mecanismo para buscar datos con rapidez y tiempo de respuesta uniforme independientemente de la cantidad de datos en el cubo o la complejidad del procedimiento de búsqueda. Los cubos son subconjuntos de datos de un almacén de datos, organizado y su marizado dentro de una estructura multidimensional. Los datos se suma rizan de acuerdo a factores de negocio seleccionados, proveyendo el mecanismo para la rápida y uniforme tiempo de respuesta de las complejas consultas (http://www...). Martínez (2011) menciona que la definición del cubo, es el primero de tres pasos en la creación de un cubo. Los otros pasos son, el especificar la estrategia de sumarización diseñando las agregaciones (elementos pre calculados de datos), y la carga del cubo para procesarlo. Para definir un cubo, seleccione una tabla objetivo y seleccione las medidas (columnas numéricas de interés a los usuarios del cubo) dentro de esta tabla. Entonces seleccione las dimensiones, cada compuesta de una 13 o más columnas de otra tabla. Las dimensiones proveen la descripción categórica por el cual las medidas son separadas para su análisis por los usuarios del cubo. Dimensiones Las Dimensiones son categorías descriptivas por los cuales los datos numéricos (las mediciones) en un cubo, son separados para su análisis. Por ejemplo, si una medición de un cubo es el conteo de la producción, y las dimensiones son Tiempo, localización de la fábrica y el producto, los usuarios del cubo, podrán separar el conteo de la producción, dentro de varias categorías de tiempo, localización de la fábrica y productos (Merino, 2010). Una dimensión puede ser creada para usarse en un cubo individual o en múltiples cubos. Una dimensión creada para un cubo individual, es llamada dimensión privada. Por el contrario si esta puede ser usada por múltiples cubos, se le llama dimensión compartida. Estas podrán ser usadas dentro de todo cubo, en la base de datos, así se optimiza el tiempo y se evita el andar duplicando dimensiones privadas. Las dimensiones compartidas, también habilitan la estandarización de las métricas de negocios entre cubos. Por ejemplo, el estandarizar las dimensiones compartidas para el tiempo y localización geográfica, aseguran que los datos analizados, desde diferentes cubos, estén organizados similarmente (Chen, 2011) Un cubo OLAP, OnLine Analytical Processing o procesamiento Analítico en Línea, término acuñado por Edgar Frank Codd de EF Codd & Associates, encargado por Arbor Software (en la actualidad Hyperion Solutions), es una base de datos multidimensional, en la cual el almacenamiento físico de los datos se realiza en un vector multidimensional. Los cubos OLAP se pueden considerar como una ampliación de las dos dimensiones de una hoja de cálculo (http://www...). Los sistemas OLAP son bases de datos orientadas al procesamiento analítico. Este análisis suele implicar, generalmente, la lectura de grandes cantidades de datos para llegar a extraer algún tipo de información útil: tendencias de ventas, patrones 14 de comportamiento de los consumidores, elaboración de informes complejos… etc. Este sistema es típico de los datamarts. El acceso a los datos suele ser de sólo lectura. La acción más común es la consulta, con muy pocas inserciones, actualizaciones o eliminaciones. Los datos se estructuran según las áreas de negocio, y los formatos de los datos están integrados de manera uniforme en toda la organización. El historial de datos es a largo plazo, normalmente de dos a cinco años. Las bases de datos OLAP se suelen alimentar de información procedente de los sistemas operacionales existentes, mediante un proceso de extracción, transformación y carga (ETL). 1.3 Funcionamiento de una base de datos Con base en los elementos anteriormente mencionados, es posible trazar un diseño del funcionamiento de una base de datos. Se hizo hincapié en que ninguna base de datos funciona por sí misma, necesita por fuerza de otros componentes, uno de los más importantes es una interfaz que interactúe con el usuario, a ésta se le llama sistema administrador de la base de datos (SMBD), que no es otra cosa que software de aplicación cuyas funciones son atender y manejar todas las solicitudes de acceso formuladas por los usuarios. Básicamente, el funcionamiento de una BD es sencillo, se crean archivos, mismos que están organizados en registros, los cuales se dividen en campos, cada uno de los cuales contiene un dato. Estos archivos son en sí el sistema de bases de datos. Para entrar a él y manipular la información se recurre a un SMBD que permitirá al programador desarrollar aplicaciones para obtener la información, dichas aplicaciones serán programas sencillos de manejar para el usuario final, que le 15 permitirán insertar nuevos datos, realizar consultas, eliminar información, en fin, mantener actualizados sus archivos, al tiempo que puede realizar casi toda clase de operaciones con ella para obtener los resultados que desea. El funcionamiento interno – es decir, la manera en que se realizan las operaciones anteriormente mencionadas -, depende del tipo de base de datos de que se trate. Se debe tener en cuenta que no es posible llamar base de datos a cualquier agrupación de datos puesta por ahí, por el contrario, ésta para ser considerada como tal, debe reunir una serie de requisitos, mismos que son: 1. Eliminación de la redundancia innecesaria. Esto quiere decir que existirá el mínimo necesario de datos duplicados, con lo cual se reduce el espacio de almacenamiento y se emplean mejor los recursos. 2. Evitar la inconsistencia en la medida de lo posible. Cuando no está controlada la redundancia, puede ser que en determinado momento un mismo dato – que está duplicado en dos archivos diferentes -, se encuentre actualizado en uno pero en otro no, entonces se dice que la BD es inconsistente. Para lograr una BD confiable, se debe eliminar esto lo más posible. 3. Información compartida. Es decir, que las aplicaciones puedan compartir los datos existentes, al igual que los resultados que éstas generan con otras aplicaciones. 4. Integridad. Como ya se dijo antes, la integridad se refiere a que es necesario que la información no sea redundante, puede ser compartida sin necesidad de duplicarse y que no sea inconsistente. 5. Seguridad. Una BD tendrá información vital de la empresa, por lo tanto, se debe asegurar que ésta sólo pueda ser accesada por personas autorizadas, que podrían manipularla en contra de los intereses de la empresa. 6. Independencia de datos. Anteriormente se explicó que existen dos niveles de independencia, es conveniente que éstos estén presentes en toda BD, para que de esta manera se puedan realizar toda clase de actualizaciones o modificaciones sin tener que reescribir todo el sistema. 16 1.4 Estructuras de una base de datos Imagínese lo difícil que sería obtener cualquier información en un sistema de información si los datos estuviesen almacenados en forma desorganizada, o si no existiese una forma sistemática para recuperarlos. Por lo tanto en todo sistema de información, los recursos de datos deben organizarse y estructurarse en cierta manera lógica de manera que puedan accesarse con facilidad, procesarse de manera eficiente, recuperarse con rapidez y manejarse de forma efectiva. Todo esto es hoy en día solucionado gracias a las bases de datos. Las diferentes estructuras que puede tener una base de datos son las siguientes: 1.4.1 Jerárquica Una base de datos jerárquica es un tipo de sistema de gestión de bases de datos que almacenan la información en una estructura jerárquica que enlaza los registros en forma de estructura de árbol en donde un nodo padre de información puede tener varios nodos hijo. De la misma manera se puede establecer relación entre los nodos hermanos En este caso la estructura en forma de árbol se convierte en una estructura en forma de grafo dirigido (Aguilar, 2010). El modelo jerárquico se clasifica en estructuras lineales y arborescentes. La primera clase de estructura, cada tipo de registro padre sólo puede tener un tipo de registro hijo. La segunda, un tipo de registro padre puede tener varios tipos de registros hijos. El producto comercial de tipo Jerárquico más extendido y el único que ha llegado hasta nuestros días es el IMS de IBM (http://www...). El modelo jerárquico facilita relaciones padre-hijo, es decir, relaciones 1:N (de uno a varios) del modelo relacional. Pero a diferencia de éste último, las relaciones son unidireccionales. En justicia, dichas relaciones son hijo-padre, pero no padre-hijo. Por ejemplo, el registro de un empleado (nodo hijo) puede relacionarse con el registro de su departamento (nodo padre), pero no al contrario. Esto implica que solamente se puede consultar la base de datos desde los nodos hoja hacia el nodo raíz. La consulta en el sentido contrario requiere una búsqueda secuencial por todos 17 los registros de la base de datos (por ejemplo, para consultar todos los empleados de un departamento). En las bases de datos jerárquicas no existen índices que faciliten esta tarea (Eréndira, 2010). Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. De la misma manera, otra limitación es, no garantiza la inexistencia de registros duplicados. Esto también es cierto para los campos “clave”. Es decir, no se garantiza que dos registros cualesquiera tengan diferentes valores en un subconjunto concreto de campos. 1.4.2 Red La mayor parte de bases de datos de objeto usan el concepto de navegación para proporcionar la navegación rápida a través de las redes de objetos, generalmente usando identificadores de objeto como indicadores "inteligentes" de objetos relacionados. El modelo de red organiza datos que usan dos fundamental construcciones, registros y conjuntos. Los registros contienen campos (que puede ser organizado jerárquicamente, como en el lenguaje COBOL de lenguaje de programación). Los conjuntos (para no ser confundido con conjuntos matemáticos) definen de uno a varias relaciones entre registros: un propietario, muchos miembros (Aguilar, 2010). Un registro puede ser un propietario en cualquier número de conjuntos, y un miembro en cualquier número de conjuntos. El modelo de red es una variación sobre el modelo jerárquico, al grado que es construido sobre el concepto de múltiples ramas (estructuras de nivel inferior) emanando de uno o varios nodos (estructuras de nivel alto), mientras el modelo se diferencia del modelo jerárquico en esto las ramas pueden estar unidas a múltiples nodos. El modelo de red es capaz de representar la redundancia en datos de una manera más eficiente que en el modelo jerárquico. Las operaciones del modelo de red son de navegación en el estilo: un programa mantiene una posición corriente, y navega de un registro al otro por siguiente las relaciones en las cuales el registro participa (http://www...). 18 Los registros también pueden ser localizados suministrando valores claves. Aunque esto no sea un rasgo esencial del modelo, las bases de datos de red generalmente ponen en práctica las relaciones de juego mediante indicadores que directamente. Dirigen la ubicación de un registro sobre el disco. Esto da el funcionamiento de recuperación excelente, a cargo de operaciones como la carga de base de datos y la reorganización. La mayor parte de bases de datos de objeto usan el concepto de navegación para proporcionar la navegación rápida a través de las redes de objetos, generalmente usando identificadores de objeto como indicadores "inteligentes" de objetos relacionados. Objectivity/DB, por ejemplo, los instrumentos llamados 1:1, 1:muchos, muchos:1 y muchos:muchos, llamados relaciones que pueden cruzar bases de datos. Muchas bases de datos de objeto también apoyan SQL, combinando las fuerzas de ambos modelos (Lépori, 2010). En el modelo de red no existen restricciones, si queremos representar que un cliente puede tener varias cuentas, cada una de las cuáles sólo puede tener un titular, y cada cuenta ésta en una sola sucursal, que por supuesto puede ser compartida por varias cuentas, éste sería el esquema: Cliente Cuenta Sucursal Con el modelo relacional podríamos tener ambas entidades definidas de la siguiente forma: Cliente = (Nº Cliente: Acceso Principal; Nombre, Dirección, Nº Cuenta: Acceso Ajeno) Cuenta = (Nº Cuenta: Acceso Principal; Saldo) Se puede diseñar una base de datos de red el cual se parte de un esquema de entidad de relacion (ER). Los Pasos pueden ser: Trabajar con entidades normales y por cada entidad crear un tipo de registros con muchos o todos sus atributos cuyos campos pueden ser simples o compuestos. 19 Trabajar con entidades como comunes, las cuales son entidades que dependen de otra para poder existir. Para cada entidad débil se crea un tipo de registro que lo represente. Además debemos relacionarla con la entidad de la que depende, para ello la entidad fuerte de la que depende la débil viene ser propietario y la débil, miembro (keller 2009). Trabajar con vínculos de uno-uno (1:1) y uno-muchos no recursivos. En el caso de la relación de uno a uno se elige cualquiera de los dos registros como propietario y al otro como miembro. Si la relación es de muchos (1:N) se escoge como propietario al registro que representa a la entidad que está al lado 1 de la relación y como miembro al registro que representa a la entidad que está al lado N de la relación. Trabajar con relaciones de muchos a muchos (N:M). Por lo que se tiene que crear un tipo de registro, el cual será miembro de los dos registros que representan a las entidades de la relación. Trabajar con vínculos recursivos con vínculos de 1:1 o 1:N. Para ambos casos se crea un nuevo registro. El cual se unirá al registro que representa la entidad a través de tipo de conjuntos. Por último se trabaja con los vínculos que relacionan a más de dos entidades. Por lo que se tiene que crea un nuevo tipo de registro, el cual será el registro miembro de los registros que representan a las entidades; los cuales vendrían a ser los registros propietarios. La programación facilita realizar una o varias tareas, tales como buscar, leer, insertar, eliminar y modificar los registros. Por lo que es necesario el uso del programa de manipulación de datos (DML). El genera órdenes de registro por registro incorporadas en un lenguaje de programación de aplicación general, se llama lenguaje anfitrión (Melissa, 2010). (Melissa, 2010) menciona que: Para poder comprender perfectamente es necesario entender algunos términos. 20 Registros actuales: Son registros específicos identificados de la base datos. Indicadores de actualidad, los cuales son los responsables de llevar el control de varios registros y ocurrencias; existen tres tipos de indicadores de actualidad. Actual de tipo de registros Actual de tipo de conjuntos Actual de unidad de ejecución Área de trabajo del usuario: Es el conjunto de variables locales las cuales tienen diferentes tipos de registros para que el programa anfitrión pueda manipularlos. 1.4.3 Relacional El modelo relacional constituye una alternativa para la organización y representación de la información que se pretende almacenar en una base de datos. Se trata de un modelo teórico matemático que, además de proporcionarnos los elementos básicos de modelado (las relaciones), incluye un conjunto de operadores (definidos en forma de un álgebra relacional) para su manipulación, sin ambigüedad posible (James, 2010). El carácter formal del modelo relacional hace relativamente sencilla su representación y gestión por medio de herramientas informáticas. No es casual, pues, que haya sido elegido como referencia para la construcción de la gran mayoría de los Sistemas de Gestión de Bases de Datos comerciales disponibles en el mercado; ni tampoco que sea también habitualmente seleccionado como modelo de referencia para la elaboración del esquema lógico de una base de datos, como tercer paso de la habitual metodología de diseño de BDs (después del análisis de requerimientos y la elaboración del esquema conceptual) (James, 2010). En el modelo relacional se basa en el concepto matemático de relación. En este modelo, la información se representa en forma de “tablas” o relaciones, donde cada fila de la tabla se interpreta como una relación ordenada de valores (un conjunto de valores relacionados entre sí). El siguiente ejemplo presenta una relación que 21 representa al conjunto de los departamentos de una determinada empresa, y que recoge información sobre los mismos. Num Nombre Localidad D-01 Ventas A Coruña D-02 I+D Ferrol Definiciones Formalmente, una relación se define como un conjunto de n-tuplas; donde una ntupla se define a su vez como un conjunto ordenado de valores atómicos (esto es, no divisibles ni descomponibles en valores más “pequeños” (Moalla, 2011). 1.4.4 Multidimensional La estructura multidimensional de bases de datos es una variación del modelo relacional, que utiliza estructuras multidimensionales para organizar datos y expresar las relaciones entre los datos. Se pueden visualizar las estructuras multidimensionales como cubos de datos y cubos dentro de cubos de datos. Cada cara del cubo se considera una dimensión de los datos (James, 2010). Cada celda dentro de una estructura multidimensional contiene datos agregados que se relacionan con los elementos a lo largo de cada una de sus dimensiones. Por ejemplo una sola celda puede contener las ventas totales de un producto en una región para un canal de ventas específico en un solo mes (González, 2010). Uno de sus principales beneficios es que constituye una manera compacta y fácil de comprender, para visualizar y manipular elementos de datos que tienen muchas interrelaciones. Por lo tanto estas se han convertido en la estructura de bases de datos más popular para las bases de datos analíticas que respaldan aplicaciones del procesamiento analítico en línea (OLAP) en el cual se esperan respuestas más rápidas a consultas empresariales complejas. Ya hace un tiempo las organizaciones han usado los datos desde sus sistemas operacionales para atender sus necesidades de información. Algunas proporcionan acceso directo a la información contenida dentro de las aplicaciones operacionales. 22 Otras, han extraído los datos desde sus bases de datos operacionales para combinarlos de varias formas no estructuradas, en su intento por atender a los usuarios en sus necesidades de información. A través del tiempo estos métodos han mejorado y ahora las organizaciones manejan unos datos sobre los cuales la mayoría de las veces se toman decisiones importantes. 1.4.5 Orientada a objetos Las Bases de datos orientados a objetos se propusieron con la idea de satisfacer las necesidades de las aplicaciones más complejas. El enfoque orientado a objetos ofrece la flexibilidad para cumplir con algunos de estos requerimientos sin estar limitado por los tipos de datos y los lenguajes de consulta disponibles en los sistemas de bases de datos tradicionales (González, 2010). Como cualquier Bases de Datos programable, una Base de Datos Orientada a Objetos (BDOO) proporciona un ambiente para el desarrollo de aplicaciones y un depósito persistente listo para su explotación. Una BDOO almacena y manipula información que puede ser digitalizada (presentada) como objetos, además proporciona un acceso ágil y permite una gran capacidad de manipulación (González, 2010). (Aguilar, 2010) menciona que los principales conceptos que se utilizan en las Bases de Datos Orientada a Objetos (BDOO) son las siguientes: • Identidad de objetos • Constructores de tipos • Encapsulamiento • Compatibilidad con los lenguajes de programación • Jerarquías de tipos y herencia • Manejo de objetos complejos • Polimorfismo y sobrecarga de operadores y • Creación de versiones. 23 Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Eréndira (2010) menciona que: Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos. Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases. Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones. Estructura de una BD OO El paradigma orientado a objetos se basa en el encapsulamiento de datos y del código relacionado con cada objeto en una sola unidad. Conceptualmente, todas las interacciones entre cada objeto y el resto del sistema se realizan mediante mensajes. Por lo tanto, la interfaz entre cada objeto y el resto del sistema se define mediante un conjunto de mensajes permitidos (Marqués, 2012). (Marqués, 2012) En general, cada objeto está asociado con: 24 Un conjunto de variables que contiene los datos del objeto; las variables corresponden con los atributos del modelo E-R. Un conjunto de mensajes a los que responde; cada mensaje puede o no tener parámetros o tener uno o varios. Un conjunto de métodos, cada uno de los cuales es el código que implementa un mensaje; el método devuelve un valor como respuesta al mensaje. Mensaje en entorno OO no implica uso de mensajes físicos en redes informáticas. Por el contrario, hace referencia al intercambio de solicitudes entre los objetos, independientemente de los detalles correctos de su implementación. Se utiliza a veces la expresión invocar un método para detonar al hecho de enviar un mensaje a un objeto y la ejecución del método correspondiente. 1.5 Funcionamiento del sistema OLAP En el mundo de las soluciones para Business Intelligence, una de las herramientas más utilizadas por las empresas son las aplicaciones OLAP, ya que las misma han sido creadas en función a bases de datos multidimensionales, que permiten procesar grandes volúmenes de información, en campos bien definidos, y con un acceso inmediato a los datos para su consulta y posterior análisis. Como se ha mencionado anteriormente, las herramientas OLAP proporcionan a las compañías un sistema confiable para procesar datos que luego serán utilizados para llevar a cabo análisis e informes que permitan mejorar las operaciones productivas, tomar decisiones inteligentes y optimizar la competitividad en el mercado. Cubo OLAP una base de datos multidimensional Para funcionar, las aplicaciones OLAP utilizan un tipo de base de datos que posee la peculiaridad de ser multidimensional, denominada comúnmente Cubo OLAP (Martínez, 2007). 25 Básicamente, el Cubo OLAP, que acuña su nombre por su característica multidimensional, es una base de datos que posee diversas dimensiones, ampliando las posibilidades que hasta el momento ofrecían las conocidas hojas de cálculo (Martínez, 2007). Hasta la llegada del término Cubo OLAP, que nació de la mano de Edgar F. Codd, de la compañía EF Codd & Associates, sólo se utilizaban bases de datos relacionales para el proceso de la información, con sistemas tales como el ROLAP (Orol, 2007). Gracias a la incorporación de las bases de datos de tipo multidimensional, y el nacimiento del nuevo concepto Cubo OLAP, las herramientas de soluciones para sistemas Business Intelligence han avanzado notablemente en cuanto a las prestaciones que estas aplicaciones brindan a las empresas, donde la información confiable, precisa y en el momento oportuno, son uno de los bienes más preciados. Cabe destacar que los Cubos OLAP son vectores en los cuales se dispone la información, y gracias a esta ordenada jerarquía es posible llevar a cabo un análisis rápido de los datos (http://www...). Mediante la incorporación de estos vectores o cubos, se han ampliado las posibilidades de las bases de datos relacionales, permitiendo el procesamiento de importantes volúmenes de información, que de lo contrario sería imposible realizar. Cada una de las dimensiones que posee la base de datos incorpora un campo determinado para un tipo de dato específico, que luego podrá ser comparado con la información contenida en el resto de dimensiones, para hacer posible la evaluación y posteriores informes de la información realmente relevante para una compañía. Una base de datos multidimensional puede contener varios cubos o vectores que extenderán las posibilidades del sistema OLAP con el cual se trabaja (http://www...). Por ello, si bien en general los sistemas OLAP suelen estar compuestos por tres dimensiones, lo cierto es que existe la posibilidad de que el sistema OLAP albergue más de tres dimensiones mediante la utilización de estos Cubos OLAP. 26 A pesar de las grandes ventajas que presenta este tipo de base de datos multidimensional que incluye Cubos OLAP, la cual permite obtener mayor rapidez en las consultas y en el procesamiento de la información, lo cierto es que su gran falla reside en la imposibilidad de realizar cambios en su estructura (Martínez, 2007). Debido a su forma de funcionamiento y almacenamiento de la información, cuando los usuarios requieren realizar modificaciones en la estructura de este tipo de base de datos, deben rediseñar el Cubo OLAP, sin posibilidades de poder utilizar la estructura en la que se trabajó hasta el momento (Martínez, 2007). Para tener una idea más simple de la función de los Cubos OLAP dentro de una base de datos multidimensional, cabe destacar que cada una de las dimensiones o escalas del cubo corresponde básicamente a una jerarquía de datos. Un ejemplo claro de ello podría ser el siguiente caso: dentro de una escala temporal para incluir datos determinados a un periodo de tiempo, que llevara el nombre de "Enero de 2009", seguramente incluirá un dimensión denominada "Primer Trimestre de 2009", la cual además incluirá otra dimensión llamada "Año 2009" y así sucesivamente, de acuerdo a las necesidades de cada empresa (http://www...). Asimismo, también pueden utilizarse otras dimensiones del cubo para recabar información referente a situaciones geográficas, clasificación de los productos por categorías, gastos realizados por la empresa, y demás. Esta confluencia de la información permite llevar a cabo un análisis completo de diversas situaciones, para hallar las soluciones correctas a los problemas de los negocios. 27 Capítulo II. Principios de computación en nube 2.1 Evolución de la computación en nube La computación en nube es un modelo emergente, sin embargo no es un desarrollo revolucionario, ha evolucionado durante varias décadas. Por lo anterior en necesario conocer algunas etapas y antecedentes de lo que hoy en día llamamos computación en nube. Son dos los aspectos que se deben abordar para comprender a este modelo. El primero se refiere a la evolución de las tecnologías, esto es, los avances tecnológicos en materia de dispositivos de acceso a internet y el segundo a la evolución lógica de las tecnologías de la información, tomando como base a los proveedores de servicios de internet. A continuación se detallan cada una de estas evoluciones. 2.1.1 Con base en los modelos de tecnologías de la información Las tecnologías de la información han avanzaron de manera vertiginosa en la segunda mitad del siglo XXI. En la figura 2 se muestran algunos de los avances más significativos, así como sus desarrolladores. Figura 2 Los principales avances tecnológicos y sus desarrolladores (Elaboración propia) 29 En la década de 1980 se inició la tendencia hacia la computación en nube con concepto de computación Grid. La virtualización es otro concepto surgido de la computación Grid, y esto debido a que una de sus principales características era funcionar como un servidor virtual (http://www...). El concepto de virtualización en la década de 1990 fue ampliado más allá de los servidores virtuales. También es en este periodo cuando aparece la primera plataforma virtual que incluía recursos de red y almacenamiento, poco después surgen las aplicaciones virtuales que no contaban con infraestructura subyacente especifica (http://www...). Cuando hablamos de computación en nube, sin duda es necesario tomar de referencia tanto a los modelos cliente/servidor y peer-to-peer (computación distribuida) como los antecedentes de la computación en nube. 2.1.2 Con base en la lógica de la informática Mather, Kumaraswamy y Latif (2009) ponen de manifiesto que la computación en nube es en sí una evolución lógica de la informática. Y para demostrarlo toman como referencia a los proveedores de servicios de nube (Cloud Service Provider, CSP por sus siglas en inglés) como por ejemplo: Amazon.com, Google.com Inc. e IBM, quienes son extensiones de los proveedores de servicios de internet (Internet Service Provider, ISP por sus siglas en inglés). Los primeros ISP proporcionaron acceso a Internet para las organizaciones y los individuos. Estos proveedores solo brindaban principios de conectividad para pequeñas empresas y usuarios. A pesar de lo limitado de sus servicios, proliferaron rápidamente y se fueron denominados ISP 1.0. Cuando internet pasó a ser considerado como una mercancía, los ISP consolidados vieron la posibilidad de ofrecer a sus consumidores un valor agregado al servicio de internet y éste consistió en acceso al correo electrónico y servidores en sus instalaciones. Estos proveedores de internet pasaron a ser ISP 2.0 (http://www...). 30 Tiempo después servicios especializados conocidos como instalaciones de colocación dieron origen a ISP 3.0. Estas instalaciones fueron denominadas como centros de datos, donde existía una enorme posibilidad de localizar servidores, clientes, equipos de almacenamiento, así como, otros proveedores de red. Una ventaja que ofrecía ISP 3.0 era el bajo costo y el bajo nivel de complejidad (http://www...). La evolución continúo hasta llegar a los ISP 4.0, caracterizados por ofrecer además de infraestructura informática, el suministro de aplicaciones especializadas dando con ello origen a los ASP (Aplication Service Provider, ASP por sus siglas en inglés). Uno de los inconvenientes para las organizaciones que hacían uso de este tipo de servicios, era que necesitaban una especie de servidor dedicado (http://www...). Con la computación en nube de llega a ISP 5.0, y se define como SPI, donde se proporciona software como servicio (SaaS), Plataforma como servicio (PaaS) e Infraestructura como servicio (IaaS), con la ventaja de contar con una infraestructura compartida. Cada uno de estos modelos de servicios requiere de un análisis, por lo que en capítulos posteriores serán abordados ampliamente (http://www...). En nuestros días, la computación en nube ha captado la atención de muchas empresas y ello debido a la infinita gama de posibilidades de desarrollo que les ofrece. Con este nuevo modelo de computación aparecieron organizaciones interesadas en su promoción y entre los más importantes están: El Instituto Nacional de Estándares y Tecnología de los esfuerzos para promover la Computación en Nube. La Asociación de Tecnologías de la Información de América. Algunos ejemplos de ISP en México son: Telmex S. A. de C. V. que ofrece servicios de banda ancha para el hogar e internet directo empresarial, Alestra S. A de C.V. con sus servicios de internet de banda ancha e internet a través de línea telefónica, Megacable S.A. de C. V. con sus servicios de Internet para el empresarial y para el hogar. En la figura 2.1 se muestra la evolución de los proveedores de servicios de internet. 31 Figura 2.1 Evolución de los proveedores de servicios de internet (Elaboración propia) 2.2 Definiendo la computación en nube El término computación en nube es relativamente reciente, siendo en 2007 cuando adquirió notoriedad como una forma describir la computación distribuida y sus aplicaciones asociadas con base en internet. Esta es la forma en que Miller aborda el paradigma de la computación en nube. (Miller, 2008) La nube es la esencia de la definición de este modelo de computación, y podemos decir que consiste en un conjunto de computadoras y servidores vinculados entre si y accesibles a través de internet. Lo particular de esta nube es que en ella están alojados nuestros archivos y aplicaciones. Otros autores como Boss, Malladi, Quan, Legrendi y Hall definen a la nube como “un conjunto de recursos informáticos virtualizados” (Boss, Malladi, Quan, Legrendi y Hall, 2007). 32 2.2.1 Atributos de la computación en nube Mather et al. (2009) definen la computación en nube basándose en cinco atributos: multiusuario, escalabilidad masiva, elasticidad, pagar solo cuando se usa y auto aprovisionamiento. Sin embargo también existen organizaciones como el NIST (National Institute of Standards, NIST por sus siglas en inglés), manejan otros términos como son: la interoperabilidad, la portabilidad, la integración y SLA (Service Level Agreement, SLA por sus siglas en inglés). Aun siendo de diferentes autores, los atributos son complementarios y por ello es necesario tomarlos en consideración y conocer su definición. Multiusuario. Los modelos tradicionales (Grid, distribuida) hacían uso de instalaciones informáticas dedicadas exclusivamente a un solo usuario o propietario. En la computación en nube, los recursos a nivel de red, de hospedaje y aplicación, son compartidos, es decir, varios usuarios pueden hacer uso de un mismo recurso a nivel de red, de hospedaje y de aplicación (http://www...). Escalabilidad masiva La tendencia de las organizaciones es tener cada vez mayor cantidad de sistemas, pero la computación en nube ofrece la posibilidad de escalar varias veces esas cantidades, de igual forma pueden hacer esto con su ancho de banda y capacidad de almacenamiento (http://www...). Elasticidad Una organización puede adaptar sus recursos informáticos según sus necesidades, esto es, tener la capacidad de aumentarlos o disminuirlos cuando exista la necesidad de hacerlo. También existe la posibilidad de liberar recursos para diferentes usos cuando ya hayan dejado de ser útiles (http://www...). Auto aprovisionamiento de los recursos 33 Los usuarios son libres de disponer de recursos, como podrían ser sistemas adicionales (capacidad de almacenamiento, procesamiento, software) y recursos de red. La demanda es una palabra clave en la computación en nube y ello debido a la gran flexibilidad que existe en torno a la adquisición de los recursos en función de las necesidades de una organización (http://www...). Interoperabilidad Se refiere a “la capacidad de comunicación entre los sistemas” (Amrhein et al. 2009 p. 7). La información comunicada por un sistema sea entendida por el sistema receptor. Este atributo es de suma importancia ya que al existir diversos proveedores, las nubes deben de trabajar de manera conjunta, independientemente de las diferencias de proveedor. Portabilidad Es “La capacidad para ejecutar los componentes o sistemas en un entorno que difiera de aquel en el que fueron desarrollados. En el mundo de la computación en nube, esto incluye el software y entornos de hardware (físicos y virtuales)” (Amrhein et al. 2009, p. 8). Integración Es “el proceso de combinación de componentes o sistemas en un sistema general” (Amrhein et al. 2009, p.8). Las nubes, las aplicaciones y sus componentes de ninguna manera pueden estar aislados, ya que su éxito depende de un determinado grado de integración, pero esta situación se agrava cuando recordamos la multitenencia y algunos otros factores que tienen que ver con regulaciones en materia de leyes. Acuerdo de nivel de servicio. De acuerdo con Amrhein et al. (2009) es el contrato entre un proveedor y un consumidor que especifica los requisitos de los consumidores y el compromiso del 34 proveedor de los servicios. En un SLA se establecen aspectos como: El tiempo de actividad, la privacidad, la seguridad y procedimientos de copias de seguridad. Pago por lo usado Los usuarios pagan en base a los recursos que realmente utilizan y además por el tiempo que los requieran. 2.2.2 Tecnologías pertinentes de la computación en nube La computación en nube más que una tecnología, es la combinación de varias preexistentes (ver figura 2.2). Estas tecnologías no fueron creadas con un fin común, maduraron a diferente ritmo y contexto. Pese a todo lo anterior se unieron para formar un “ecosistema técnico” para la computación en nube. Los nuevos avances en materia de procesadores, almacenamiento, conexión a internet de banda ancha, tecnologías de virtualización, además de la reducción de costos en servidores. Figura 2.2 Las tecnologías en la computación en nube (Elaboración propia) Dispositivos de Acceso a la nube 35 En los últimos años han aparecido una enorme cantidad de dispositivos capaces de lograr el acceso a internet y con ello a la nube. Computadoras personales (de escritorio y portátiles), ordenadores de red, dispositivos de telefonía móvil. Uno de los casos más sonados es el crecimiento del iPhone, el nuevo Nexus one de Google así como la proliferación de aplicaciones disponibles, lo que se traduce en una mejora en lo referente a la disponibilidad de la nube. Un mayor acceso conlleva al mayor uso y crecimiento de los servicios dentro de la nube. Un ejemplo que demuestra este crecimiento es el acceso a Skype desde un iPhone, con lo que la red está mucho más cerca de los usuarios. Otro ejemplo es Salesforce.com quien ha introducido una aplicación con la cual los usuarios pueden acceder a determinados servicios desde su iPhone. Para el caso del Nexus los usuarios tienen la posibilidad de ver y editar documentos de office, conectarse de forma remota a bases de datos de sus empresas o su computadora de escritorio, por mencionar solo algunos ejemplos (http://www...). Navegadores Los navegadores actuales son mucho más sofisticados y ligeros (iCloud, skyFire para dispositivos móviles), lo cual ayuda que sea más fácil cargarlos, y de esta manera se logra una disminución en el tiempo de acceso a la información y aplicaciones de una nube. Otro aspecto importante es que gran parte de la población de nuestros días está familiarizada con los navegadores y ello debido a que son intuitivos dejando de lado la necesidad de guías de usuario y conocimientos avanzados de computación. Conexiones de banda ancha Si hablamos de Computación en nube, entonces necesitaremos hablar de conexiones de banda ancha, debido a las ventajas que nos ofrece el contar con una conexión veloz y confiable. La disponibilidad de la banda ancha se ha vuelto muy buena sobre todo en áreas metropolitanas. Centros de datos 36 La capacidad de computación es otro factor importante para ofrecer servicios de nube de calidad y es ahí donde los grandes centros de datos entran en acción. También existen las llamadas granjas de servidores que al igual que los centros de datos abarcan múltiples lugares, estos dos pueden ser conectados mediante redes de trabajo, proporcionándoles computación distribuida y la capacidad de prestación de servicios. Mather et al. (2009) manejan una serie de ejemplos que ilustran la flexibilidad y escalabilidad del poder la computación en nube” Entre estos ejemplos encontramos a Google, que ha unido una enorme cantidad de servidores de bajo costo para proporcionar una gran flexibilidad y potencia. Otro ejemplo es Amazon Computo elástico de nube o EC2 (Elastic computer cloud, EC2por sus siglas en inglés) que ofrece la virtualización en un centro de datos para crear un gran número de instancias virtuales de los servicios que se solicitan. Por su lado Salesforce.com ofrece los SaaS a su gran base de consumidores mediante la formación de grupos de clientes para permitirles una mayor escalabilidad y flexibilidad. Dispositivos de almacenamiento Una considerable disminución en los costos de almacenamiento y la flexibilidad con la que puede ser desplegado, han modificado el panorama del almacenamiento. El dispositivo fijo de almacenamiento de acceso directo o también conocido como DASD (Direct Access Storage Device, DASD por sus siglas en inglés) paulatinamente ha sido sustituido por las llamadas redes de área de almacenamiento o SAN (Storage Área Network por sus siglas en inglés), que nos permiten reducir los costos y al mismo tiempo nos ofrece mucha más flexibilidad en el almacenamiento de la empresa. SAN software gestiona la integración de dispositivos de almacenamiento y de forma independiente puede asignar espacio dependiendo de la demanda a través de una serie de dispositivos (http://www...). Las tecnologías de virtualización El término virtualización “se refiere a la abstracción de recursos informáticos (CPU, almacenamiento, red, memoria, pila de aplicaciones y base de datos) para las 37 aplicaciones y los usuarios finales que consumen los servicios” (Mather et al. 2009, p. 13). La virtualización es una plataforma básica en el fomento de la computación en nube, y está transformando el rostro de los modernos centros de datos. Empresas como Sun Microsystems Inc. aseguran que la virtualización es piedra angular en técnica de diseño para todas las arquitecturas nube. Las tecnologías de las virtualización permiten un modelo de nube de negocios multiusuario, proporcionando una nube escalable y de recursos compartido para todos los usuarios. Otro aspecto es que ofrece a los usuarios de la plataforma una amplia variedad de servicios. En el ámbito empresarial, la virtualización ofrece la consolidación de los centros de datos y eficiencias en las mejoras operativas de las organizaciones. Algunos ejemplos de estas tecnologías son: VMwave (virtual machine, VM por sus siglas en inglés) que es un sistema de virtualización mediante software. NAS (Network Attached Storage, NAS por sus siglas en inglés) que dé puede definir como un sistema de almacenamiento de disco que está conectado a otro servidor mediante un redirector de red. Otros ejemplos son virtualización de bases de datos y software de virtualización. 2.2.3 API Mather et al. (2009) sostienen que una buena interfaz de programación de aplicaciones es otro facilitador para el modelo de computación en nube. Una API permite al usuario tener funciones de auto-aprovisionamiento y, control de la programación de los servicios de la nube y sus recursos. El comportamiento de la API depende del tipo de modelo de prestación servicios de nube, como por ejemplo: una simple manipulación de URL (Universal Resource Locator, URL por sus siglas en inglés), para SOA (Service Oriented Architecture por sus siglas en inglés), hasta avanzadas como en el caso de los modelos de programación. Actualmente cada proveedor de servicios de nube tiene su API única, lo que representa un enorme problema para los usuarios, principalmente porque esto evita 38 hacer portables las aplicaciones de nube, esto es, una aplicación no podrá interactuar con las que se ejecutan a través de otras nubes o en ocasiones incluso con las de su propia nube privada. Una API es exclusiva de un servicio de nube, por lo tanto, arquitectos, desarrolladores, personal del centro de datos deben familiarizarse con las características específicas de la plataforma (http://www...). Aunque hasta el momento no existe una norma estándar para API de nube, los proveedores y las comunidades de usuarios realizan esfuerzos para lograr una normalización. Una de estas comunidades es la llamada UCI (Universal Cloud Interface, UCI por sus siglas en inglés) que canaliza sus reclamos hacia la creación de una interfaz de nube abierta y normalizada para la unificación de las API de diferentes nubes. Sin embargo a pesar de todos los reclamos no se tiene conocimiento de avance en la resolución de esta problemática. 2.3 Modelos de prestación de servicios en la computación en nube Cuando hablamos de computación en nube, nos referimos principalmente a los servicios que mediante ese modelo de computación se brindan. El término usado para describirlos se conoce por el acrónimo de SPI, mismo que proviene de los tres principales servicios provistos a través de la nube: software como servicio (Software as a Service SaaS), plataforma como servicio (Plataform as a Service PaaS) e infraestructura como servicio (Infrastructure as a service IaaS) (http://www...). La Figura 2.3 muestra los tres modelos de servicios generalmente aceptados que provee una nube. 39 Figura 2.3 Servicios de computación en nube, ejemplos y sus desarrolladores. (Elaboración propia) 2.3.1 Software como modelo de servicio Si recordamos el método tradicional de adquisición de software, en el cual el consumidor tenía que cargar el software en su propio hardware, a cambio de un importe de licencia (un gasto de capital, conocido como CAPEX). (Mather et al. 2009, p. 18) El cliente también tenía la posibilidad de contratar un servicio de asesoría, mantenimiento, parches y/o actualizaciones. Todo lo anterior estaba condicionado a aspectos relacionados con el sistema operativo y, condiciones de los contratos y las licencias. “En el modelo de SaaS, el cliente no compra el software, sino que lo alquila para su uso mediante una suscripción o pago por modelo de uso (un gasto de operación, conocida como OPEX)” (Mather et al. 2009, p. 18) En algunos casos, el servicio es gratuito pero de uso limitado. Otro aspecto que vale la pena resaltar es que el usuario no está limitado al uso del servicio mediante un hardware determinado, ya que puede acceder desde cualquier equipo o dispositivo autorizado. Otros autores como Chou (2008) afirman que el software como servicio es sin duda la siguiente etapa evolutiva en la forma en que una empresa utiliza el software y paga por él. Pueden existir casos en los que sea necesario realizar trabajos específicos de preparación dentro de la empresa para lograr la integración de aplicaciones que no forman parte de la plataforma SaaS, pero que en cierto modo son potencialmente necesarias para que los servicios sean plenamente funcionales y puedan ser utilizados. 40 2.3.1.1 Beneficios clave del modelo SaaS De acuerdo con Mather et al. (2009) las ventajas del modelo SaaS son las siguientes: SaaS permite a la organización contratar a un tercero (proveedor de servicios o proveedor de software), los servicios y gestión de aplicaciones, logrando así, reducir los costos de las licencias de software, servidores y otras infraestructuras necesarias para su correcto funcionamiento. Al mismo tiempo logra disminuir los costos del personal necesario para el alojamiento de las aplicaciones. SaaS permite a los proveedores de software: controlar y limitar el uso, impedir la copia y distribución, facilitar el control de todas las versiones que se deriven de su software. Usando la Web como infraestructura, una aplicación de SaaS puede ser utilizada por varios usuarios (de uno a muchos), esto es, el usuario final puede acceder a sus aplicaciones a través del navegador de internet. Muchos de los proveedores de SaaS proporcionan una interfaz estandarizada con el fin de facilitar el manejo de sus aplicaciones. Una aplicación de SaaS no está vinculada a ningún tipo de hardware especifico, por lo cual, puede ser ejecutada con la infraestructura de acceso a internet existente. Cabe aclarar que la configuración de los cortafuegos puede afectar el correcto funcionamiento de las aplicaciones. El proveedor de la aplicación de SaaS brinda apoyo en la gestión desde la perspectiva de usuario final. Una aplicación de SaaS puede ser configurada mediante una API, pero una aplicación SaaS no puede ser personalizada totalmente. Mather et al. (2009) afirman que la única diferencia de arquitectura entre el modelo tradicional de software y el modelo de aplicación SaaS, es el número de inquilinos que soporta. El modelo tradicional de software es sinónimo de un modelo de 41 arrendamiento, esto es, un cliente adquiere una aplicación y la instala en un servidor. El servidor ejecuta una aplicación específica para un determinado grupo de usuarios finales de un cliente. El modelo de aplicaciones SaaS es multiusuario, lo que significa que una gran cantidad de diferentes clientes comparten infraestructura física de hardware, pero es única para cada cliente. El diseño de la arquitectura multiusuario de las aplicaciones SaaS maximiza la distribución de los recursos a través de los arrendatarios, pero sigue siendo capaz de diferenciar de forma segura los datos pertenecientes a cada inquilino. La figura 2.4 muestra las ventajas del modelo de SaaS. Figura 2.4 Ventajas del modelo SaaS. Elaboración propia, basado en (Tim Mather, 2009) 2.3.2 Plataforma como modelo de servicio En una plataforma como modelo de servicio (PaaS), el vendedor ofrece un entorno de desarrollo para quienes desarrollan aplicaciones y ofrecen servicios a través de 42 la plataforma del proveedor. El proveedor típico ofrece kits de herramientas y estándares para el desarrollo, canales de distribución y de pago. “PaaS es una variación de SaaS mediante la cual, el entorno de desarrollo se ofrece como un servicio. Los desarrolladores pueden utilizar los bloques de construcción del entorno de desarrollo del proveedor para crear sus propias aplicaciones” (Mather et al. 2009, p. 19). PaaS es una plataforma cuya principal característica es alojar en la nube las herramientas de desarrollo y permitiendo así tener acceso a ellas a través de un navegador de internet. El alojamiento en la nube permite a los desarrolladores crear aplicaciones web sin necesidad de instalar herramientas en sus computadoras, y posteriormente implementar dichas aplicaciones sin conocimientos especializados de administración de sistemas. La utilidad del modelo de PaaS radica en permitir a los desarrolladores, poner en marcha aplicaciones basadas en web, pero sin los costos y la complejidad de la compra de servidores y su configuración. Con las posibilidades que ofrece el modelo PaaS, se incrementara significativamente el número de personas capaces de desarrollar, mantener y desplegar aplicaciones web. 2.3.2.1 Elementos mínimos de una solución del modelo de plataforma como de servicio De acuerdo con Mather et al. (2009) el modelo de PaaS tiene que cubrir una determinada cantidad de elementos mínimos (ver figura 2.5). Estos elementos son: Un estudio de PaaS para saber si el desarrollo de la solución debe de ser basada en navegador. Una solución PaaS debe permitir la integración con servicios web externos y bases de datos. Una solución PaaS debe proporcionar una vigilancia global de la aplicación y la actividad del usuario, para ayudar a los desarrolladores a entender sus aplicaciones y mejoras. 43 Escalabilidad, fiabilidad y seguridad debe ser incorporado en una solución sin necesidad de PaaS adicional para el desarrollo, configuración, u otros costos. Una solución PaaS debe brindar apoyo formal y colaboración bajo demanda en todo el ciclo de vida del software (desarrollo, pruebas, documentación y las operaciones), mientras mantiene la seguridad del código fuente y la propiedad intelectual de los asociados. Una solución PaaS debe apoyar la facturación de pagar por lo que se usa mediante el uso de medidores. Figura 2.5 Elementos mínimos de una solución PaaS. (Elaboración propia) 2.3.2.2 Diferencias funcionales entre el modelo PaaS y las plataformas tradicionales de desarrollo Herramientas de desarrollo Multiusuario 44 Las herramientas de desarrollo de las plataformas tradicionales están destinadas a un solo usuario, pero en el caso del modelo PaaS dichas herramientas deben ser compatibles con varios usuarios y cada uno de ellos con varios proyectos activos. Implementación de arquitectura Multiusuario Un error frecuente de la plataforma tradicional de desarrollo es no considerar la escalabilidad dentro del desarrollo inicial, siendo hasta el momento de desplegar el proyecto cuando los administradores del sistema deben lidiar con este problema. En PaaS, la escalabilidad de la aplicación y niveles de datos deben ser considerados (http://www...). La gestión integrada Las plataformas tradicionales de desarrollo, no se encuentran asociadas con el seguimiento en tiempo de ejecución, pero en PaaS la capacidad de vigilancia debe de ser incorporada en la plataforma de desarrollo. Facturación integrada Ofertas de PaaS requieren mecanismos para la facturación en función del uso que son únicas en el mundo SaaS. 2.3.3 Infraestructura como modelo de servicio El modelo de IaaS proporciona la infraestructura para ejecutar las aplicaciones, pero el enfoque de la computación en nube hace posible ofrecer un pago por uso y escalabilidad del servicio según la demanda. “Un proveedor de IaaS puede construir una infraestructura que controla los picos y valles de las demandas de sus clientes, así como, añadir nuevas capacidades según vaya en aumento la demanda global” (Mather et al. 2009, p. 22). De igual manera el modelo de IaaS puede cubrir solo el alojamiento de aplicaciones o puede ser extendido a otros servicios (soporte de aplicaciones, desarrollo y mejoras). El modelo IaaS es básicamente un servicio asociado con la computación en nube y se refiere a servicios en línea que resumen al usuario los detalles de infraestructura, 45 incluidos los recursos de computación física, la ubicación, la partición de datos, seguridad, respaldos, etc. El proveedor tiene el control total de la infraestructura. (Bennett, Bhuller y Covington, 2009) mencionan algunos ejemplos de IaaS como los ofertados por AWS (Amazon Web Service, AWS por sus siglas en inglés): EC2 (Elastic Compute Cloud, EC2 por sus siglas en inglés) y S3 (Secure Storage Service, S3 por sus siglas en inglés). 2.3.3.1 Funciones disponibles para el modelo de Infraestructura como servicio Este modelo típico de IaaS cuenta con varias funciones. Dichas funciones son: escalabilidad, pago cuando se usa y la mejor variedad de tecnología y recursos (http://www...). Escalabilidad La capacidad de escalar las necesidades de infraestructura, tales como los recursos informáticos, la memoria y almacenamiento. Todo lo anterior basándose en los requisitos de uso del cliente (http://www.). Pago solo cuando lo usas Es decir se tiene la capacidad de comprar la cantidad exacta de infraestructura necesaria en un determinado momento. La mejor variedad de tecnología y recursos. Con el modelo de IaaS el usuario tiene acceso a la mejor gama de soluciones en lo referente a tecnología, y todo con un costo relativamente menor a de los modelos tradicionales de plataforma de desarrollo. 2.4 Modelos de implementación de nubes “Cuando hablamos de nubes, recordemos que nos referimos a una metáfora de la internet y ello debido a que nos muestra una representación simplificada de la 46 complejidad, los dispositivos interconectados y todas las conexiones que en internet se forman” (Mather et al. 2009, p. 22). La computación en nube está compuesta por una diversidad de servicios fiables, los cuales son emitidos desde centros de datos y tienen como base de construcción, las tecnologías de virtualización. En nuestros días se habla de necesidades informáticas de los consumidores y es ahí donde la nube aparece como un punto de acceso único para satisfacerlas. Otro aspecto relevante es el software fuente de estándares abiertos que primordial para el crecimiento de la computación en nube. Como lo menciona (Mather et al., 2009) Los conceptos de nube pública y privada son importantes porque el apoyo de computación en nube permite el aprovisionamiento dinámico, escalable y de recursos virtuales por un proveedor a través de conexiones de internet con pago de una tarifa. Sin duda una enorme ventaja de la computación en nube para los usuarios finales es no tener la necesidad de conocimientos, experiencia, o de control de la tecnología que los soporta los servicios. El NIST define cuatro modelos de implementación de computación en nube, los cuales se muestra en la figura 2.6 Figura 2.6 Modelos de implementación de nubes según el NIST (Elaboración propia) 47 2.4.1 Nube Pública Una nube pública o también llamada externa, se caracteriza por tener las aplicaciones y servicios web de un proveedor disponibles a los clientes a través de internet. Este tipo de nube es alojada, operada y administrada por un proveedor desde uno o más centros de datos (http://www...). Cabe aclarar que el término público en este caso no significa libre, y es que su uso puede ser gratuito o con un costo muy bajo. También es necesario señalar que los datos del cliente no son visibles y esto debido principalmente a que el proveedor proporciona sus clientes mecanismos para controlar el acceso, esto es, la seguridad de los servicios de una nube publica son responsabilidad del proveedor. 2.4.2 Nube Privada Una nube privada también es llamada Interna y ello se debe a que emula una nube en una red privada. Sus características son la elasticidad y el servicio local (http://www...). Dichos servicios son manejados dentro de la organización sí que existan restricciones de ancho de banda de red, riesgos de seguridad y los exigencias legales podrían ser necesarios de llevar en el caso de las nubes públicas. En lo referente a infraestructura, las nubes privadas ofrecen mayor control sobre esta, además de presentar significativas mejoras de la seguridad y ello debido principalmente a que el acceso a usuario es restringido. La principal diferencia entre la nube privada y la pública, radica en que la primera se dedica a una sola organización y no se comparte en ninguna forma con otras organizaciones. De acuerdo con (Mather et al., 2009) han surgido una variedad de patrones de nubes privadas, sin embargo las más representativas son: 48 Dedicada Su característica principal es estar dirigida a los departamentos internos de tecnologías de la información de las organizaciones. Este tipo de nube privada está vinculada con el centro de datos de un cliente (http://www...). Comunidad Este tipo de nube privada por lo general se encuentra situada en los locales de un tercero y es operada por un proveedor que esté vinculado por SLA personalizado y su uso requiere de cláusulas que fijen aspectos relacionados con la seguridad y cumplimiento (http://www...). 2.4.3 Nube Comunidad Una nube se caracteriza por ser utilizada por un grupo de organizaciones con intereses comunes. Algunos de esos intereses pueden ser requisitos de seguridad específicos o el compartir una misión. Los miembros de la comunidad además de encargase de el control de la nube, comparten el acceso a los datos y sus aplicaciones (http://www...). 2.4.4 Nube Hibrida Como su nombre lo dice es una combinación de dos tipos de nubes que interactúan, en este caso son la pública y privada. Su principal característica es que la información crítica de las organizaciones no se externaliza sin embargo existen servicios que si es posible compartir (nube pública), y esto debido a que existe beneficio mutuo entre varias organizaciones. Una de las principales limitaciones de este modelo es lograr un nivel de confianza entre los usuarios de las diferentes nubes (http://www...). 49 2.5 Clasificación de la computación en nube En la computación en nube los consumidores utilizan los servicios prestados a través de las nubes. Los proveedores de servicios gestionan la infraestructura de nubes y los desarrolladores de servicios se encargan de la creación de los servicios propios. Como lo mencionan (Amrhein et al., 2009) para que todos estos servicios puedan interactuar es necesario un estándar entre proveedores. Cada uno de estos elementos será abordado con el fin de comprender su funcionamiento. 2.5.1 Consumidor de servicio Cuando hablamos de “consumidor de servicio nos referimos al usuario final o la empresa que hace uso del software, plataforma o infraestructura como un servicio” (Amrhein et al. 2009, p. 9). Las interfaces de usuario y de programación con las interactúa el consumidor están determinadas por los tipos de servicio que usa y el rol que este desarrolla (ver figura 2.7). Figura 2.7 Elementos del consumidor de servicios (Elaboración propia) Una enorme ventaja para el usuario es poder interactuar con la nube por medio de interfaces que tienen la apariencia de ser un tipo común de aplicación. También 50 existen interfaces de usuarios que proporcionan algunas funciones administrativas como pueden ser las de iniciar y detener máquinas virtuales, o la gestión del almacenamiento de la nube. Los consumidores escriben código para sus aplicaciones mediante la utilización de diferentes interfaces de programación dependiendo del tipo de aplicación que desarrollan. Otro aspecto relevante es que los consumidores trabajan mediante SLA y los contratos. Generalmente los SLA y los contratos son realizados en base a negociaciones entre el consumidor y el proveedor. Existen factores claves en una negociación, por un lado están las expectativas del consumidor o cliente y por el otro la reputación del proveedor (http://www...). 2.5.2 Proveedor de servicio De acuerdo con Amrhein et al. (2009) un proveedor es aquel que ofrece servicios al cliente, y sus tareas dependen del servicio que brinda. La clasificación que realizan de los proveedores y sus tareas es la siguiente. Para proveedor de software como servicio. Realiza la instalación, gestión y mantenimiento del software. Las instalaciones físicas en las que se ejecuta la aplicación no son necesariamente propias del proveedor. De igual forma se establece que el cliente en ningún momento tiene acceso a la infraestructura, solo tiene la posibilidad de acceder a la aplicación. Para proveedor de plataforma como servicio. Gestiona la infraestructura de nube para la plataforma, generalmente la infraestructura está diseñada para un tipo particular de aplicación. En este caso los consumidores no tienen acceso a la infraestructura que está debajo de la plataforma. Para proveedor de infraestructura como servicio Ofrece mantenimiento a la base de datos, cola de mensaje, o al entorno de alojamiento de las máquinas virtuales. En términos sencillos se puede decir que el 51 usuario utiliza este servicio como si se tratara de una unidad del disco, base de datos, cola de mensajes, o de una máquina virtual, sin embargo no tienen acceso a la infraestructura que aloja todos los servicios. Figura 2.8 Diagrama de capas del proveedor de servicio (Elaboración propia) La figura 2.8 define cada una de las capas del proveedor de servicios. La capa inferior de toda la pila es el firmware y hardware en los se basa todo lo demás. El nivel superior esta encuentra el núcleo del software (sistema operativo o gestor de la máquina virtual). En el siguiente nivel se encuentran los recursos virtuales e imágenes que incluyen los servicios básicos de computación en nube, como la potencia de procesamiento, de almacenamiento y middleware. Las imágenes virtuales incluyen tanto las imágenes y los metadatos necesarios para ser controladas por el gestor de la máquina virtual. La capa de gestión es primordial para las operaciones del proveedor de servicios. En el nivel inferior de toda la capa, la gestión requiere de tres aspectos fundamentales como son: la medición para saber con precisión quien utiliza los servicios y en qué medida, el aprovisionamiento para determinar cómo se asignan los recursos a los consumidores, y de supervisión para dar seguimiento al estado del sistema y sus recursos. El nivel superior de esta 52 capa está relacionado con la gestión de la facturación para recuperar los costos, la planificación de las capacidades para garantizar la satisfacción de las exigencias de los consumidores, la gestión de SLA para garantizar que se respeten las condiciones de servicio acordadas por el proveedor y consumidor, y por último la presentación de informes a los administradores. La seguridad está presente en todos los niveles y operaciones del proveedor de servicios. De igual forma los estándares abiertos tienen aplicación a todas sus operaciones. La interoperabilidad con otros proveedores de servicios se sustenta en un conjunto de normas (http://www...). 2.5.3 Desarrollador de servicios Un desarrollador de servicios es aquel que “crea, edita y supervisa el servicio de las nubes” (Amrhein et al. 2009 p. 12). Generalmente son una línea de negocios de aplicaciones que son entregados de forma directa a los usuarios finales a través del modelo SaaS. Existen variaciones en los entornos de desarrollo para la creación de servicios. Cuando un desarrollador crea una aplicación SaaS, es muy probable que el código en que se está escribiendo la aplicación, dependa del entorno en el que está alojado el proveedor de nube. Un aspecto importante en el desarrollo de una aplicación es la depuración remota, ya que permite a los proveedores realizar pruebas, conjuntamente con los usuarios finales, antes de publicar definitivamente el servicio en la nube. Finalmente el servicio es publicado, las pruebas realizadas, ofrecen al proveedor, los parámetros para supervisar el rendimiento del servicio y realizar los ajustes según convengan. La participación indirecta de los usuarios finales permite obtener mejores servicios en cuanto a calidad y funcionamiento. 53 2.6 Las ventajas y desventajas de la computación en nube Sin duda los aspectos de la computación en nube abordados hasta ahora nos ofrecen un panorama con un amplio cumulo de ventajas, sin embargo es un modelo de computación emergente y por eso es conveniente realizar un análisis serio, y ello implica mostrar las desventajas que presenta este paradigma de la computación de alto rendimiento. 2.6.1 Ventajas de la computación en nube Son varias las ventajas que ofrece la computación en nube. (Miller, 2008) identifica las siguientes: Menor costo informático para los usuarios Cuando nos referimos a costos hablamos de una ventaja financiera cuantitativa, esto es, para ejecutar las aplicaciones basadas en la computación en nube no se necesitara de una gran potencia de cálculo y por consiguiente podrá prescindir de equipo (hardware) altamente costoso. Las aplicaciones se ejecutaran en la nube, lo que no condiciona al hardware a disponer de potencia de cálculo o de espacio en disco duro. Un cliente de computación en nube, puede disponer de equipos con discos duros relativamente pequeños, menos memoria, procesadores más eficientes, prescindir de unidades de CD o DVD (no necesita instalaciones de software), todo lo anterior reduce significativamente los costos de los equipos informáticos. Autores como Bob Worrall (2009) afirman que con este modelo de computación sólo se paga por lo que se utiliza, y las tarifas son generalmente inferiores al costo de desarrollo y mantenimiento de un departamento interno de TI de los servicios equivalentes. Mejora del rendimiento Tradicionalmente un equipo de escritorio necesita una gran capacidad de almacenamiento y de ejecución de aplicaciones (software), con lo cual su rendimiento tiende a ser deficiente. La computación en nube ejecuta las aplicaciones dentro de sí, logrando con ello liberar al equipo de escritorio del uso de 54 memoria. En resumen, un equipo con menos programas y carga de procesos, logran arrancar y correr a mayor velocidad las aplicaciones de la nube. Reducción de costes de infraestructura Uno de los inconvenientes de las grandes empresas son las enormes inversiones que deben realizar en sus departamentos de tecnologías de la información (potentes servidores e instalaciones especiales para estos). En ocasiones una empresa puede presentar una necesidad temporal de recursos informáticos y ello le obliga a realizar una inversión que en cierta forma será usada solo en esa emergencia, pero cuyos costos serán de definitivos para la empresa. Situaciones como las anteriormente citadas, serán fácilmente manejables con la computación en nube, y ello debido principalmente a que las necesidades especiales serán atendidas por la nube, y aunque en cierta forma requieran de una inversión, ésta será solo mientras se presenta la necesidad de los recursos informáticos. Disminución de problemas de mantenimiento El mantenimiento del hardware y software dentro de las empresas suelen acarrearle significativos costos que de alguna manera suelen mermar sus finanzas. Con la computación en nube, las empresas requerirán de menor cantidad de hardware, esto es, entre menor necesidad de mantenimiento se reducirán los costos de este rubro. Por el lado del software recordemos que todas las aplicaciones se alojan en la nube, lo que implica que no habrá necesidad de mantenimiento de software dentro de la empresa. Reducción de los costos de software Tradicionalmente una empresa recurría a la compra de paquetes de software independiente para cada una de sus computadoras. Con la computación en nube es posible adquirir software solo para aquellos usuarios que realmente tengan la necesidad de utilizarlo. Otra posibilidad puede ser adquirir un solo paquete para determinada cantidad de usuarios y con un precio sustancialmente inferior al de los paquetes de software tradicional. Actualmente existen empresas (como Google) que ofrecen sus aplicaciones basadas en web de acceso gratuito para los 55 individuos, y para las organizaciones los costos son significativamente menores que los cobrados por Microsoft y proveedores similares de software de escritorio. Actualizaciones instantáneas de software Cuando una aplicación está basada en web, las actualizaciones ocurren de manera automática y estarán disponible siempre que el usuario se conecte a la nube. Cada vez que un usuario utiliza una aplicación de la nube, no tendrá la necesidad de pagar una actualización y además tendrá reservada una actualización sin la necesidad de descargarla. Aumento del poder de cómputo Un usuario de la computación en nube, tiene a su disposición de todo el poder de cómputo de la misma. Con los equipos tradicionales de escritorio, el usuario se veía limitado a las capacidades de cómputo que este le ofrecía. Esto cambia drásticamente con la computación en nube y es que ahora el usuario puede hacer uso de un poder de cómputo ilimitado, debido principalmente a los miles de computadoras y servidores que conforman la nube. Capacidad de almacenamiento ilimitada La capacidad de almacenamiento de una computadora de escritorio está limitada por el disco duro. La nube ofrece una capacidad de almacenamiento prácticamente ilimitada. Una nube puede presentar capacidades de cientos de petabytes (un millón de gigabytes) y gran parte de ellos disponibles para un usuario. Aumento de la seguridad de datos Uno de los principales inconvenientes del almacenamiento tradicional son las pérdidas ocasionadas por las fallas en los dispositivos de almacenamiento, por ejemplo: cuando el disco duro de alguna computadora personal se desploma o sufre alguna avería, gran parte de la información contenida en él se pierde. Situaciones de este tipo no se presentan en una nube y eso debido a que los datos se duplican automáticamente, por ello no se pierde nada. 56 En la computación en nube, el bloqueo de una computadora personal no limita a ningún usuario pues todos los datos están alojados en la nube. Con la computación en nube la seguridad de los datos aumenta considerablemente. Mejora en la compatibilidad de sistemas operativos Lograr comunicación entre dos equipos con un sistema operativo diferente (Windows a Mac) o compartir datos entre dos computadoras Linux a Windows), sin duda dos actividades muy frustrantes. En la computación en nube, los sistemas operativos no importan, esto es, compartir documentos entre dos equipos con diferente sistema operativo es posible. En la computación en nube los datos son lo primordial, los sistemas operativos pasan a segundo término o dejan de ser necesarios. Mejora de la compatibilidad de formatos de documentos En la computación en nube cualquier documento creado es compatible con las aplicaciones de otros usuarios y esto se debe a que son creados basados en internet. La incompatibilidad de formatos no existe en la nube, todos los usuarios pueden compartir tanto documentos como aplicaciones. Facilita la colaboración grupal Compartir documentos, conlleva a la colaboración para realizar dichos documentos y es ahí donde la computación en nube ofrece una de sus más importantes ventajas para los usuarios, y esta consiste en tener la capacidad de que múltiples usuarios colaboren en documentos o proyectos. Por poner un ejemplo: una empresa tiene a dos de sus desarrolladores más calificados, situados en regiones geográficas distantes y los necesita juntos para un proyecto importante. Tradicionalmente el trabajo de hacía de forma secuencial mediante envíos de documentos de un desarrollador a otro. Con la computación en nube esos mismos desarrolladores tiene la posibilidad de acceder a los documentos del proyecto de forma simultánea y además cada edición realizada por un desarrollador se ve reflejada automáticamente en la pantalla del otro desarrollador. 57 Para lograr este tipo de colaboración en grupo solo necesitan una computadora con conexión a internet. La colaboración en grupo se traduce en la reducción de los tiempos y una rápida finalización de los proyectos. La computación en nube se cataloga como una tecnología capacitadora y esto debido a que permite que dos usuarios con diferentes niveles de conocimientos tener la posibilidad de interactuar en tiempo real, permitiéndoles desarrollar habilidades. El acceso universal a documentos El olvido de documentos en una computadora no existe en la computación en nube, ya que, los documentos se guardan en ella, no en la computadora. Cuando un usuario necesita hacer uso de algún documento, puede acceder a él de forma instantánea y lo único que necesitan es la conexión a internet. Con la computación en nube, los documentos irán a donde el usuario vaya. Últimas versiones disponibles La creación de un documento dentro de la nube utiliza la última versión de aplicación disponible. Por ejemplo: usando la computación en nube, un documento creado en el hogar puede ser editado en la oficina ya que ambas usan la versión más reciente de la aplicación. Elimina la dependencia de dispositivos específicos Con la computación en nube se termina con la necesidad de los usuarios de estar sujetos una sola computadora o red. Cuando un usuario cambia de computadoras, sus aplicaciones y sus documentos lo siguen a través de la nube. La computación en nube elimina la necesidad de comprar versiones especiales de aplicaciones para un dispositivo en particular. Los documentos y aplicaciones de una nube son los mismos sin importar la computadora que se esté utilizando. La figura 2.9 muestra las ventajas del modelo de computación en nube. 58 Figura 2.9 Ventajas de la computación en nube (Elaboración propia) 2.6.2 Desventajas de la computación en nube La computación en nube también presenta algunas desventajas que podrían de alguna manera convertirse en factores decisivos para la no adopción este modelo de computación. La Figura 2.10 muestra las desventajas del modelo de computación en nube. Figura 2.10 Desventajas de la computación en nube (Elaboración propia) 59 Requiere una conexión permanente a internet La computación en nube es imposible si no cuenta con una conexión a internet, y esto se debe a que utiliza el internet para conectarse a las aplicaciones y documentos. La falta de internet se traduce la ausencia de trabajo y en el caso de conexiones poco confiables las desconexiones podrían llegar a generar demasiadas pérdidas de tiempo de trabajo. Cuando el usuario se desconecta de internet, la computación en nube deja de funcionar. Para un usuario acostumbrado a una conexión consiste podría no ser una desventaja poco significativa. Sin embargo para aquellos usuarios que usan documentos y aplicaciones basadas en la nube, de ninguna manera es lo mismo estar en una oficina, que en un lugar público o en su automóvil, a menos que se tenga una conexión estable en todos esos lugares (http://www...). Funciona deficientemente en conexiones de baja velocidad Una conexión a internet de baja velocidad, por ejemplo: la que se encuentra con servicios de acceso telefónico, hacen muy lenta a la computación en nube en el mejor de los casos y puede ser que en ocasiones sea imposible de llevarla a cabo. Para poder ser descargados, las aplicaciones y documentos basados en internet requieren primordialmente de una conexión de banda ancha. En pocas palabras la computación no es para conexiones lentas o de banda ancha reducida. Puede ser lenta Una conexión de alta velocidad con el uso de aplicaciones basadas en web puede volverse lenta en comparación con el acceso a una aplicación similar en una computadora personal. Gran parte de la lentitud se debe que todo lo relacionado con la aplicación, debe ser enviado de iba y vuelta a las computadoras de la nube. En días con demasiada demanda en la nube, el acceso instantáneo sencillamente no existe. Aplicaciones con características limitadas 60 Las aplicaciones basadas en web tienen una desventaja particular y es contar con menos características que una aplicación de una computadora personal. Un ejemplo que nos permite comprender mejor esta desventaja es comparar dos aplicaciones como son: las presentaciones de Google, con las de Microsoft PowerPoint, mientras que la primera aplicación nos ofrece una base de características similares a Microsoft PowerPoint, esta última cuenta con funciones mucho más avanzadas. Para un usuario con conocimientos avanzados en alguna tipo de aplicación tradicional no es recomendable el salto a la computación en nube. Otro aspecto relevante es que están en constante mejora, prueba de ello son los esfuerzos que realiza Google para mejora gradualmente las características de algunas de sus aplicaciones, por ejemplo: Google Docs y Hojas de cálculo con las cuales comenzó de forma lenta, pero con el tiempo fue agregando muchas funciones. A pesar de esto las aplicaciones tradicionales, como son, Microsoft Word y Excel siguen siendo las más usadas (http://www...). La realización de un cambio del software tradicional a las aplicaciones basadas en web, requieren de un profundo análisis de las todas las características que presentan las aplicaciones de nube. Las aplicaciones deben de cubrir todas las características requeridas por el usuario, pues de otra forma no se recomienda la migración hacia este modelo de computación. Los datos almacenados pueden ser no seguros Con la computación en nube todos sus datos se almacenan en la nube. Esto implica que si algún usuario no autorizado logra entrar a la nube podrá acceder a datos confidenciales de los usuarios. La seguridad de una nube puede ser cuestionable en cierta forma. La pérdida de datos en una nube es definitiva Una nube crea respaldos automáticos, sin embargo en la remota posibilidad de que una nube extravié datos, las pérdidas son definitivas. Esto se agrava cuando recordamos que el usuario no posee ninguna copia de seguridad en sus instalaciones. 61 Una vez comprendidos los conceptos básicos sobre la computación en nube, tales como su definición, sus atributos, sus modelos, su clasificación, así como sus ventajas y desventajas, es conveniente continuar con el análisis de las empresas desarrolladoras y los servicios que ofrecen. 62 Capítulo III. Implementaciones de la computación en nube 3.1 Empresas desarrolladoras de nubes de servicios Un estudio sobre la computación en nube de poco sirve si no se conocen cuáles son las compañías dedicadas al desarrollo de nubes. El modelo de computación en nube se encuentra aún en su etapa de desarrollo, esa la razón de que existan pocas empresas apostando por este modelo de computación. De acuerdo con (Miller, 2008) uno de los servicios más básicos de computación en nube ofrecidos por las compañías es el hosting para aplicaciones desarrolladas desde cero. El servicio más completo incluye herramientas de desarrollo y aplicaciones pre-construidas que los desarrolladores pueden como bloques para desarrollas su propia y única página web. 3.1.1 Amazon.com Inc. Amazon.com Inc. es uno de los principales proveedores de servicios de desarrollo de nubes. Esta corporación ha invertido mucho tiempo y dinero en la creación de pequeños servidores al servicio de su página web, estos recursos de hardware están siendo puestos a disposición de los desarrolladores. Computación elástica en nube (EC2 acrónimo del Inglés Elastic Cloud Computing) es un servicio web comercial para desarrolladores y compañías que les permite el alquiler en una nube dentro de los servidores de Amazon. Una de sus características principales de EC2 es el despliegue de aplicaciones escalables. Con esto permite a sus clientes solicitar un número determinado de maquina virtuales, en las que puede cargar cualquier aplicación que este desee. 64 Un cliente puede crear, iniciar y poner fin a las instancias de demanda del servidor, logrando así una verdadera elasticidad. El servicio de Amazon, ofrece tres opciones para elegir el tamaño de su servidor virtual. Las opciones son: Pequeño: Servidor ofrece el equivalente de un sistema con 1.7 GB de memoria, 160GB de almacenamiento y un procesador virtual con núcleo sencillo de 32 bits. Grande: Servidor que ofrece el equivalente a un sistema con 7.5GB de memoria, 850GB de almacenamiento y dos procesadores virtuales con núcleo sencillo de 64 bits. Extra Grande: Servidor que ofrece el equivalente a un sistema con 15GB de memoria, 1.7 TB de almacenamiento virtual y cuatro procesadores virtuales de doble núcleo de 64 bits. EC2 es uno de los servicios más posicionados de AWS .Es un conjunto de ofertas que ofrece a desarrolladores acceso directo a los programas y maquinas. En cuestión de números, AWS es uno de los servicios de nube más populares actualmente, ya que cuenta con alrededor de 330,000 clientes, entre lo que se encuentran desarrolladores, pequeñas en desarrollo y empresas consolidadas. 3.1.2 Google Inc. “Google es una empresa líder en aplicaciones basadas en internet, por lo que no es de extrañar que la compañía también ofrezca el servicio de desarrollo de nubes” (Miller, 2008, p. 43). Los servicios se presentan en forma de App Engine que permite ejecutar aplicaciones web en la infraestructura de Google. Las aplicaciones desarrolladas con esta tecnología son fáciles de construir, de fácil mantenimiento, y con muy buena escalabilidad cuando el tráfico y las necesidades de almacenamiento aumentan. 65 Algunas de las ventajas que ofrece el uso del servicio de App Engine de Google son: pagar por lo que se usa, no hay costos de establecimiento, los recursos utilizados (ancho de banda y almacenamiento) se miden por gigabytes, los precios son competitivos, además de permitir control del importe máximo de los recursos que consume la aplicación. El servicio gratuito se limita a 500 MB de almacenamiento, CPU y ancho de banda, suficientes para soportar 5 millones de visitas al mes. El consumo por encima de estos límites requieren de facturación (implican costos). App Engine incluye algunas características como son: Web de servicios dinámicos Almacenamiento persistente con consultas, ordenación y transacciones. Escala automática y balance de carga Soporte para todas las tecnologías web comunes API para la autentificación de usuarios y envió de correo electrónico utilizando cuentas Google. Un usuario desarrolla la aplicación (mediante Google API y en cualquiera de los dos lenguajes Java ó Python) y la sube a la nube de App Engine, una vez ahí, está lista para ser utilizado por los usuarios. 3.1.3 IBM IBM es una de las compañías más fuertes a nivel mundial en lo referente a hardware de computación de nivel, lo cual le da la posibilidad de ofrecer soluciones de cómputo en nube. Esta compañía centra sus esfuerzos en las pequeñas y medianas empresas con una suite de servicios basados en nube en demanda a través Blue Cloud. “Blue Cloud es una serie de ofertas de computación en nube que permite a las empresas distribuir sus necesidades de computo a través de una red de recursos accesible a nivel mundial”. (Miller, 2008, p. 44). Un ejemplo de oferta que ofrece Blue Cloud es la serie denominada IBM Express Advantage que incluye datos de 66 copia de seguridad y recuperación, la continuidad de correo electrónico y archivos, además de funcionalidades de seguridad. IBM proporciona la carga de trabajo basado mayormente en código abierto. Incluye también herramientas de virtualización lo que la posicionan como una de las empresas más confiables para el modelo de IaaS. 3.1.4 Salesforce.com Esta empresa ofrece un SaaS de gestión de ventas, pero también es un líder en el desarrollo de la computación en nube. La arquitectura de computación en nube de la compañía es conocida como Force.com. Entre las ventajas de esta plataforma como servicio es ser totalmente a la carta contar con su propia API y un Kit de herramientas para desarrolladores. Salesforce.com cuenta con AppExchange un directorio de aplicaciones basadas en web. Los desarrolladores pueden utilizar aplicaciones de AppExchange cargado por los otros, permite compartir sus propias aplicaciones con el directorio o publicar aplicaciones privadas que son accesibles únicamente a los usuarios previamente autorizados. 3.2 Implementaciones de aplicaciones de computación en nube existentes Otro aspecto importante para comprender la computación en nube es el conocimiento de los usos reales que puede se pueden hacer en la actualidad de los servicios y aplicaciones existentes basados en este modelo de computación. En este capítulo se abordaran las implementaciones de la computación en nube en diferentes ámbitos como son: el familiar, la comunidad y el empresarial. 67 3.2.1 Aplicaciones de computación en nube para la familia La computación en nube tiene un sin número de aplicaciones en nuestra actualidad. Estas aplicaciones incluyen a los usuarios típicos de una familia promedio quienes pueden usarlas con diversos fines como por ejemplo: comunicarse, colaborar en actividades y poder estar más cerca del entorno familiar (ver figura 3.1). Figura 3.1 Aplicaciones de computación en nube para la familia (Elaboración propia) La centralización de comunicaciones de correo electrónico. La computación en nube puede ayudar a las familias a mejorar sus habilidades de comunicación. El correo electrónico antes de la computación en nube se limitaba al acceso en un solo equipo mediante el uso de aplicaciones como Microsoft Outlook u Outlook Express instalada en la PC del hogar. También existía la posibilidad de utilizar el servicio de correo electrónico proporcionado por el ISP, aunque con la desventaja de una posible desincronización de la página web con los mensajes la PC del hogar. Con la computación en nube apareció el servicio web de correo electrónico como Gmail de Google (mail.google.com), Microsoft Windows Live Hotmail (mail.live.com) o Yahoo! Mail (mail.yahoo.com). Estos tres servicios de permitían a los usuarios acceder al correo electrónico desde cualquier PC conectada a internet. Con los nuevos servicios de correo electrónico, los integrantes de una familia logran estar en contacto. Colaboración en listas de horarios La sincronización de eventos de una familia es otro aspecto que favorece la computación en nube mediante las listas de horarios. La solución tradicional podría 68 haber sido mantener un horario en papel, aunque su consulta en un lugar diferente de casa fuera imposible. La solución apareció con los calendarios basados en web, como Google Calendar (calendar.google.com) o Yahoo! Calendar (calendar.yahoo.com). El acceso a estos calendarios es posible desde cualquier lugar, en cualquier momento y por cualquier persona, además de poder ser configurado de forma que toda la familia tuviera la posibilidad de agregar sus propios eventos. Colaboración en listas de compras Una solución para coordinar las compras de una familia con múltiples horarios y actividades, es utilizar un programa procesador de texto para gestionar las listas de compras. Google Docs es un ejemplo de este tipo de programas, pues permite la creación de un documento y después autorizar el acceso a varios miembros de la familia. Su funcionamiento es simple, ya que cada integrante de la familia accesa a la lista y agrega los productos que necesita, esta misma lista es consultada al momento de realizar las compras y todo con una conexión a internet. Colaboración en proyectos de centros escolares Las aplicaciones basadas en web ofrecen la posibilidad de poder colaborar en proyectos de los centros escolares. Cuando los niños en edad escolar tienen que realizar proyectos escolares en grupo, existen problemas de coordinación. Por ejemplo: supongamos que un proyecto grupal consiste en la realización de una presentación de un personaje celebre, y la típica solución es que todos los integrantes de ese grupo usen Microsoft PowerPoint y lleguen al acuerdo de reunirse en un lugar a una hora determinada para poder reunirse. Con las aplicaciones basadas en Web ahora los traslados de todos los integrantes de ese grupo de trabajo al punto de reunión ya no serán necesarios y es que existen aplicaciones basadas en Web para realizar presentaciones como es el caso de Google Presentaciones. Ahora cada integrante desde su propio hogar puede agregar sus diapositivas a la presentación y los demás integrantes que estén conectados podrán ver las trasformaciones en la presentación en tiempo real. 69 Aplicaciones como esta también ofrecen la posibilidad de guardar los proyectos con otro tipo de formato en caso de no contar con conexión a internet dentro del lugar donde se expondrá la presentación elaborada y usar software tradicional como Microsoft PowerPoint. 3.2.2 Aplicaciones de computación en nube para la comunidad Otros sectores de la población que se podrían ver ampliamente beneficiados con la computación nubes son los grupos de vecinos, los equipos deportivos, las organizaciones escolares todos ellos integrantes de una comunidad determinada (ver figura 3.2). Figura 3.2 Aplicaciones de computación en nube para la comunidad (Elaboración propia) Comunicación de toda la comunidad Una organización tiene la imperante necesidad de estar comunicada sobre todo porque existen intereses comunes. En una comunidad sus integrantes suelen usar su tiempo libre para realizar actividades relacionadas con grupos sociales y es aquí donde el uso de correo electrónico como Gmail (mail.google.com), Microsoft Windows Live (mail.live.com) o Yahoo! Mail (mail.yahoo.com). Aplicaciones de correo electrónico como las antes mencionadas le permiten a un integrante mantenerse en contacto con los demás integrantes del grupo, ya que puede acceder a sus mensajes desde cualquier lugar (trabajo, hogar) solo con una conexión a internet. Los horarios de equipos deportivos 70 Dentro de una comunidad las actividades deportivas suelen ser de las más comunes. Sin importar la edad o el deporte, existen una infinidad de actividades (prácticas, partidos, reuniones de equipo) que requieren de una programación. Una forma de poder controlar toda la logística de un grupo deportivo puede ser mediante el una aplicaciones basadas en web como el caso de un calendario, como Google Calendar (calendar.google.com), Yahoo! Calendar (calendar.yahoo.com), o CalendarHub (www.calendarhub.com). La solución consiste en crear un calendario público y proporcionar la dirección a todos los miembros del equipo y posteriormente agregar todas las actividades para que puedan ser consultadas. “Otras buenas alternativas son los constructores de sitios web de equipos deportivos” (Miller, 2008, p. 63) Existen sitios web que ofrecen herramientas diseñadas específicamente para el control de las actividades de equipos deportivos. Estos sitios nos permiten contar con una página de inicio, perfiles de jugadores, lista de expertos, cuadro de resultados. En el diseño es posible usar tanto los colores, como el logotipo del equipo. 3.2.3 Aplicaciones de computación en nube para las empresas De acuerdo con (Miller, 2008), las empresas (grandes y pequeñas) han sido las primeras en adoptar la computación en nube, debido principalmente a la disminución de costos y el incremento de la productividad al utilizar herramientas basadas en web, sobre todo en la gestión de proyectos, colaboración de documentos y presentaciones, así como en la administración de contactos. Son muchas las aplicaciones basadas en web existentes en la actualidad, mismas que facilitan sus labores a los empleados de una empresa. Con la computación en nube los trabajadores pueden eliminar la dependencia de sus equipos de escritorio. En la Figura 3.3 se muestran algunos de los ejemplos de aplicaciones de computación en nube para las empresas. 71 Figura 3.3 Aplicaciones de computación en nube para las empresas (Elaboración propia) Administración de cronogramas Cuando en una empresa se organizan eventos que requieren de la asistencia de colaboradores geográficamente distantes del punto de reunión, las aplicaciones como Yahoo! Calendar (calendar.yahoo.com) o Google Calendar (google.calendar.com) pueden ser de gran utilidad. Dichas aplicaciones nos permiten sincronizar horarios y poder realizar la programación de un evento, de tal forma que sea posible contar la mayor cantidad de colaboradores. Según Miller (2008) existen otras aplicaciones con funciones más avanzadas para la administración de cronogramas. Una de estas es AppointmentQuest (www.appointmentquest.com), pero su uso implica una cuota mensual que oscila entre los US 20 y US 200 por concepto de suscripción. También existen otras aplicaciones como son: Schedulebook (www.schedulebook.com) y hitAppoint (www.hitappoint.com). Gestión de listas de contactos El manejo de los clientes de un vendedor de una gran empresa requiere un control muy riguroso. Aplicaciones como Microsoft Outlook son de ayuda, sin embargo actúa solo como un almacén de nombres e información de contactos, además de ser de difícil acceso estando fuera de la oficina. Miller (2008) plantea una solución y esta es, la gestión de contactos basada en web. Las razones del citado autor para el uso de este tipo de aplicaciones son su adaptabilidad a las necesidades de un vendedor ocupado, además de que le 72 proporcionan características como son: una programación de actividades, recordatorios de citas y plantillas de correo electrónico. Algunas aplicaciones web para la gestión de contactos son BigContacts (www.bigcontacts.com), Highrise (www.highrisehq.com), y el mercadeo Salesforce.com. Estas aplicaciones incluyen funciones como la gestión de gastos de cuenta, los informes de actividades de ventas, por citar las más importantes. La implementación de la computación en nube ofrece posibilidades de acceso a la información, no solo al vendedor, sino también al gerente desde cualquier lugar y a cualquier hora, solo con una conexión a internet. Gestión de proyectos Las empresas en algún momento de su existencia llegan requerir de la puesta en marcha de un gran proyecto. La complejidad de estos proyectos radica en que involucran a empleados de diversos departamentos y lugares, además de contar con infinidad de tareas. El seguimiento de estas tareas individuales puede llegar requerir un esfuerzo mayor si se usan aplicaciones de escritorio. Miller (2008) recomienda minimizar el esfuerzo mediante la utilización de una aplicación web de gestión de proyectos. Cuando se utiliza una aplicación de este tipo, cualquier miembro del proyecto sin importar su ubicación puede acceder al archivo maestro para agregarle o eliminarle tareas según sea el caso. Una ventaja de un proyecto alojado en la nube implica que cualquier cambio realizado en él, inmediatamente es mostrado en tiempo real al resto de los colaboradores, ya sea mediante diagramas o listas de tareas. “El costo de las aplicaciones web para la gestión de proyectos suele ser elevado, además de ser difíciles de aprender a utilizar” (Miller 2008, p. 74). Algunos ejemplos de (www.aceproject.com), aplicaciones Basecamp web de este tipo son: (www.basecamphq), AceProject onProject (www.onproject.com), y el proyecto Insight (www.projectinsight.com). 73 Acceso a documentos desde la calle Cuando se habla de aplicaciones basadas en web es necesario recordar que el acceso a la misma debe de poder realizarse desde cualquier lugar. De igual forma un documento alojado en la nube debe de ser accesible sin importar la ubicación del usuario. (Miller, 2008) asegura que todo lo que se necesita es una computadora con acceso a internet, entrar al sitio adecuado, ingresar los datos del usuario (nombre y contraseña), y posteriormente abrir cualquier documento. 3.3 Casos de estudio de IaaS y SaaS de empresas desarrolladoras multinacionales Aun cuando existen empresas que marcan la pauta en lo referente al desarrollo de la computación en nube como en los casos de Google Inc. ó Amazon.com Inc., esto no significa que ofrezcan mejores servicios y como muestra de ello, mostrare dos ejemplos en los cuales se realiza una comparación de servicios ofrecidos por las citadas empresas. 3.3.1 Caso IaaS: Servidores de nube (Rackspace EE.UU., Inc.) y EC2 (Amazon.com Inc.) Amazon.com. Inc., es una empresa líder en la prestación de IaaS, sin embargo también existen empresas más pequeñas que ofrecen servicios similares y con mejores condiciones de servicio. Una forma de comprobarlo es analizando el caso de Posterous, un servicio de blogs popular que prefirió los servicios de Servidores de nube Rackspace EE.UU., Inc., sobre los ofrecidos por EC2 de Amazon.com Inc. Cabe mencionar que Amazon.com Inc., es uno de los mayores proveedores de IaaS mientras que Rackspace EE.UU., Inc., es una empresa que ofrece solo algunos servicios como son: Servidores de nube y Nubes de archivos. Posterous considera EC2 de Amazon, pero eligió Rackspace en su lugar. Las razones de la elección son las siguientes: 74 Persistencia Servidores de nube (Rackspace EE.UU., Inc.) Una de las diferencias más significativas entre los servidores y EC2 Cloud es la persistencia de cada servidor virtual. Esto significa que el servidor tiene la protección inherente contra fallos de la unidad y en caso de existir una falla el servidor de nube no se va. Por su parte EC2 (Amazon.com Inc.) aunque con casos transitorios o efímeros, si hay un fallo algunos datos pueden perderse. Tamaño de servidor Servidores de nube (Rackspace EE.UU., Inc.) cuenta con servidores a partir de 256 MB y va hasta 16 GB. Estos servidores de nube puede cambiar el tamaño de escala hacia arriba o hacia abajo sin ninguna reinstalación. En el caso de EC2 (Amazon.com Inc.) su servicio inicia con 1,7 GB por lo que si su carga de trabajo requiere menos recursos, está estancado pagando mucho más de lo que usted necesita. Poder de CPU Servidores de nube (Rackspace EE.UU., Inc.) han garantizado el mínimo de potencia de CPU (en relación con el tamaño de la nube de servidor), con conexión gratuita a usar cuando la capacidad adicional se encuentra disponible. Para el caso de EC2 (Amazon.com Inc.) cuenta con máximo de la CPU. Si se requiere la capacidad de la CPU adicional, es necesario poner en marcha otra instancia. Poder de cómputo Servidores de nube (Rackspace EE.UU., Inc.) Su poder es computo es dos veces más potente que CE2 de acuerdo con un estudio de un tercero. EC2 (Amazon.com Inc.) cuenta con precios que suelen ser menores, solo que si se necesita más del doble del tiempo para completar una tarea, el precio total de esa tarea aumenta proporcionalmente. Soporte 75 Servidores de nube (Rackspace EE.UU., Inc.) cuenta con apoyo en foros y recursos en línea totalmente gratuitos. EC2 (Amazon.com Inc.) también cuenta con soporte 7x24x365 sin embargo esto implica un costo de un 20% del total del servicio. Esto significa que cuando se desea contar con el soporte, conforme se utilicen más recursos, los costos se incrementaran, independientemente de si es requerido o no el soporte. Alojamiento Hibrido Servidores de nube (Rackspace EE.UU., Inc.) ofrece la posibilidad de contar con servidores de nube, así como servidores dedicados. EC2 (Amazon.com Inc.) solo ofrece los servicios de nube. Estándares abiertos Servidores de nube (Rackspace EE.UU., Inc.) colabora para desarrollar y promover estándares de interoperabilidad. De igual forma solicita comentarios y realiza pruebas intensivas con sus socios y desarrolladores de la nube. EC2 (Amazon.com Inc.) suele estar menos centrado en las normas y la apertura. 3.3.2 Caso SaaS: Google Docs (Google Inc.) y Zoho (ZOHO Corp. Inc.) Una comparación entre dos de los competidores de las llamadas suites de oficina en línea. Por un lado esta Google Inc. con su Google Docs que incluye algunas aplicaciones aun en desarrollo. Por el otro esta ZOHO Corp. una empresa hindú con una suite denominada Zoho, la cual cuenta aplicaciones similares a las de Google Docs solo que con mayores funcionalidades. Aplicaciones En el caso de Google Docs (Google Inc.) aún limitadas y con muy lento desarrollo. Sus aplicaciones son: presentaciones, editor de documentos, hojas de cálculo). Por otro lado esta Zoho (ZOHO Corp.) con mayor cantidad de aplicaciones (Procesamiento de textos, hojas de cálculo, presentaciones, cuadernos para los wikis, bases de datos en línea, gestión de proyectos) y en constante mejora. 76 Procesador de textos Google Docs (Google Inc.) cuenta solo con una página de inicio que enumera todos los archivos. Permite visualizar cambios en tiempo real. En el caso de Zoho Writer (ZOHO Corp.) tiene una interfaz con pestañas (no se requiere abandonar una página), permite el guardar y compartir plantillas. Un inconveniente es la necesidad de actualizar la página para poder visualizar los cambios realizados. Hojas de cálculo Google Spreadsheets (Google Inc.) la colaboración en línea es muy buena, logrando mostrar cambios en tiempo real. Un ejemplo de ello es mostrar una celda activa a otro usuario remoto. Zoho sheet (ZOHO Corp.) de fácil manejo aunque presenta un problema en la colaboración en línea, ya que se necesita de una constante actualización de la página. Presentaciones Google presentaciones (Google Inc.) es muy sencilla aunque permite la crear, compartir y visualizar las presentaciones en línea y en tiempo real. Zoho Show (ZOHO Corp.) permite crear aplicaciones con inserción de un texto, formas y flechas. Un problema se presenta al importar algún otro tipo de presentación, recomendándose usarlo solo como un visualizador. Bases de datos Hasta el momento Google Inc., no cuenta con una aplicación de este tipo. Zoho Creator (ZOHO Corp.) permite crear y administrar aplicaciones de base de datos, además de contar con una gran cantidad de plantillas y posibilitar la creación de formularios. 77 3.4 Empresas mexicanas desarrolladoras de aplicaciones de computación en nube Los resultados de un estudio realizado por la compañía F5 networks muestran la forma en que las grandes empresas están implementando la computación en nube. De acuerdo con los resultados de dicho estudio, los servicios en red están ganando protagonismos en las grandes compañías, con más un 80% de los encuestados en fase de pruebas para despliegue de computación en nube tanto públicos como privados. A pesar de que estudios como el realizado por F5 Networks, en México son contados los casos de empresas de sector de las tecnologías de la información que desarrollen aplicaciones de computación en nube y una de estas empresas es: “S&C Constructores de Sistemas S.A. de C.V”, que ofrece un producto denominado: “Fortimax Versión 4.0” 3.4.1 S&C Constructores de Sistemas S.A de C.V S&C Constructores de Sistemas S. A de C. V. es una empresa altamente especializada en diferentes disciplinas de la informática, las comunicaciones, la administración, la consultoría y los servicios. Historia S&C Constructores de Sistemas S. A de C. V. inició operaciones en 1980 con el ensamble de equipos de cómputo para el mercado mexicano. Pero fue hasta 2005 cuando las empresas del Grupo, aprovechando la experiencia adquirida durante más de veinticinco años de trabajo, evolucionan y se consolidan en once unidades de trabajo que unen su infraestructura de soporte, ingeniería y ventas para optimizar los servicios de postventa al cliente de todos los productos soportados y propios, el mantenimiento integral de infraestructura informática y servicios de outsourcing. Hoy atiende de forma integral los más variados proyectos de modernización operativa, de diseño, puesta en marcha y operación de grandes sistemas de información y control en el país. Por su dimensión, su experiencia, los clientes que 78 atiende y los recursos con los que cuenta, es una de las principales organizaciones en el mercado de la tecnología de la información en México. Objetivo de la empresa El objetivo de S&C Constructores de Sistemas S. A de C. V. es incrementar la eficiencia de las organizaciones mediante la modernización de los procesos y la sistematización de la información. Para lo cual aplican la tecnología en objetivos de rentabilidad, control, competitividad y seguridad. 3.4.1.1 Aplicación de computación en nube (SaaS): Fortimax Versión 4.0 El 80% de la información de una empresa reside en la información no estructurada, vital para las operaciones diarias de los departamentos más ricos de la empresa (marketing, finanzas, recursos humanos), es lo que arroja como resultado un estudio realizado en varios países por Oracle Ibérica en conjunto con IDG. Esta información no estructurada comprende correo electrónico, facturas, formularios, hojas de cálculo, imágenes, presentaciones, entre otros. Razones como estas dieron origen a la creación de computación en nube en México: Fortimax 4.0 (ver figura 3.4). Figura 3.4. Aplicación de computación en nube en México: Fortimax 4.0 (http://www...) Los creadores de “Fortimax suele ser manejada al margen de las políticas y normas corporativas de la seguridad, con deficientes o nulos procedimientos de resguardo. También aseguran que en muchas ocasiones este tipo de información expuesta riesgos de pérdida o uso indebido, no solo en los casos de robo ó extravió, si no en situaciones como los cambios de personal o fallas en los equipos que almacenan dicha información (ver figura 3.5). 79 Figura 3.5 Objetivos de Fortimax 4. (Elaboración propia) 3.4.1.2 Fortimax Versión 4.0 (SaaS): Manejo de contenido empresarial como servicio Existe la versión de Manejador de contenido empresarial como servicio y es “Fortimax 4.0 SaaS”. Dicha aplicación es instalada y administrada en la infraestructura tecnológica del cliente (ver figura 3.6). Figura 3.6 Fortimax 4.0 de SaaS (http://www...) Las características de “Fortimax 4.0 SaaS” son: Uso de la aplicación mediante un cargo mensual, acorde con el uso de los usuarios Evita el pago de licencia inicial y renovaciones anuales posteriores Permite implantar políticas y sistemas de protección, consulta y administración centralizada de la información. Funcionalidad y prestaciones Sincronizar archivos, carpetas y respaldos programados 80 La aplicación permite definir tareas programadas para que éstas se ejecuten en cualquier horario, respetando la estructura jerárquica en el equipo por respaldar. Este mecanismo de respaldos desatendidos garantiza: Al usuario, que la información valiosa esté siempre resguardada y sea accesible en todo momento y a las corporaciones, la rápida disposición de documentos importantes respaldados en los equipos de sus empleados, permitiendo implantar un primer nivel de resguardo de información corporativa dispersa en la organización. Digitalización de documentos. La aplicación soporta el estándar TWAIN para digitalizar documentos (por ejemplo, facturas, escrituras, poderes, actas constitutivas, credenciales de elector, etc.), originados en formato electrónico, así como crear y mantener colecciones de imágenes mediante un dispositivo de captura Recuperar carpetas y archivos Las carpetas y archivos pueden recuperarse en la PC del usuario como archivo comprimido. Una vez recuperado, el usuario lo puede modificar en su PC y luego respaldarlo nuevamente en la aplicación sin necesidad de modificar el nombre. Crear un disco virtual Un usuario puede crear una unidad virtual en cualquier PC. Esta funcionalidad permite que cualquier usuario tenga acceso a su trabajo día con día en donde quiera que esté a documentos, archivos, programas, estadísticas, presentaciones, música y video. La operación se limita a verlo como un disco virtual de la PC, con la estructura definida por el usuario: la vista inmediata muestra la carpeta Gavetas entre los archivos del área de trabajo Mis documentos con todas las aplicaciones a las que el usuario tiene acceso con base a los privilegios que tenga asignados. Personalización de imagen corporativa. La aplicación permite integrar la imagen corporativa de la organización para que los empleados se sientan identificados. 81 3.4.1.3 Fortimax Versión 4.0: Personal Esta aplicación es la versión reducida de FORTIMAX 4.0 que permite a profesionistas y pequeñas organizaciones contratar el servicio personal de resguardo de información con un cargo mensual a su tarjeta de crédito. FORTIMAX 4.0 PERSONAL resguarda de manera sencilla y segura, documentos digitalizados con cualquier escáner TWAIN. Esta aplicación brinda servicios similares a los de un disco virtual disponible inclusive de manera gratuita en internet. Sin embargo esta versión personal de la aplicación incrementa la disponibilidad de su información en un (99.99%) encontrándose en el centro de datos de Xertix. La aplicación encripta la información, lo que incrementa de manera radical el nivel de su seguridad. Existe una versión de gratuita con una duración de 2 meses de almacenamiento (ver tablas 3.8, 3.9 y 3.10). Figura 3.8 Página de inicio de Fortimax 4.0, (http://www...) Figura 3.9 Datos de creación de cuenta gratuita (prueba de 2 meses) (http://www...) 82 Figura 3.10 Funcionalidades de Fortimax 4.0 (http://www...) 3.4.2 SaaS México (www.saasmexico.com) CEIS Avance Centro de Excelencia en Ingeniería de Software es un modelo de fábrica de software que proporciona servicios de maquila de software en las diferentes tecnologías de la información y la asignación de recursos entrenados según el perfil de deseado del cliente. CEIS Avance es la empresa que auspicia SaaS México. SaaS México surge de la necesidad de proporcionar a las empresas mexicanas, sistemas confiables, robustos, seguros y flexibles sin la necesidad de invertir tiempo, recursos humanos y económicos para el desarrollo y soporte de estos sistemas. SaaS México ofrece la posibilidad a pequeños y medianos empresarios de tener acceso a herramientas más eficaces para la administración de procesos como. Gestión de las relaciones con los clientes (CRM), Planeación de recursos empresariales (EPR), Project y Office manager. Y todo sin la necesidad de software adicional a un navegador de internet. SaaS México ofrece: SaaS ERP (Enterprise Resource Planning ) SaaS CRM (Customer Relationship Management) SaaS OFICCE Tool SaaS PROJECT Tool SaaS México ofrece las siguientes ventajas: 83 Software mucho más económico que el tradicional ya que no requiere de servidores, ni personal de asistencia. Acceso a un número ilimitado de usuarios pagando solo por su uso y no por el número de licencias. Es una herramienta muy sencilla y fácil de usar, intuitiva y autoexplicativa, no es necesario tener información personalizada ya que se tiene acceso a documentación de ayuda además de videos explicativos. Es rápida e inmediata su implementación ya que en el momento en que el cliente contrata este servicio accede a su login y password para poder trabajar en ese mismo momento, sin necesidad de instalar nada. Existe una independencia del sistema operativo y hardware Permite movilidad ya que es posible realizar presentaciones a cualquier interesado sin la necesidad de reuniones físicas. Se tiene acceso a nuevas aplicaciones funcionales, además de actualizaciones permanentes. Es soporte está garantizado ya que ofrece un máximo nivel de servicio y soporte que en una implantación tradicional. 3.4.2.1 Aplicación de computación en nube: SaaS OFFICE Tool SaaS OFFICE Tool se define como un sistema de administración de documentos virtuales. Funciones: SaaS OFICCE Tool es un repositorio único de todos los documentos de una oficina o ciertos departamentos, búsquedas y manejo de versiones de documentos e historial de documentos. Necesidades que atiende: Administrar contenidos, implementar procesos empresariales, y proveer acceso a información esencial para las metas y procesos de la organización (ver figura 3.11). 84 Figura 3.11 Pantalla de inicio de SaaS OFFICE Tool (Elaboración propia) Son diversas las empresas que brindan servicios de computación en nube en la actualidad. Si bien es cierto que las grandes corporaciones cuentan con una gama más amplia de servicios de nube, ello no implica que dichos servicios sean mejores en comparación con los ofrecidos por empresas pequeñas como se vio en los casos de la IaaS y SaaS. En México las empresas que proporcionan servicios de computación en nube aún son escasas y los servicios existentes tienen como finalidad el manejo de información no estructurada. 85 Capítulo IV. Casos reales 4.1 Microsoft System Center Los cubos de procesamiento analítico en línea (OLAP) son una función de System Center 2012 – Service Manager que utiliza la infraestructura existente del almacenamiento de datos para proporcionar al usuario final capacidades de inteligencia empresarial con características de autoservicio. Un cubo OLAP es una estructura de datos que supera las limitaciones de las bases de datos relacionales y proporciona un análisis rápido de datos. Los cubos pueden mostrar y sumar grandes cantidades de datos, a la vez que proporcionan a los usuarios acceso mediante búsqueda a los puntos de datos. De este modo, los datos se pueden resumir o reorganizar según sea necesario, para procesar la variedad más amplia de preguntas pertinentes al área de interés de un usuario. Los proveedores de software o los desarrolladores de tecnologías de la información (TI) con conocimientos prácticos de los cubos OLAP pueden crear módulos de administración para definir sus propios cubos OLAP extensibles y personalizables, que se integran en la infraestructura del almacenamiento de datos proporcionada en Service Manager 2010. Estos cubos se almacenan en SQL Server Analysis Services (SSAS). Las herramientas de inteligencia empresarial con características de autoservicio, como Excel y SQL Server Reporting Services (SSRS), pueden acceder a estos cubos en SSAS y se pueden utilizar para analizar los datos desde múltiples perspectivas. Las bases de datos que una empresa utiliza para almacenar sus transacciones y registros se denominan bases de datos de procesamiento de transacciones en línea (OLTP). Normalmente, estas bases de datos tienen registros que se introducen uno a uno y que contienen una gran cantidad de información, que los estrategas pueden utilizar para tomar decisiones fundamentadas sobre sus negocios. Sin embargo, las bases de datos que se utilizan para almacenar los datos no se diseñaron para el análisis. Por lo tanto, obtener respuestas de estas bases de datos requiere tiempo y esfuerzo. Las bases de datos OLAP son bases de datos especializadas, 87 diseñadas para ayudar a extraer esta información de inteligencia empresarial de los datos. En Service Manager 2010, el almacenamiento de datos proporcionaba bases de datos OLAP que incluían datos en esquemas simplificados y optimizados para la lectura, listos para el consumo. La topología del sistema se muestra en la siguiente ilustración. Sin embargo, un inconveniente de este sistema es que las bases de datos OLAP contenían esencialmente el mismo tipo exacto de información que se encontraba en las bases de datos OLTP. No había agregaciones precalculadas de datos para responder a consultas cada vez más complejas y variadas. Los cubos OLAP se pueden considerar como la última pieza del rompecabezas para una solución de almacenamiento de datos. Un cubo OLAP, también conocido como cubo multidimensional o hipercubo, es una estructura de datos en SQL Server Analysis Services (SSAS) que se genera mediante bases de datos OLAP para permitir el análisis casi instantáneo de datos. La topología de este sistema se muestra en la siguiente ilustración. La característica útil de un cubo OLAP es que los datos del cubo pueden estar contenidos en un formulario agregado. Para el usuario, el cubo parece tener las respuestas de antemano debido a la variedad de valores que ya están precalculados. Sin tener que consultar la base de datos OLAP de origen, el cubo puede devolver respuestas para una amplia gama de preguntas casi al instante. El objetivo principal de los cubos OLAP de System Center 2012 – Service Manager es ofrecer a los proveedores de software o a los desarrolladores de tecnologías de la información (TI) la capacidad para realizar análisis de datos casi instantáneos para fines de análisis de históricos y tendencias. System Center 2012 – Service Manager lo realiza de la siguiente forma: • Permite definir cubos OLAP en módulos de administración que se crearán automáticamente en SSAS cuando se implemente el módulo de administración. 88 • Se ocupa automáticamente del mantenimiento del cubo, sin intervención del usuario, y realiza tareas tales como el procesamiento, la creación de particiones, las traducciones y la localización, así como los cambios del esquema. • Permite a los usuarios utilizar herramientas de inteligencia empresarial con características de autoservicio, tales como Excel, para analizar los datos desde varias perspectivas. • Guarda informes generados de Excel para futuras referencias. 4.1.1 Acerca de la implementación de cubos La implementación de cubos de procesamiento analítico en línea (OLAP) utiliza la infraestructura de implementación de Service Manager para crear cubos OLAP en la base de datos de SQL Server Analysis Services (SSAS). En resumen, un elemento que se puede implementar devuelve un implementador con una colección de recursos que se serializan y que se utilizan para crear el cubo OLAP en la base de datos de SSAS. Para los cubos OLAP, el nombre del objeto que se puede implementar es CubeDeployable, para el elemento SystemCenterCube, y CubeExtensionDeployable, para el elemento CubeExtension. El implementador de ambos elementos es CubeDeployer. La tabla dbo.Selector, en la base de datos DWStagingAndConfig, contiene una entrada para los elementos SystemCenterCube y CubeExtension del módulo de administración. El motor de implementación utiliza este metadato si es necesario realizar un procesamiento adicional para un elemento del módulo de administración al importar dicho módulo al almacenamiento de datos mediante el trabajo MPSync. Las implementaciones utilizan la interfaz de programación de aplicaciones (API) de Analysis Management Objects (AMO) para crear y modificar todos los componentes del cubo en la base de datos de SSAS. En concreto, se utiliza AMO en modo desconectado, ya que el elemento CubeDeployable no tiene una 89 conexión a la base de datos de SSAS. Trabajar con AMO en modo desconectado posibilita la creación del árbol completo de objetos AMO sin establecer una conexión con el servidor. Posteriormente, Service Manager serializa la jerarquía de objetos como recursos de secuencia y los adjunta al objeto del implementador, que se vuelve a pasar a la infraestructura de implementación. A continuación, el objeto del implementador se deserializa, establece una conexión con la base de datos de SSAD y crea los objetos mediante el envío de las solicitudes correspondientes al servidor. Sólo los objetos principales se pueden serializar. En AMO, los principales objetos se consideran clases que representan un objeto completo como una entidad completa y no como parte de otro objeto. Por ejemplo, entre los objetos principales se incluyen Servidor, Cubo y Dimensión, que son entidades independientes. Sin embargo, DimensionAttribute no es un objeto principal, porque sólo se puede crear como parte de un objeto principal primario de Dimensión. Por lo tanto, DimensionAttribute es un objeto secundario. El diseño del cubo OLAP se centra en la creación de todos los objetos principales que son necesarios para los cubos, junto con los objetos dependientes de menor importancia. Estos objetos principales son los objetos que se van a serializar (y, finalmente, deserializar) antes de crearlos en la base de datos de SSAS. Los recursos que ajustan los objetos principales se deben crear en un orden específico para que la implementación se realice correctamente y satisfaga los requisitos de dependencia de los elementos del cubo OLAP. Las dos listas siguientes ilustran la secuencia de implementación de los elementos SystemCenterCube y CubeExtension, respectivamente: 1. Elementos DataSourceView 2. elementos de dimensión 3. elemento de dimensión de fecha 4. elemento de cubo 90 1. Elementos DataSourceView 2. elemento de cubo 4.2 Grupo Salinas Creado por el empresario Ricardo B. Salinas, Grupo Salinas opera como un foro para el desarrollo de habilidades empresariales y para la toma de decisiones que enfrentan los altos ejecutivos que dirigen las empresas que lo conforman: Azteca, Azteca America, Grupo Elektra, Banco Azteca, Afore Azteca, Seguros Azteca, Grupo Iusacell, Azteca Internet e Italika. Grupo Salinas es un conjunto de empresas dinámicas, de rápido crecimiento y a la vanguardia tecnológica, con enfoque en la creación de valor y en el mejoramiento de la sociedad a través de un sólido compromiso con la excelencia. Al llevar la tecnología a todos los niveles de la sociedad, Grupo Salinas fomenta el desarrollo de los países en los que opera. 4.3 Gestiweb Gestiweb es una empresa fundada en 2002, con vocación de integrar diferentes tipos de soluciones informáticas (software libre) y orientado hacia el acceso universal de la Red, esto es, necesidades empresariales en el área de Tecnologías de la Información y Comunicación (TIC’s). Gestiweb cuenta con un grupo de profesionales experimentados en investigación y desarrollo de software aplicados a servicios de gestión empresarial, mediante tecnologías de última generación. Dispone de una participación muy activa en el desarrollo de soluciones sobre sistemas de software libre, destinado a la optimización de los procesos de negocio y la mejora de resultados administrativos y comerciales de las empresas. 91 Gestiweb es uno de los promotores y a la vez, lidera el desarrollo del ERP de Software libre, denominado Eneboo. Actualmente, ya cuenta con un elevado número de implantaciones con éxito en diferentes empresas y pertenecientes a diferentes sectores. Desarrollamos aplicaciones informáticas utilizando las últimas tecnologías de programación sobre ERP's y diseño de e-commerce y e-business, siempre basándonos en software libre. Ofrecemos el diseño de páginas web, diseño intranets, páginas web de comercio electrónico y consultoría internet para Estrategias en la Red. Desde el Diseño de Páginas Web estáticas (html y flash) hasta el desarrollo de websites dinámicas con administración de bases de datos. Gestiweb Integración de Soluciones Web, S.L. dispone de una participación muy activa en el desarrollo de soluciones sobre sistemas de código abierto, destinado a la optimización de los procesos de negocio y la mejora de resultados administrativos y comerciales de las empresas. Disponemos de una gran experiencia en el desarrollo de proyectos para la promoción, gestión y comercio electrónico de diferentes tipos de productos y sectores. gestiweb cuenta con un equipo de más de 10 personas entre Ingenieros, Consultores, Programadores y Diseñadores especializados en las diferentes áreas de trabajo de los diferentes proyectos. 4.3.1 Cubos OLAP para diferentes ERPs con Saiku Los cubos OLAP son una importante herramienta de análisis en la empresa y forma parte del Bussiness Intelligence (BI). Éstas permiten de forma interactiva analizar datos contrastando periodos de tiempo, zonas geográficas, colores, medidas y muchos otros aspectos y propiedades de las ventas, compras, stocks, etc. 92 Gestiweb implanta "Saiku", una herramienta de software libre que realiza justamente esta función, sin necesidad de instalar PentaHo al completo. Podemos configurar esta aplicación para que trabaje con múltiples bases de datos, tanto si son del ERP Eneboo o de cualquier otro ERP, y al trabajar en Java puede conectarse a bases de datos de prácticamente cualquier tipo (SQL Server, Oracle, PostgreSQL, MySQL, entre muchas otras). Saiku no incorpora base de datos propia, realiza las consultas en tiempo real y cachea en memoria los resultados, consiguiendo fluidez en la navegación y los datos actualizados de las últimas horas. Además está preparado para buscar y filtrar datos en tablas de millones de registros. 4.4 Eneboo Cubos OLAP con Eneboo ERP Una solución que permite convertir los datos de su gestión administrativa en información importante para la previsión, planificación y toma de decisiones empresariales. Este tipo de sistemas permite a la dirección general, así como, a los diferentes directivos de cada una de las áreas poder interpretar la información a partir de relaciones y combinaciones de los datos, mediante tablas y gráficos muy visuales y gracias a una serie de herramientas de filtrados y selección extraordinariamente sencillas de utilizar por cualquier nivel de usuario informático. Los cubos OLAP son una importante herramienta de análisis en la empresa y forma parte del Bussiness Intelligence (BI). Éstas permiten de forma interactiva analizar datos contrastando periodos de tiempo, zonas geográficas, colores, medidas y muchos otros aspectos y propiedades de las ventas, compras, stocks, etc. Eneboo ERP, a través de su Partner Gestiweb, ha configurado en Eneboo ERP una herramienta de software libre que realiza justamente esta función, mediante el 93 sistema "Saiku" y sin necesidad de instalar PentaHo al completo. Podemos configurar esta aplicación para que trabaje con múltiples bases de datos, tanto si son del ERP Eneboo o de cualquier otro ERP, y al trabajar en Java puede conectarse a bases de datos de prácticamente cualquier tipo (SQL Server, Oracle, PostgreSQL, MySQL, entre muchas otras). Saiku no incorpora base de datos propia, realiza las consultas en tiempo real y cachea en memoria los resultados, consiguiendo fluidez en la navegación y los datos actualizados de las últimas horas. Además está preparado buscar y filtrar datos en tablas de millones de registros. 94 CONCLUSIONES La computación en nube no es un una creación, si no, es el resultado de la combinación de diversas tecnologías y la evolución de algunos otros modelos de computación. Su definición es aún un tema de discusión, sin embargo en cualquiera de ellas se encontraran elementos comunes como son el internet, la virtualización, los servicios, el pago por lo que el usuario utiliza. Los vertiginosos avances en las tecnologías de la información sobre todo en las últimas décadas del siglo XXI, así como los cambios que ha sufrido la lógica de la informática han sido fundamentales en la evolución este emergente modelo de computación. La computación en nube debe de cumplir con una serie de atributos mínimos, para poder ser considerada como tal. Atributos tales como ser multiusuario, portable, elástica, escalable, interoperable y medible, y son estos los que la diferencian de los modelos tradicionales de computación. Cuando se habla de computación en nube se habla de prestación de servicios. Actualmente ya es posible hablar de una definición de cada uno de los modelos de prestación de servicio ya sea como software (SaaS), plataforma (PaaS) ó infraestructura (IaaS). El modelo de SaaS es el que cuenta con mayor madurez, a diferencia del naciente modelo de PaaS o el modelo IaaS que ha logrado cierto grado de evolución. El modelo más implementado es el SaaS ya que en comparación con el modelo tradicional de software presenta más ventajas que desventajas. En el caso de los modelos de implementación de nubes, es importante reconocer que al igual que los modelos de servicios, cuentan ya con conceptos y estructuras definidas. Por ejemplo una empresa podría optar por una nube privada que integre todos sus departamentos o también por una nube pero en la cual podrían estar incluidas algunas otras organizaciones con intereses comunes. En el caso de la 96 población en general podría optar la nube pública ya que podría ofrecerle aplicaciones similares a las que ofrece el modelo tradicional de adquisición de software. En la computación en nube existen consumidores, desarrolladores y proveedores de los servicios, cada uno tiene roles perfectamente definidos. De igual forma existen ventajas y desventajas para cada uno de ellos, situación que brinda la posibilidad de valorar la implementación de este modelo de computación. Como es de suponerse los consumidores siempre serán más que los desarrolladores o que los proveedores. Los sistemas OLAP son bases de datos orientadas al procesamiento analítico. Este análisis suele implicar, generalmente, la lectura de grandes cantidades de datos para llegar a extraer algún tipo de información útil: tendencias de ventas, patrones de comportamiento de los consumidores, elaboración de informes complejos… etc. Este sistema es típico de los datamarts. El acceso a los datos suele ser de sólo lectura. La acción más común es la consulta, con muy pocas inserciones, actualizaciones o eliminaciones. Los datos se estructuran según las áreas de negocio, y los formatos de los datos están integrados de manera uniforme en toda la organización. El historial de datos es a largo plazo, normalmente de dos a cinco años. Las bases de datos OLAP se suelen alimentar de información procedente de los sistemas operacionales existentes, mediante un proceso de extracción, transformación y carga (ETL). Un cubo OLAP es una estructura de datos que supera las limitaciones de las bases de datos relacionales y proporciona un análisis rápido de datos. Los cubos pueden mostrar y sumar grandes cantidades de datos, a la vez que proporcionan a los usuarios acceso mediante búsqueda a los puntos de datos. De este modo, los datos se pueden resumir o reorganizar según sea necesario, para procesar la variedad más amplia de preguntas pertinentes al área de interés de un usuario. 97 Implementar un sistema de business intelligence significa encontrar el punto de equilibrio entre dos extremos: implementación independiente de las unidades de la organización y la arquitectura de almacenamiento de datos definida por los IT departamentales. Por un lado los IT departamentales deben aceptar que el hecho de que ellos no puedan suministrar las visiones del usuario final con la premura requerida sin incorporar tecnología OLAP. Por otro lado los directivos deben aprender a reconocer el valor de tener un ‘repositorio común’ del que leer todos los indicadores y toda la terminología que cruza todos los datos de todos los departamentos. Únicamente un DataWarehouse puede proveer esta consistencia. La principal características de los sistemas OLAP es que son entornos especialmente diseñados para la ejecución de análisis multidimensionales de los datos corporativos, que soportan amigablemente los análisis de cualquier usuario así como las posibilidades de navegación, seleccionando la información a obtener, permitiendo el análisis de datos segmentados y que permiten ir reduciendo el conjunto de datos reportados. Este tipo de selecciones se refleja en la visualización de la estructura multidimensional, mediante unos campos de selección que nos permitan elegir el nivel de agregación (jerarquía) de la dimensión, y/o la elección de un dato en concreto, pudiendo con ello realizar, entre otras, las acciones de rotar, bajar atributos, navegar, expandir o colapsar los datos mostrados. La arquitectura de sistemas MOLAP se fundamenta, para proporcionar el análisis, en bases de datos multidimensionales. Su principal premisa es que se trata del entorno OLAP mejor implantado y adaptado para el almacenamiento y gestión de datos multidimensionalmente. Por el contrario, la arquitectura y gestión de entornos ROLAP presupone que las capacidades OLAP están perfectamente implantadas y reflejadas sobre bases de datos relacionales. La naturaleza competitiva y dinámica del entorno empresarial de hoy está impulsando la demanda de sistemas de información por parte de gerentes y analistas empresariales, que puedan proporcionar respuestas rápidas a consultas empresariales complejas. La industria de respondió a estas demandas con desarrollos como las bases de datos analíticas, las plazas de datos, las bodegas de 98 datos, las técnicas de explotación de datos, las estructuras de bases de datos multidimensionales y con servidores especializados y productos de software que respaldan el procesamiento analítico en línea (OLAP). Se pueden considerar los sistemas OLAP como pertenecientes a los sistemas de información para ejecutivos, son utilizados para proporcionar al nivel estratégico información útil para la toma de decisiones. Es un método para buscar en los datos de diferentes maneras. Con OLAP los datos son clasificados en diferentes dimensiones las que pueden ser vistas unas con otras en cualquier combinación para obtener diferentes análisis de los datos que contienen. En un modelo de datos OLAP, la información es vista como cubos, los cuales consisten de categorías descriptivas (dimensiones) y valores cuantitativos (medidas). El modelo de datos multidimensional simplifica a los usuarios formular consultas complejas, arreglar datos en un reporte, cambiar de datos resumidos a datos detallados y filtrar o rebanar los datos en subconjuntos significativos. Si bien han sido las grandes corporaciones quienes han apostado por el desarrollo del modelo, y además son estas mismas quienes ofrecen mayor cantidad de servicios, ello no implica que sus servicios de computación en nube sean los mejores. Dentro del modelo de IaaS se pudo comprobar que existen casos de empresas pequeñas con servicios mucho mejores que los ofrecidos por las grandes corporaciones. Por el lado de los servicios de SaaS sucede algo similar como se demostró en el caso de las suites de aplicaciones de oficina de dos empresas (Google Inc. y ZOHO Corp. Inc.). En nuestro país la implementación de la computación es casi nula, hablando del sector empresarial. Existen empresas desarrolladoras de SaaS, pero sus servicios están dirigidos a sectores muy específicos. Las aplicaciones desarrolladas por dichas empresas, se enfocan en el manejo de información no estructurada y ofrecen productos para la administración de contenido empresarial. Tal situación demuestra que tanto los proveedores como los consumidores reconocen que es posible migrar 99 determinadas áreas de una empresa, debido a que los peligros derivados de la computación en nube si bien afectarían su funcionamiento, los daños no serían totales, además los beneficios compensarían los perjuicios. 100 FUENTES DE INFORMACIÓN Amaya, A., & González, A. (2010). CEIS Avance Centro de Excelencia en Ingenieria de Software. Recuperado el 02 Junio de 2014, de http://ceisavance.com/acerca.html Amrhein, D. (2009). Cloud Computing Use Cases (Version 2.0) White Paper. Recuperado el 10 Julio de 2014, de http://opencloudmanifesto.org/Cloud_Computing_Use_Cases_Whitepaper- 2_0.pdf Bennett, S., & Bhuller, M., & Covington, R. (2009). Architectural Strategies for Cloud Computing Oracle White Paper. Recuperado el 25 de Julio de 2014, de: http://www.oracle.com/technology/architect/entarch/pdf/ architectural_strategies_for_cloud_computing.pdf Chou, T. (2008). ¿El software como servicio (SaaS) es para usted? Recuperado el 05 de Julio de 2014, de http://mx.sun.com/emrkt/innercircle/newsletter/1008/feature-bus.html Foster, I., & Kesselman, K., & Tuecke, S. (2001). The Anatomy of the Grid:Enabling Scalable Virtual Organizations. Recuperado el 10 de Julio de 2014, de http://www.globus.org/alliance/publications/papers/anatomy.pdf Fortimax Versión 4.0 Manejador Universal de contenido empresarial. Recuperado el 8 de Enero de 2010 de http://www.fortimax.com/descripcion/descripcion.html. Fortimax Versión 4.0 Personal. Recuperado el 9 de Julio de 2014 de http://www.fortimax.com/personal.html 101 Mather, T., & Kumaraswamy, S., & Latif, S. (2009). Cloud Security and Privacy (1st Ed.). United States of America: O’Reilly Media, Inc. Miller, M. (2008). Cloud Computing: Web-Based Applications That Change the Way You Work and Collaborate Online (1st Ed.). Indiana: Que Publishing Moran, A., & Hegerman, H. (2009). F5 Study Shows Cloud Computing Gaining Critical Mass Among Large Enterprises. Recuperado el 17 de Julio de 2014, de http://www.f5.com/news-press-events/press/2009/20090824a.html SaaS OFFICE Tool. Recuperado el 5 de Julio de 2014 de http://www.saasmexico.com/oficce.html Silva, V. (2005). Grid computing for developers (1st Ed.). Massachusetts: Charles River Media, Inc. Worrall, B. (2009). El modelo cloud: más allá de los rumores. Recuperado el 15 de Julio del 2014, de http://mx.sun.com/emrkt/innercircle/newsletter/0109/ sponsor.html Agarwal, S. (2010). Posterous considered Amazon's EC2, but chose Rackspace instead. Here's why. Recuperado el 25 de Julio de 2014, de http://www.rackspacecloud.com/cloud_hosting_products/servers/compare 102 Google Docs: Documentos online con colaboración en tiempo real. Recuperado el 29 de Julio de 2014, de http://www.google.com/apps/intl/esmx/business/docs.html ZOHO Work.Online. Recuperado el 30 de Julio de 2014, de http://www.zoho.com/ Microsoft System Center http://technet.microsoft.com/es-es/library/hh916543.aspx (Consultada el 03/08/14) Gestiweb http://www.gestiweb.com/?q=content/cubos-olap-para-diferentes-erpscon-saiku (Consultada el 04/08/14) Bumeran http://www.bumeran.com.mx/empleos/desarrollador-cubos-olap-gruposalinas-1000078739.html (Consultada el 04/08/14) Eneboo http://www.eneboo.com/id-752-cubos-olap-con-eneboo-erp-.html (Consultada el 20/08/14) 103 ÍNDICE DE FIGURAS Figura 2 Los principales avances tecnológicos y sus desarrolladores………. 30 Figura 2.1 Evolución de los proveedores de servicios de internet…………… 33 Figura 2.2 Las tecnologías en la computación en nube……………………….. 36 Figura 2.3 Servicios de computación en nube, ejemplos y sus desarrolladores……………………………………………………………………... 41 Figura 2.4 Ventajas del modelo SaaS…………………………………………… 43 Figura 2.5 Elementos mínimos de una solución PaaS………………………… 45 Figura 2.6 Modelos de implementación de nubes según el NIST……………. 48 Figura 2.7 Elementos del consumidor de servicios…………………………….. 51 Figura 2.8 Diagrama de capas del proveedor de servicio…………………….. 53 Figura 2.9 Ventajas de la computación en nube……………………………….. 60 Figura 2.10 Desventajas de la computación en nube………………………….. 60 Figura 3.1 Aplicaciones de computación en nube para la familia…………….. 69 Figura 3.2 Aplicaciones de computación en nube para la comunidad……….. 71 Figura 3.3 Aplicaciones de computación en nube para las empresas……….. 73 Figura 3.4. Aplicación de computación en nube en México: Fortimax 4.0…... 80 Figura 3.5 Objetivos de Fortimax 4………………………………………………. 81 Figura 3.6 Fortimax 4.0 de SaaS………………………………………………… 81 Figura 3.8 Página de inicio de Fortimax 4.0…………………………………….. 83 Figura 3.9 Datos de creación de cuenta gratuita……………………………….. 83 Figura 3.10 Funcionalidades de Fortimax 4.0…………………………………... 84 Figura 3.11 Pantalla de inicio de SaaS OFFICE Tool…………………………. 86 104