DISEÑO DE SISTEMAS ORIENTADOS A CLOUD COMPUTING - 2011 CONSTRUCCIÓN DE SISTEMAS II

Página creada Ulea Pariente
 
SEGUIR LEYENDO
DISEÑO DE SISTEMAS ORIENTADOS A CLOUD COMPUTING - 2011 CONSTRUCCIÓN DE SISTEMAS II
DISEÑO DE SISTEMAS
           ORIENTADOS A
       CLOUD COMPUTING

             ING. VIVIANA LEDESMA

              ING. ANALÍA MARÍN

DEPARTAMENTO DE INGENIERÍA E INVESTIGACIONES
              TECNOLÓGICAS

       CONSTRUCCIÓN DE SISTEMAS II
                    2011
DISEÑO DE SISTEMAS ORIENTADOS A CLOUD COMPUTING - 2011 CONSTRUCCIÓN DE SISTEMAS II
Diseño de Sistemas Orientados a Cloud Computing - 2011

CONTENIDO                                                                                                                                  PÁG.

1.     ¿QUÉ ES “CLOUD COMPUTING”? .................................................................................................. 3
     1.1      SERVICIOS OFRECIDOS DESDE CLOUD COMPUTING .............................................................. 4
     1.2      TIPOS DE NUBE ..................................................................................................................... 6
     1.3      VENTAJAS Y DESVENTAJAS DE CLOUD COMPUTING .............................................................. 7
2.     SOFTWARE COMO SERVICIO ......................................................................................................... 8
     2.1      CARACTERÍSTICAS DE LAS APLICACIONES SAAS ................................................................... 9
     2.2      SAAS Y LA INGENIERÍA DE SOFTWARE ................................................................................ 10
     2.3      IMPACTO EN EL PROCESO DE DESARROLLO DE SOFTWARE .................................................. 11
3.     DISEÑO ORIENTADO AL SOFTWARE COMO SERVICIO ................................................................ 13
     3.1      INVESTIGACIÓN Y EVALUACIÓN DE TECNOLOGÍAS .............................................................. 13
     3.2      DISEÑO DE ARQUITECTURA ................................................................................................ 13
     3.3      DISEÑO DE DATOS ............................................................................................................... 15
     3.4      INGENIERÍA DE PROCESOS DE NEGOCIO .............................................................................. 19
     3.5      DISEÑO DE PRUEBAS ........................................................................................................... 19
4.     SOA EN LA NUBE ........................................................................................................................ 20
     4.1      POR QUÉ PENSAR EN SOA .................................................................................................. 21
     4.2      ARQUITECTURA ORIENTADA A SERVICIOS .......................................................................... 22
     4.3      ENTRERPRISE SERVICE BUS (ESB) ..................................................................................... 23
     4.4      LA INFRAESTRUCTURA TECNOLÓGICA DE UNA SOA............................................................ 25
     4.5      SOA VS CLOUD COMPUTING .............................................................................................. 26
REFERENCIAS ..................................................................................................................................... 27

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                                                                          Página 2
DISEÑO DE SISTEMAS ORIENTADOS A CLOUD COMPUTING - 2011 CONSTRUCCIÓN DE SISTEMAS II
Diseño de Sistemas Orientados a Cloud Computing - 2011

1. ¿QUÉ ES “CLOUD COMPUTING”?

Cloud Computing es un paradigma de computación emergente donde los datos y servicios
residen en centros de datos muy escalables que pueden ser accedidos desde cualquier
dispositivo conectado a Internet.

Cloud Computing se está convirtiendo en una plataforma escalable de prestación de servicios
en el ámbito de los Servicios de Informática. Se trata de recursos IT compartidos en demanda,
creados y eliminados eficientemente y de modo escalable facturados en base a su uso.

Los fundamentos técnicos de Cloud Computing incluyen arquitectura orientada a servicios y
virtualizaciones de hardware y software. El objetivo es compartir los recursos entre los
consumidores, socios y proveedores de servicios cloud.

Existe una gran diferencia entre la computación tradicional y cloud computing ya que se trata
de dos modelos de manejo de la información empresarial muy distintas.

Computación Tradicional                                       Cloud Computing

Se requiere la compra e instalación de activos,               Se   compra     servicios    tanto    relacionados     a
como       equipos,    servidores,          sistemas   etc.   infraestructura como a software.
necesitando         tanto    un    espacio físico,     una
instalación adecuada y trabajo de administración
de los mismos.
Compra de software especializado con políticas de             Pago por uso.
licencias por equipo.
Acceso a través de la red corporativa interna.                Se accede a través de cualquier dispositivo que
                                                              tenga acceso a internet.
Para un único         tenant1, estática, en general no        Escalabilidad, elasticidad, dinámica, multi-tenant.
compartido.

1
    Comúnmente se usa el término tenant para referirse tanto a los clientes como proveedores que usan la plataforma para

consumir o proveer las aplicaciones como1 servicio.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                                                Página 3
DISEÑO DE SISTEMAS ORIENTADOS A CLOUD COMPUTING - 2011 CONSTRUCCIÓN DE SISTEMAS II
Diseño de Sistemas Orientados a Cloud Computing - 2011

        1.1       SERVICIOS OFRECIDOS DESDE CLOUD COMPUTING

A continuación, se          intenta explicar gráficamente, de una manera gráfica y sencilla los
distintos niveles de servicio que se ofrecen desde “Cloud Computing”.

              Ilustración 1
                                                                                   Servicios para Usuarios
               Servicios basados en la web          Software as a Service
                                                                                   Finales

                             Componentes App as a Service

                                  Plataforma as a Service                          Servicios dirigidos a
                                                                                   organizaciones de IT

                               Infraestructura as a Service

                                                                                   Servicios tradicionales de Data
                            Infraestructura física as a Service                    Center

                                  Figura 1. Niveles de Servicios ofrecidos por la nube

Para los niveles inferiores se han estandarizado tecnologías Web y protocolos para el acceso y
uso de la nube, mientras que en los niveles superiores, se añade mayor grado de abstracción,
cada proveedor realiza aplicaciones más específicas.

Tal como muestra la Figura 1 la oferta para usuarios finales está dividida en dos segmentos, a
nivel técnico, ambos segmentos son muy similares, ya que ambos tipos de servicio se
desarrollan y entregan de la misma forma. Sin embargo, lo que difiere es el modelo de negocio
y por eso se los clasifica como dos mercados diferentes:

        • Servicios basados en la Web. Este segmento está dirigido especialmente a los
        individuos, se trata de servicios en la nube como las redes sociales (por ejemplo,
        Facebook o LinkedIn) y software colaborativo (como los de video conferencias,
        administración de documentos, seminarios web, etc.). Estos servicios están cambiando
        la forma en que las personas tanto en forma individual como también dentro de las
        empresas, acceden, entregan y entienden la información.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                                                      Página 4
Diseño de Sistemas Orientados a Cloud Computing - 2011

        • Software as a Service (SaaS). Es un modelo de distribución de software dirigido
        a usuarios empresariales. Su modelo de negocio está basado en un esquema de renta o
        pago por uso, donde una empresa provee el mantenimiento, soporte y operación que
        usará el cliente durante el tiempo que haya contratado el servicio. El cliente usará el
        sistema alojado por esa empresa, la cual mantendrá la información del cliente en sus
        sistemas y proveerá los recursos necesarios para explotar esa información.

        Todos estos productos tienen en común la característica de estar diseñados para
        procesos de negocio específicos que los clientes pueden modificar. Entre este tipo de
        servicios encontramos productos para la gestión: de clientes, de proveedores, de
        recursos humanos, financiera, por nombrar solo los más comunes. (Ejemplos:
        Salesforce, Basecamp).

Por otra parte, la oferta de Cloud Computing para organizaciones de IT está dirigida a atender
las necesidades de las personas y organizaciones que desean desarrollar y entregar sus propias
aplicaciones bajo un esquema de computación en la nube. Es así que podemos distinguir los
siguientes tres segmentos de mercado dirigidos a organizaciones de IT:

        • Componentes aplicativos como servicio. Componentes accesibles como
        servicio web que los desarrolladores utilizan para ensamblar o complementar sus
        propias aplicaciones web. Existen distintos tipos de aplicaciones, por ejemplo,
        aplicaciones de Redes Sociales, servicios de copia de seguridad, servicios de mapeo
        tales como Google Maps y Yahoo! Maps. Un ejemplo dirigido al segmento empresarial
        es el de Avalara, que provee componentes para el cálculo de impuestos que los
        desarrolladores pueden integrar dentro de sus aplicaciones web empresariales.

        • Plataforma como servicio (PaaS). No todas las aplicaciones en la nube podrán
        ser ensambladas como “mashups” a partir de componentes existentes. En muchos
        casos se requiere desarrollar y, como toda aplicación, se necesita un entorno sobre el
        cual ejecutarse. PaaS es el resultado de la aplicación al desarrollo de Software del
        modelo SaaS. El modelo PaaS abarca el ciclo completo para desarrollar e implantar
        aplicaciones desde Internet, incluye todas las facilidades para analizar, desarrollar,
        testear, documentar y poner en marcha aplicaciones todo en un sólo proceso, además,
        da servicio de integración de bases de datos, seguridad, escalabilidad, almacenaje,
        copias de seguridad, control de versiones y facilidad para colaborar en la comunidad.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                         Página 5
Diseño de Sistemas Orientados a Cloud Computing - 2011

        Como ejemplo de plataformas que integran todo el ciclo de vida se pueden mencionar
        Google App Engine y Microsoft Azufre.

        Si bien las características anteriores suelen ser comunes a la mayoría de las PaaS,
        existen algunas que apuntan a necesidades específicas: algunas incluyen en el core un
        paquete de software de negocio, un buen ejemplo es Salesforce.com y su plataforma
        Force.com. Otras, en lugar de proveer un ambiente para el ciclo de vida completo, se
        enfocan en proveer extensiones a infraestructura y plataformas cloud con
        funcionalidades básicas (como Amazon Simple DB o Google Big Table).

        • Infraestructura virtual como servicio (IaaS). También conocido como
        “hardware como servicio” (HaaS), supone una evolución del hosting web y de los
        servidores virtuales privados, este segmento se refiere a la oferta de servicios de
        procesamiento, almacenamiento, capacidad de red y otros recursos computacionales
        como servicios estandarizados en la red (por ejemplo EC2 – Elastic Compute Cloud, S3
        – Simple Storage Service).

        Servidores, sistemas de almacenamiento, conexiones, routers y       otros sistemas se
        concentran (por ej. a través de tecnología de virtualización) para manejar tipos
        específicos de carga de trabajo (desde procesamientos en batch hasta aumento de
        servidor/almacenamiento durante las cargas pico).

     1.2          TIPOS DE NUBE

En la computación en la nube existen tres tipos diferentes de “nubes”: las nubes públicas,
nubes privadas y nubes híbridas. Cada una de ellas tiene su fin y ofrecen diversas
características dependiendo de qué tipo de servicio o datos se estará manejando, es posible
definir una variable común, la seguridad, la gestión del hardware y las aplicaciones que se
requieren.

    •   Nube privada: agrupa los servicios y la infraestructura en una red privada, ofrece un
        mayor nivel de seguridad y control, pero requiere que la compañía compre y mantenga
        todo el software y la infraestructura. Una nube privada es ideal cuando para la empresa
        la seguridad y el control es fundamental; cuando la empresa es suficientemente grande
        y el negocio requiere estrictas medidas de seguridad.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                        Página 6
Diseño de Sistemas Orientados a Cloud Computing - 2011

    •   Nube pública: es aquella en la que los servicios e infraestructura son provistos por
        sitios a través de Internet. Ofrece un mayor nivel de eficiencia en los recursos
        compartidos y reduce los gastos, aunque una de sus debilidades es el alto grado de
        vulnerabilidad. Es perfecta para trabajar con SaaS y si se necesita capacidad de
        escalamiento.

    •   Nube híbrida: ofrece varias opciones tanto de nubes privadas como públicas, una
        desventaja son las múltiples plataformas de seguridad así como asegurarse que todos
        los aspectos del negocio se podrán comunicar entre sí. Esta nube es excelente cuando se
        hace uso de SaaS pero a la vez se tienen problemas con la seguridad. También cuando
        se hace uso de una nube pública para interactuar con el cliente y una privada para los
        datos sensibles.

     1.3         VENTAJAS Y DESVENTAJAS DE CLOUD COMPUTING
Las principales ventajas de Cloud Computing son:

             Acceso a la información y los servicios desde cualquier lugar.
             Disponibilidad del servicio y/o aplicación web 24h/7dias/365dias.
             Accesibilidad mediante diferentes tecnologías compatibles, tales como: móviles,
             portátiles, blackberrys, netbooks, etc.
             Servicios gratuitos y de pago según las necesidades del usuario.
             Capacidad de procesamiento y almacenamiento sin instalar máquinas localmente.

             La virtualización da la ventaja de permitir escalabilidad (fácilmente puedes escalar
             o desescalar los sistemas a nivel de infraestructura según las necesidades en cada
             momento) y bajo costo del hardware (es más barato que el hardware tradicional).

Como desventajas se puede mencionar las siguientes:

             La centralización de las aplicaciones y el almacenamiento de los datos origina una
             interdependencia de los proveedores de servicios.
             La disponibilidad de las aplicaciones está ligada a la disponibilidad de acceso a
             internet.
             Los datos "sensibles" del negocio no residen en las instalaciones de las empresas
             por lo que podría generar un contexto de alta vulnerabilidad para la sustracción o
             robo de información.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                          Página 7
Diseño de Sistemas Orientados a Cloud Computing - 2011

             La sostenibilidad del proveedor tiene que estar garantizada. Fusiones, quiebras,
             cualquier cambio en su negocio podría dejar ‘indefenso’ al cliente y, por ello, se
             debe establecer un compromiso de continuidad a largo plazo en la relación en los
             propios términos del contrato.

2. SOFTWARE COMO SERVICIO

Actualmente el Software como Servicio, SaaS (Software as a Service) es el área mas madura
de cloud computing. Se trata de un modelo que distribuye aplicaciones a través de Internet.
Los usuarios de las aplicaciones de software SaaS no pagan licencias de instalación sino una
renta mensual por el uso.

El concepto de "software as a service", SAAS, se basa en que los datos y programas se
almacenan en un ambiente seguro centralizado, que es de fácil acceso y sencilla
administración. Cada usuario en la red tiene su propio perfil, accesible desde un directorio
común, sin estar atado a una computadora especifica. Los usuarios almacenan sus datos en un
repositorio central y no en maquinas locales. Las aplicaciones y servicios son manejadas desde
ese directorio común, con accesos predefinidos de acuerdo a los roles de los usuarios, en su
grupo correspondiente.

En este modelo el vendedor del software proporciona una versión de la misma en un servidor
en la Web. Los clientes acceden a la aplicación desde un Sitio Web, pagado por uso, por
proyecto o por suscripción. Se elimina de esta manera la necesidad de invertir altas sumas en
la compra de licencias de software. También elimina los costos y riesgos de instalar, dar
soporte y mantenimiento de hardware en computadoras de la empresa y de mantener personal
necesario. Además, el acceso del usuario y el rendimiento de las aplicaciones pueden mejorarse
dramáticamente con los sistemas basados en la Web disponibles 24 horas diarias, 7 días a la
semana.

Las ventajas de uso inmediato, pago por uso, actualizaciones inmediatas, recuperación
instantánea de fallas y no tener que preocuparse del mantenimiento han capturado de
inmediato al mercado, razón por la cual se puede afirmar que el SaaS es sin duda el futuro de
la industria del software.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                        Página 8
Diseño de Sistemas Orientados a Cloud Computing - 2011

   2.1 CARACTERÍSTICAS DE LAS APLICACIONES SAAS

¿Qué características debe tener una aplicación SaaS para que sea comercialmente viable?
Debería cubrir al menos las siguientes necesidades:

             Es necesario que la aplicación sea lo suficientemente genérica como para que una
             gran cantidad de clientes potenciales se interesen en el servicio: algunos ejemplos
             de estos tipos de aplicaciones son: contables, para gestión de proyectos, de testing,
             para marketing en Internet, CRM, etc.

             Es necesario que sean fáciles de usar: si la aplicación no es amigable y fácil de usar
             el cliente simplemente cancela la suscripción.

             Debe ser modular y orientada a servicios: si la arquitectura no es orientada a
             servicios hará difícil el introducir cambios y por otra parte dificultará que la
             aplicación pueda operar junto a otras aplicaciones SaaS de terceros.

             La aplicación debe incluir medición y control del uso real de cada cliente.

             La aplicación debe tener un servicio de facturación integrado.

             Debe asegurar la separación y seguridad de los datos y configuración especial de
             cada cliente.

             Debe permitir que los clientes puedan configurar sus procesos de negocio: por
             ejemplo, una compañía podría querer agregar un proceso para que un gerente
             apruebe un precio antes de hacer la oferta a un cliente, una herramienta integrada
             de configuración puede permitir que esto se haga sin necesidad de programación.

             Las aplicaciones SaaS necesitan constantemente liberar versiones con nuevas
             características y capacidades: este proceso no debería impactar en el uso de los
             clientes que deberían continuar con su operatoria normal sin interrupción.

             Debe proteger la integridad de los datos del cliente: incluye proveer técnicas para la
             migración de datos ya sea para almacenarlo en una base privada o de terceros.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                            Página 9
Diseño de Sistemas Orientados a Cloud Computing - 2011

   2.2 SAAS Y LA INGENIERÍA DE SOFTWARE

Por el lado de la Ingeniería de Software, las aplicaciones SaaS presentan diferencias con
relación a las aplicaciones empaquetadas (la captura de requerimientos, la instalación, el
mantenimiento, por mencionar solo algunos ejemplos, son diferentes), por lo cual, se requiere
un enfoque alterado de Ingeniería de Software para este tipo de aplicaciones.

Una pregunta importante es cómo el enfoque SaaS afecta a los proveedores de software y su
incentivo a invertir en el desarrollo de productos. Transformar un producto empaquetado a un
modelo SaaS no es una simple cuestión de reescribir código. Estas compañías necesitan
examinar sus modelos de ingeniería y comercialización para adaptarse a este nuevo enfoque de
negocio y de desarrollo.

                                  Figura 2. Ciclo de Vida de aplicaciones SaaS

La figura anterior describe que las actividades de cada etapa del ciclo de vida son diferentes a
las de un producto tradicional. Una de las causas principales de estas diferencias, es que las
aplicaciones SaaS están acopladas a una plataforma y en cada etapa esta plataforma juega un
rol importante en el ciclo de vida SaaS.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                        Página 10
Diseño de Sistemas Orientados a Cloud Computing - 2011

   2.3 IMPACTO EN EL PROCESO DE DESARROLLO DE SOFTWARE

Se debe tener en consideración el efecto en el proceso de desarrollo de software del enfoque de
aplicaciones como servicios. A continuación se realiza un breve análisis del impacto en cada
etapa o actividad de dicho proceso:

                                  En el enfoque tradicional, los requerimientos consisten en definir una
   Requerimientos                 serie de funciones que satisfagan las necesidades de un cliente. En el
                                  caso de las aplicaciones SaaS, los desarrollos son meramente basados
                                  en un modelo de negocio. Eso es, una aplicación SaaS debe cumplir
                                  con los requerimientos de un mercado. Debido a que las aplicaciones
                                  serán consumidas por un gran número de subscriptores (empresas
                                  clientes) y cada uno puede tener potencialmente un número grande de
                                  usuarios, entonces se introducen al proceso más requerimientos no
                                  funcionales, como por ejemplo: soporte para alta concurrencia,
                                  almacenamiento escalable, virtualización/ clustering entre otros. Es
                                  necesario definir un plan de requerimientos de negocio que luego se
                                  transformarán en requerimientos funcionales.

                                  La etapa de análisis debe ser realizada también desde la perspectiva de
                                  negocio. Esto es debido a que cada aplicación tratará de satisfacer las
        Análisis                  necesidades de un amplio número de clientes. La definición de los
                                  procesos de negocio que soportará cada aplicación es un paso
                                  importante en este tipo de aplicaciones, ya que debe permitir la
                                  personalización y definición de procesos similares para cada cliente.
                                  Cada proceso con sus actividades, roles y reglas de ejecución debiera
                                  ser documentado.
                                  En esta etapa tendría lugar la identificación de los casos de uso,
                                  basados en modelos de procesos, bien podrían estar alineados a SOA.
                                  Frecuentemente los casos de uso resultantes son análogos a servicios,
                                  por lo tanto, la especificación de los mismos sería el primer paso de la
                                  especificación de servicios.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                                     Página 11
Diseño de Sistemas Orientados a Cloud Computing - 2011

                                  El diseño es una de las etapas que mayor impacto ha recibido con esta
       Diseño                     nueva concepción de software. Con los diseños tradicionales casi es
                                  imposible pensar en múltiples clientes usando la misma instancia de
                                  una aplicación, así también en requerimientos de escalabilidad,
                                  personalización para cada cliente , etc. La siguiente sección trata más
                                  en profundidad las cuestiones implicadas en el diseño de una
                                  aplicación SaaS.

                                  Además de las tareas comunes involucradas en la implementación,
   Implementación                 dentro del desarrollo SaaS es necesario considerar a la plataforma que
                                  soporta las aplicaciones.
                                  Una vez que se desarrollan los de servicios de negocio, se codifican las
                                  interfaces principales de la aplicación, así como sus implementaciones,
                                  el siguiente paso importante es la integración con los servicios de la
                                  plataforma, es decir desarrollar el código para consumir los servicios
                                  que la aplicación necesita para operar. Estos servicios consumidos
                                  pueden ser de seguridad, logging, métricas, etc.
                                  Las siguientes tareas serán desarrollar la lógica de negocio, las
                                  interfaces de usuario y el desarrollo para la integración con otros
                                  sistemas. Es necesario asegurar que toda la implementación de
                                  tecnología funciona correctamente.

                                  Como para toda aplicación se deben ejecutar todo tipo de pruebas, la
       Pruebas                    principal diferencia entre las metodologías tradicionales y la propuesta
                                  para SaaS radica en las pruebas de integración, rendimiento y métricas
                                  de uso. (Se consideran más detalles sobre pruebas en la Sección 3).

Como se puede observar, el desarrollo de SaaS requiere de consideraciones de diversos
factores que no presentan los métodos actuales de desarrollo de software. Las diferencias entre
desarrollar software como servicio o como producto empaquetado son evidentes y estas
diferencias cambian la manera en que se desarrollan dichas aplicaciones.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                                    Página 12
Diseño de Sistemas Orientados a Cloud Computing - 2011

3. DISEÑO ORIENTADO AL SOFTWARE COMO SERVICIO

El diseño de Software juega un papel importante en el desarrollo de software, permite al
ingeniero de software producir varios modelos del sistema o producto de que se va a construir,
dichos modelos forman una especie de plan de la solución de la aplicación.

Las actividades de diseño cubren todo tipo de decisiones, pero especialmente las relacionadas
con "cómo va a ser el software", cuáles serán sus módulos, qué tecnología utilizará, cómo se
interrelacionan los datos que va a utilizar. También forma parte del diseño el decidir qué
componentes conformarán el sistema: cuál es la función de cada uno de ellos y cómo se
comunica con los demás.           A continuación se hace un breve análisis de las cuestiones
implicadas,      cuando se trata de diseñar un software como servicio, principalmente lo
relacionado a las siguientes actividades:

             Investigación y evaluación de tecnologías
             Diseño de arquitectura
             Diseño de Datos
             Ingeniería de procesos de negocio
             Diseño de Casos de Prueba

   3.1 INVESTIGACIÓN Y EVALUACIÓN DE TECNOLOGÍAS

Es importante en esta etapa hacer investigación sobre las tecnologías que soporten las
necesidades identificadas. Un artefacto entregable puede ser un documento de investigación
acerca de plataformas PaaS, proveedores existentes, frameworks, componentes Web 2.0, etc.

   3.2 DISEÑO DE ARQUITECTURA

Existen tres aspectos de arquitectura importantes que necesitan ser considerados: multi-
tenancy, es decir, hostear a varios clientes en una única instancia de la aplicación,
maximizando por ende el uso de recursos compartidos, escalabilidad y personalización
sin olvidarnos de los tradicionales (confiabilidad, rendimiento y todos los aspectos de
seguridad). Estos tres puntos de arquitectura son el núcleo de las guías de arquitectura que
estamos creando; reconocemos que los otros aspectos mencionados antes son escenciales pero
siguen siendo tratados igual que en cualquier sistema de alta disponibilidad.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                       Página 13
Diseño de Sistemas Orientados a Cloud Computing - 2011

La Figura 3 muestra una arquitectura de alto nivel de una aplicación en la nube, incluyendo las
capas de plataforma e infraestructura provistas por Cloud Computing. En el nivel más alto se
encuentran las aplicaciones SaaS proporcionadas por los proveedores. La plataforma PaaS
expone componentes de soporte para estas aplicaciones (tales como seguridad, cuentas, login,
etc.), así también otros servicios como meta-datos y administración de clientes y proveedores.
La Infraestructura de software y hardware también es proporcionada por la Cloud. Sobre esta
arquitectura, las aplicaciones SaaS se desarrollan, despliegan y entregan a un número
considerable de clientes.

                                                       Clientes

                                                    Proveedores

                                            Servicios para Consumidores
                      SaaS
                                              Componentes Aplicativos

                                             Componentes de Soporte

                      PaaS
                                     Servicios de                 Administración
                                     Metadatos                     de Tenants

                                             Infraestructura Software
                      IaaS
                                           Infraestructura de Hardware

                        Figura 3. Arquitectura de alto nivel de una aplicación en la nube

Por otra parte, en lo que a la arquitectura de las aplicaciones SaaS se refiere, debe tener los
atributos de diseño, que se detallan en la siguiente tabla:

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                             Página 14
Diseño de Sistemas Orientados a Cloud Computing - 2011

                                                     La arquitectura soporta múltiples clientes y
        Multi-tenancy
                                                     proveedores.
                                                     Existe una versión de cada aplicación y es
        Versión Simple
                                                     compartida para todos los clientes.
                                                     En el mejor de los casos, cada tenant tiene su
                                                     propio   dominio     de   información,      pero
        Separación Lógica de Datos                   almacenados en una misma base de datos.
                                                     (Actualmente se usan otras alternativas, que se
                                                     detallan mas adelante en Diseño de Datos)
                                                     Es un punto de entrada a las aplicaciones de
        Contenedor de Dominio
                                                     un proveedor.
                                                     Las aplicaciones SaaS deben comunicarse
        Integración de Aplicaciones
                                                     entre sí, pero mantenerse independientes.
                                                     La   plataforma    proporciona   componentes
                                                     compartidos para las aplicaciones: seguridad y
                                                     autenticación, manejo de cuentas de usuario,
        Componentes de Soporte
                                                     login, control de uso y métricas, soporte para
                                                     diferentes modelos de subscripción, entre
                                                     otros componentes importantes.

Los servicios y la estructura detrás de la nube deben estar basados en un enfoque de
arquitectura modular, basada en componentes, la cual permite la flexibilidad y reutilización.
Una arquitectura orientada a servicios (SOA) permite exponer funcionalidad empaquetada
como servicios interoperables que permiten la integración, por lo cual, agrega un ingrediente
importante al modelo que está relacionado con la integración y la interoperabilidad con
aplicaciones de terceras partes o propias. Adoptar SOA puede ser una ventaja competitiva para
el proveedor porque habilita escenarios de integración, mashups y automatización.

   3.3 DISEÑO DE DATOS

Las aplicaciones como servicio tienen una característica que hace que el modelo sea
especialmente eficiente, el multitenancy. Esta es la propiedad que permite ofrecer la misma
aplicación a muchos usuarios y así distribuir el coste de la infraestructura y del mantenimiento
entre todos Técnicamente no se trata solo de ofrecer la misma aplicación, sino de realizar una
aplicación que permita con una sola instancia de la aplicación y una sola base de datos, dar

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                            Página 15
Diseño de Sistemas Orientados a Cloud Computing - 2011

servicio a todos tus clientes. Desde el punto del diseño de datos se debe elegir entre las
opciones de tener una base de datos aislada, compartir la base de datos pero no las estructuras
de datos, o bien, compartir todo sin olvidar que el resultado debe ser escalable a nivel de
estructura de datos, esquemas de replicación, mantenimientos de referencias al cambiar
estructuras de datos, etc.

Existen actualmente tres distintas implementaciones multitenancy, que cumplen la condición
de dar soporte a múltiples clientes. Se parte de la base que existe una aplicación con su parte
de código y su parte de datos, donde la misma ejecución o instancia del código va a dar servicio
a todos los usuarios, a continuación se puede ver cuáles son las tres formas en que se puede
diseñar la base de datos con sus ventajas y desventajas:

        Una base de datos por cada empresa o usuario: Es decir una misma instancia de la
        aplicación para dar servicio a todos los usuarios pero una base de datos por cada
        cliente. Esta es la opción que está más lejos del modelo SaaS y más cerca al modelo
        ASP. Las tablas no necesitan ningún atributo para diferenciar si los datos pertenecen a
        un cliente o a otro, pero si es necesario tener una estructura de datos que determine
        qué base de datos corresponde a cada cliente.

                                  Figura 5. Una base de datos por cliente

Ventajas:
    •   Un Motor de BBDD dedicado para cada usuario, por tanto no te afectan los datos y
        accesos de otros clientes.
    •   Posibilidad de tener una máquina dedicada para los usuarios.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                         Página 16
Diseño de Sistemas Orientados a Cloud Computing - 2011

Desventajas:
   Desde el punto de vista del proveedor
    •   Más recursos humanos. Se dificulta el mantenimiento ya que cualquier modificación en
        el modelo de datos (tablas) hay que replicarla en todas las bases de datos.
    •   Más recursos hardware. A partir de un cierto número de clientes se necesitarán más
        máquinas para albergar las bases de datos.
    Desde el punto de vista del cliente
    •   Más expuestos a errores. La replicación masiva da lugar a errores y puede afectar a los
        datos de la aplicación.
    •   Precio alto. Requiere más recursos, más mantenimiento, lo cual incidirá en el precio.

     Una base de datos con N conjunto de tablas: Es decir una misma instancia de la aplicación
     para dar servicio a todos los usuarios y una sola base de datos con tantos conjuntos de
     tablas como clientes existan. Esta opción se acerca más al modelo SaaS aunque sigue
     siendo difícil su mantenimiento. Las tablas tampoco necesitan un atributo para diferenciar
     si los datos pertenecen a un cliente a otro, y de igual forma necesitan una estructura de
     datos que determine qué conjunto de tablas (esquema) pertenece a cada cliente.

                             Figura 6. Una base de datos con N conjuntos de tablas

Ventajas
    •   Menos inversión hardware que la opción anterior.
    •   Menos mantenimiento del hardware.
    •   Precio menor que la opción anterior

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                         Página 17
Diseño de Sistemas Orientados a Cloud Computing - 2011

Desventajas
   Desde el punto de vista del proveedor
    •   Más recursos humanos. Se dificulta el mantenimiento ya que cualquier modificación en
        el modelo de datos (tablas) hay que replicarla en todos los conjuntos de tablas.
    •   En caso de fallo del motor de la base de datos no es posible dar servicio a ningún
        cliente.
    Desde el punto de vista del cliente
    •   Debido a que se comparten los mismos recursos hardware y el mismo motor de base de
        datos, existe la probabilidad de pérdida de rendimiento.
    •   Mayor exposición a errores. La replicación masiva da lugar a errores y puede afectar a
        los datos de la aplicación.
    •   Precio alto. Mas recursos humanos, requiere más gasto y esto incidirá en el precio.

     Una base de datos con ÚNICO conjunto de tablas: Es decir una misma instancia de
     aplicación y una sola base de datos con un único conjunto de tablas para dar servicio a
     todos los usuarios. Esta opción es la que más se ajusta al modelo SaaS y el mayor
     problema que presenta es la complejidad de la aplicación y la estructura de datos. Las
     tablas necesitarán un atributo para diferenciar a que cliente pertenecen los datos.

                          Figura 7. Una base de datos con un único conjunto de tablas
Ventajas
    •   Menos recursos hardware que las opciones anteriores.
    •   Facilita el mantenimiento, evita la probabilidad de error por las actualizaciones de la
        estructura de datos.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                            Página 18
Diseño de Sistemas Orientados a Cloud Computing - 2011

    •   Al ser más rápido el mantenimiento, es posible tener la aplicación disponible más
        tiempo.
    •   Menor precio que opciones anteriores.
Desventajas
Desde el punto de vista del proveedor
    •   Aplicación más compleja porque debe determinar el acceso a los datos correctos de
        cada cliente.
    •   En caso de fallo del motor de base de datos no es posible dar servicio a ningún cliente.
Desde el punto de vista del cliente
    •   Probabilidad de pérdida de rendimiento, ya que todos los usuarios comparten los
        mismos recursos hardware y el mismo motor de base de datos para todos los usuarios.
    •   La complejidad de la aplicación puede dar lugar a errores.

En cualquiera de las tres opciones hay que tener sumo cuidado para definir los datos,
esquemas o base de datos correcta y asegurar la confidencialidad de los mismos, es decir, que
el cliente solo pueda ver sus datos y no los de otros clientes. Por otra parte se debe tener en
cuenta que una vez elegida una opción, todo el diseño y desarrollo de la aplicación está
condicionado por la misma. Pasar después de una opción a otra requiere casi empezar desde
cero.

   3.4 INGENIERÍA DE PROCESOS DE NEGOCIO

Debe permitir personalizar la aplicación a medida de distintos clientes, pero utilizando la
misma solución. La personalización no puede ser hecha mediante código personalizado sino
que necesita ser hecha mediante configuración específica de cada cliente. Contar con un
entorno rico de metadatos y de un servicio de metadatos en la arquitectura es importante.
Idealmente se trataría de compartir infraestructura (servidor IIS, servidor de Base de datos) y
utilizar metadatos para habilitar la personalización y configuración que exige una solución
multi-tenants y multi-marca.

   3.5 DISEÑO DE PRUEBAS

Si bien se deben diseñar todos los tipos de prueba como para las aplicaciones tradicionales, se
debe hacer enfoque principal en los siguientes tipos de pruebas:

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                          Página 19
Diseño de Sistemas Orientados a Cloud Computing - 2011

    •   Pruebas de integración. Pruebas importantes en cuanto a la integración con la
        plataforma, con otros módulos de la aplicación y con otras aplicaciones.

    •   Pruebas de rendimiento. Cada aplicación tiene sus propios requerimientos de
        rendimiento, en este caso, las aplicaciones SaaS tienen una fuerte dependencia en el
        número de usuarios y sus especificaciones.

    •   Pruebas de medición de tenants. La aplicación no debiera implementar código para
        logging o medición de uso. Estos componentes son responsabilidad de la plataforma
        misma. El objetivo de estas pruebas es asegurar que el uso y debug de cada aplicación
        es correctamente registrado y para cada tenant (cliente y/o proveedor).

    •   Aprobación Técnica. Consiste en correr todas las pruebas sistemáticamente y
        asegurarse que la aplicación es correctamente desplegada a producción. En el caso de
        actualizaciones y arreglos de defectos, la plataforma debe proporcionar mecanismos de
        recuperación cuando existan fallas y se pueda regresar a versiones anteriores.

4. SOA EN LA NUBE

Como se ha visto Cloud Computing tiene características fundamentales que deben cumplir,
entre otras: elasticidad, servicios de auto aprovisionamiento (self services provisioning) e
interfaces basadas en estándares.

Por otra parte, en la nube conviven diferentes aplicaciones que deben colaborar entre sí para
obtener su mayor potencial, en la mayoría de los casos dichas aplicaciones se desarrollaron en
forma independiente aplicando diversos estándares y diferentes arquitecturas, por lo cual la
integración de las mismas suele ser una tarea compleja.

Siendo que la nube esta mas orientada al deployment y no al desarrollo, aun no hay
estándares precisos sobre cómo modelar aplicaciones en ella, los ingenieros en informática
deben diseñar aplicaciones con las bondades que brinda la nube: “servicios”, “módulos”,
“reutilización”.

Estos beneficios se pueden obtener diseñando aplicaciones de negocio en la cual la
funcionalidad aplicativa se provee a través de componentes funcionales denominados

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                          Página 20
Diseño de Sistemas Orientados a Cloud Computing - 2011

servicios, acá entra en la escena de la nube, el diseño de SOA o Arquitectura Orientada a
Servicios.

   4.1 POR QUÉ      PENSAR EN SOA?

Los sistemas de información han recorrido durante su historia un camino que lleva desde los
primitivos sistemas monolíticos, pasando por sistemas cliente/servidor, hasta llegar a la
Arquitecturas Orientada a Servicios (SOA), en la que la funcionalidad de las aplicaciones se
implementa bajo la forma de componentes reutilizables, que se invocan a través de interfaces
estándar.     Estos componentes –llamados servicios– pueden combinarse para crear otros
servicios más complejos.

Una de las principales necesidades que enfrentan hoy las empresas es la de integrar sus
procesos en forma “transversal” a través de las diferentes aplicaciones, y ésta es precisamente
una necesidad a la cual las arquitecturas IT anteriores casi nunca pudieron dar una respuesta
completamente satisfactoria. Tradicionalmente la integración de los procesos se llevó a cabo,
en algunos casos manualmente, obligando a los usuarios a conectarse a diferentes
aplicaciones, o a llevar papeles de un sector de la empresa a otro, con las consiguientes
inexactitudes e ineficiencias; en otros casos la lógica de integración de los procesos estaba
embebida dentro del código de las aplicaciones, lo que torna complicado poder modificar
ágilmente los procesos, o crear procesos nuevos reutilizando los componentes existentes.

En el mundo de los negocios de hoy, las empresas necesitan tener una gran flexibilidad para
poder adaptarse ágilmente a lo que un entorno muy exigente les demanda. Una empresa
tendrá esa flexibilidad sólo si sus procesos de negocio están integrados de punta a punta. Por
otra parte, las empresas que logren esto cubrirán mejor las demandas de sus clientes, ganarán
competitividad e incrementarán en definitiva sus beneficios.

El problema de las arquitecturas tradicionales reside en que, en ellas, las aplicaciones no están
diseñadas para ser integradas. En esas arquitecturas las aplicaciones se diseñan generalmente
como “silos verticales”, cada una de ellas pensada para un propósito específico y un alcance
limitado. En muchos casos se trata de aplicaciones construidas o adquiridas en diferentes
momentos históricos, por diferentes equipos de gente y en forma independiente, de modo que
es natural que su integración resulte dificultosa, dicho estado resulta totalmente indeseable ya
que la infraestructura tecnológica no debería inhibir sino, por el contrario, facilitar la
integración de las aplicaciones y de los procesos de negocio, permitiendo además que dichos

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                         Página 21
Diseño de Sistemas Orientados a Cloud Computing - 2011

procesos reutilicen las aplicaciones existentes e incorporen también a las nuevas aplicaciones
que se desarrollen en el futuro, incluso sobre diferentes plataformas. Hoy en día existe un
amplio consenso en que la mejor solución para las necesidades actuales de las empresas es la
Arquitectura Orientada a Servicios, ya que permite justamente crear una infraestructura
tecnológica capaz de brindar la agilidad que los negocios necesitan en el mundo de hoy.

Para entender como se relacionan la Cloud con SOA, es necesario entender varios conceptos
de la Arquitectura Orientada a Servicios (SOA)

   4.2 ARQUITECTURA ORIENTADA A SERVICIOS

SOA es una manera de diseñar y construir aplicaciones de negocio en la cual la funcionalidad
aplicativa se provee a través de componentes funcionales denominados servicios. Cada servicio
representa una función de negocios de la empresa tal como: “obtener la información de un
cliente”, “dar de baja una línea telefónica”, “dar de alta un nuevo empleado”, etc. Los servicios
se comunican unos con otros a través de interfaces bien definidas, estándar, e independientes
de la plataforma de hardware, sistema operativo, o lenguaje de programación en el que el
servicio esté implementado.       Esto permite crear aplicaciones compuestas (composite
applications) simplemente combinando o ensamblando servicios más básicos.

Los servicios, entonces, se comunican mediante interfaces estándares, y no ligadas a ninguna
implementación particular. Dicho en otras palabras, se comportan como cajas negras, en las
que están expuestas las interfaces (es decir: la forma de invocarlos y los resultados que
producen), pero no la implementación interna.            Esta característica se conoce como
acoplamiento débil entre servicios. El beneficio del acoplamiento débil consiste en la mayor
independencia entre los servicios; las modificaciones hechas en un servicio no impactan en los
demás. Esto a su vez brinda mayor agilidad para implementar cambios y permite ahorrar
costos de desarrollo y mantenimiento de los sistemas. El acoplamiento fuerte por el contrario,
implica que los diferentes componentes de una aplicación estén íntimamente relacionados en
funcionalidad y forma, lo cual los hace muy vulnerables a los cambios evolutivos, ya que
cualquier modificación a uno de sus componentes termina afectando a los demás.

La necesidad de contar con sistemas con poco acoplamiento surge de la necesidad ya
mencionada de dotar a las aplicaciones de mayor agilidad, lo cual se basa a su vez en la
necesidad del negocio de adaptarse rápidamente a su ambiente cambiante. Podría decirse que,
en última instancia, el propósito de SOA es desvincular las aplicaciones de las

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                         Página 22
Diseño de Sistemas Orientados a Cloud Computing - 2011

implementaciones de los componentes que dichas aplicaciones utilizan. A esto se lo llama
“separación de las incumbencias” (“separation of concerns”).                                                                                                                                                                                                                                                                                                                                  La gran ventaja de esta
separación es que permite cambiar la implementación de los componentes sin afectar a las
aplicaciones y, viceversa, modificar las aplicaciones reutilizando los mismos componentes. Es
evidente que este modelo puede darle a los negocios la flexibilidad que los sistemas
tradicionales no podían brindar.

   4.3 ENTRERPRISE SERVICE BUS (ESB)

En SOA los diferentes servicios habitualmente no interactúan en forma directa unos con otros
sino que lo hacen utilizando de un Enterprise Service Bus (ESB). El ESB es un patrón
(pattern) de diseño, que representa una buena práctica de arquitectura, y que recomienda no
interconectar los servicios directamente –punta a punta– sino, por el contrario, utilizar un bus
de interconexión, que habitualmente se implementa con un middleware*1 específicamente
diseñado para tal fin.

La recomendación de no interconectar los servicios punta a punta tiene como objeto evitar una
situación tal como la que muestra la siguiente figura, que es el mapa de las interfaces entre
aplicativos tomado de un caso real (una empresa de productos electrónicos de consumo
masivo):
                                                                                                                                                                                                                                                                                                                                               Depository
                                                              Vendor Setup                                                                                                                                                                                                                                                                       Banks

                                                                                  Vendor               Process Serve rs                                                                                                                                                                                                                                                                Customer Perceived
                                                             Budget             Maintenance                                                                                                                                                                                                                                          Universal Account
                                                                                                          (I maging)                                                                    NEW S oundscan                                                 VAN                                                                                                                                   In-Stock
                                                           Analysis Tool                                                                                  Mesa Data                                                     Shows                                                                                                            Reconcilliatio n
                                                                                     Printer                         S20-Sales
                                                                                   Mainte nance                         Polling                                                                                                                                                             I13- Auto                                                                                                       Hand Scan
                                                                                                                                                                                                                                Custo mer                                                Re plenishment                                                                                                         Apps
                                                                   Insertions            Printer PO                                                                                                                                Order
         Reports                                                                                                                                                                   Sales
                                       Calendar                      Orders                                                                                                        Corrections
         Due Dates                                                                       Print Costing                                                                                                                                                                                                                                                                                             Ware house
                                                    General         Invoice Ap p                                                                                                                                                                                                                                                                                                                    Management
        Stores & Mrkts            Broadcast       Maintenance
                                    Filter                                                                                     Interface                                                                                                                                                                              PO
         Smart Plus
         Smart Plus                       Millennuim 3.0
          Launcher                                                                                                                                                                                                         Sales Posting
                                                                                            Cell
         Tally Sheet                                                                        Phones                                                                                                                                                                     Return to
                                               Mille nnium                                                                 D01 Post Load                                                                                                                                 Ve ndor                                                       Credit App
                                                                                                                              Billing
                                                                                                   Equifax
        Stock Options
                                           Employee                                                                                                                       Solution
         Resource                           Change Notice                                                                                                                     Software                                                                                                                        Satellite
                                                                                                   A04 - Cust                                                                                                                                                                                                 Syste m                                 -Promo
          Scheduling                                                                              Refund Chks
                                                                                                                                                                                                                                                                                            1
                                                                                                                                                                                                                                                     DFK                                                                                               Ana lysis
                                           On-line New
                                              Hire Entry
                                                                                                                                  AAS                                                                                                                                                                                                                  Price
         Resumix                                                                                    P01-                                                                                                                                                                                                                                               Marketing
                                                                                                  Employee                                                                                                                                                                                                                                              Support
                                                                                                  Masterfile                                                                                                                                                                                                                                                                                        Bus Systems
                                                   P09 - P17
              Cobra                                 Cyb.                                                   ABC                                                                                                                                                                                             - ISP
                            CTS                                                                             Co                                         website                                                                                               Cycle Physical                                Tracking
                                                                                                                                                                                                          Home                                                   Inventory
              ACH                                                                                                                                                                                         Deliverie s
                                                                                                      V04-Sign
                           Prodig y                                                                    Syste m                                            CTO
           Banks - ACH and Pos to                                     POS                                                                                                                                                                                                                                                                             -
                     Pay                                                                                                                                                                                                                                                                                                                            Transfers
                                                                                                                                                                                                                                                                                                                                                                                           Host to AS400
         Plan Administrators                                                                                                                                                                                                                                                                                                                                                              Communication
          (401K, PCS, Life)                                                                        Spec Source                                           Stock
                                                                                                   SKU Tracking                                            Status                                                                                                                                  Price
                                                                                                                                                                                                     Counts                                                                                        T esting                                       Supplie r
                                          Intercept                Sales                                                                                                                                                                                                                                                                         Compliance
              Employee                                              T ax                    Scanning                                                                                                                                                   La yaways
                Purchase
                                                                                                        Spe c
                                                                                                       Source                                                                                                                                                                                                                          PO
              Scorecard                                                                                                                                                                                                                                                                                                               Receiving                                                   SKU
                                          Mkt                                                                                                                                                                                                                                                                                                                                                 Performance
                                          Reactions
                                                                 Poll ing                      Price Management                                                                                                                                                                                       Coop
        Bonus/HR                                                                                                                                                                                                                                                                                                                                                                              SKU Selection
                                                                                                      Syste m                                               Inv entory Info                                                                                                                                                                                                                       T ool

                                       DRK
              ABBX                                                                                                                                                                                                                            Customer Repair                                                                                I35 Early Warning                                      Planning
                                                                                                                                                                                                                                                 Tracking                                                                                         Syste m
                                       Re bate                                                      SKU Rep
                                      Transfer
                                                                                                                                                                                                           SKU                                                                                        Purchase
          Store                                                                                                                                                                                          Information                                                                                     Orde r                                                                                Ad Expense
         Monitor
                             PowerSuite                                                       General
                                                                                                Le dger
                                                                                                                                                                                                                                                                                                                                                                                                 Store
                                                                                                                                                                                                                                                                                                                                                                                               Score card
         Tex A                                 Sign
                                              Syste m
                                                                                                                                                                                                                                 N.                        Count Corrections                                                                                                                        Store Budge t
                                                                                                                                                                                                                                                                                                                                                                                                      Reporting
                                                                                                                                                                                                                                                                                                                                         Media
         Tx                                                                                                                                            Merchandise
                                  Writer                                                                                                                   Ana lysis                                                                                                                                                                                                                                   BMP - Bus
                                   Workspace                                                                                                                                                                                                                                                                                                                                                       performance Mngt
                                                                                                                                                                                                                                         EDI
                                                                                                                                                                                                                                      Coordinat or
      Mngr Ap proval
       Batch Forcastin g                          AIMS                                                                                                                                                                                                                                                                                             Journal Entry Tool Kit
        Ad Me asureme nt                                                                                          AP

                                                                                                                                                                                                                                        Cellular                                                                           I NVENTORY CONTROL AP PS - PC           INV ENTORY CO NTROL APPS - PC            ACCTS REC APPS - PC

                                                   AIMS                                                                                                                                                                                 Rollover                                         OTHER APPS - PC
                    Ad                           Reporting                                                                                                                                    House
                 Launcher                                                                                                                                                                      Charge s

                                                                                                                         Op.               Recon
                                           PSP                                                                                                  File
                                                                                        Capital
                                                                                         Projects                                                                      Connect 3                               Cre dit
                                                                                                                            SS
                                           In-Home
              Data Warehouse                Repair                                                                                                        Connect 3            Connect 3
                                                                                                                                                         PDF T ransfe           Reports                                                   Cash Receipts/Credit
                                                                                        Fixed
                                           Warranty                                       Assets                                                                                                                                                                         Misc Accou nting/Finance Ap ps - PC/NT
                                            Billing

                                                                                                        Figura 7. Una base de datos con un único conjunto de tablas
                                                                 Repair                                                                                                   Cash Ov er/
                                           Syste m
                                                                                                                                                                            Short

                                                                                                                                        Figura 8. Mapa de interfaces entre aplicativos

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                                                                                                                                                                                                                                                                                                                                                                   Página 23
Diseño de Sistemas Orientados a Cloud Computing - 2011

Un ESB provee una infraestructura de conectividad para los diferentes servicios a través de la
cual fluye la información que permite que aquellos interactúen, de modo que la arquitectura de
integración de los servicios pasa a convertirse en algo como esto:

                    Travel              Check            Check Credit        Book Flight
                  Reservation          Traveler            Service            Service
                   Process             Service

                                  Enterprise Service Bus

                   Hotel                Flight            Book Hotel            Book Car
                 Availability         Availability         Service               Service
                  Service              Service

                         Figura 9.Arquitectura
                                  Arquitectura de integración de servicios usando ESB

Un ESB no se limita a interconectar los diferentes servicios sino que provee además una
mediación inteligente entre lo servicios. El concepto de mediación incluye:

    •   El ruteo de cada requerimiento al componente o a los componentes correspondientes,
        en base al contenido del requerimiento (content
                                               (content-based routing). En algunos casos un
        servicio se resolverá con único componente, pero puede haber otros casos en los que el
        ESB deba invocar a una secuencia de componentes (Ej: transacciones en un
        mainframe, o en SAP) para cumplir con un servicio determinado.

    •   El reformateo de los datos para adaptarlos a los diferentes servicios participantes; por
        ejemplo, de archivo plano a XML.

    •   El cambio de protocolo de transporte (por ejemplo, de JMS a HTTP).

El ESB implementa entonces la lógica de integración de los servicios, no la lógica de negocios
que está íntegramente implementada en los componentes. Se puede decir también que el ESB
es el lugar dondee los servicios se “publican”. Cada vez que una aplicación o un proceso

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                            Página 24
Diseño de Sistemas Orientados a Cloud Computing - 2011

necesiten invocar un servicio se lo va a “pedir” al ESB y éste se va a encargar de mediar entre
quien requirió el servicio y quien lo puede brindar realmente.

   4.4 LA INFRAESTRUCTURA TECNOLÓGICA DE UNA SOA

Los procesos de negocio en el contexto de una SOA se ejecutan bajo el control de un motor o
servidor de procesos, pero existen además diversos componentes de software que facilitan la
creación de nuevos servicios, la integración de los procesos con servicios nuevos o ya existentes
y la interacción de los servicios y procesos con las personas.

Estos componentes pueden clasificarse del siguiente modo:

• Infraestructura de conectividad de servicios, que se implementa, como ya se ha dicho,
   mediante un Enterprise Service Bus (ESB).

• Servicios propiamente dichos, que pueden ser brindados por:

    –   Nuevos componentes aplicativos, diseñados específicamente para SOA y desarrollados
        por ejemplo en JEE (Java Enterprise Edition) o en .NET, entre otras posibilidades.

    –   Aplicativos preexistentes, también conocidos como “legacy”, que pueden integrarse a
        SOA a través de adaptadores o conectores, o modificando el código mismo de los
        programas que las componen.

    –   Servicios provistos por terceros. En las comunicaciones entre empresas se ha utilizado
        históricamente una gran variedad de protocolos (EDI, RosettaNet, FTP, Web Services,
        etc). Para asilar a los aplicativos y procesos de la complejidad de manejar todos esos
        diferentes protocolos, y para manejar desde un lugar único cosas tales como la
        seguridad y la calidad del servicio, es conveniente contar con un gateway, que provea
        una interface de servicios a los aplicativos y procesos de la empresa y que se ocupe de
        manejar la comunicación con los diferentes proveedores de servicios externos.

• Elementos que permitan componer servicios, que incluyen:

    –   Servidor de procesos: ya mencionado anteriormente.

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                         Página 25
Diseño de Sistemas Orientados a Cloud Computing - 2011

    –   Portales web: los portales web permiten crear aplicaciones compuestas integrando
        servicios en el navegador web (“integration on the glass”). Los portales permiten
        además presentar de manera personalizada para cada tipo de usuario toda la
        información que cada usuario necesita para llevar a cabo sus tareas, incluyendo la lista
        de items de trabajo del motor de procesos. Los portales son por esta razón un elemento
        esencial para dotar a los procesos de negocio, en particular a aquellos en los que existen
        tareas humanas, de una gran eficiencia ya que cada persona dispondrá de la
        información necesaria en forma integrada y consolidada en un único lugar.

    –   Integración de la información: conocida también como Federación de Datos, que
        permite acceder a múltiples fuentes diferentes de datos como si se tratase de una base
        de datos única y coherente, presentando además los resultados en la forma de servicios.

   4.5 SOA      VS CLOUD COMPUTING

Llegado este punto, se han explicado los conceptos generales de Cloud y de la arquitectura
orientada a servicios (SOA), ¿es posible concluir que se trata de lo mismo? De ninguna
manera, Cloud Computing, es un nuevo modelo de prestación de servicios y tecnología, la
misma esta orientado al deployment, es decir donde se van a ejecutar las aplicaciones, en
cambio SOA es una forma de diseñar para conseguir la flexibilidad que hoy necesitan las
organizaciones, lo lleva a cabo mediante la implementación de servicios que actúan como cajas
negras, encapsulando la funcionalidad.

No cabe duda que Cloud Computing y SOA son dos conceptos totalmente independientes y que
podrían no estar relacionados: “SOA puede existir sin estar en la Cloud” y “Cloud Computing
funciona sin SOA”, pero al unir ambos conceptos podemos obtener mayores beneficios, como
la reutilización y       bajo acoplamiento, que son fundamentales para SOA          y son parte
fundamental para la elasticidad y escalabilidad de servicios en la nube.

En otras palabras, se podría decir que Cloud Computing y SOA son simbióticos porque SOA es
un “habilitador” de Cloud Computing, pero a su vez Cloud Computing (en un nivel idóneo de
abstracción) es un proveedor de servicios acorde con SOA. Por ello, la relación es simbiótica en
cuanto a que SOA y Cloud Computing (“diferentes especies”) se “asocian” para que ambas
saquen provecho gracias a esa asociación

Construcción de Sistemas II
Ing. V. Ledesma / Ing. A. Marín                                                          Página 26
También puede leer