SlideShare una empresa de Scribd logo
1
UNIVERSIDAD TÉCNICA DEL NORTE
INSTITUTO DE POSTGRADO
MAESTRÍA EN INGENIERÍA DE SOFTWARE II
PROMOCIÓN
COMPUTACIÓN EN LA NUBE
Investigación sobre API´S de agregación y cómputo masivo
Docente: Fredy Tapia, Ing. Msg.
Maestrantes:
 Andrea Guevara
 Gabriela Valencia
 Alexandra Juma
25 de noviembre de 2016
Ibarra – Ecuador
2
Indice
APIs de Agregación................................................................................................................. 3
APIs REST ......................................................................................................................... 3
APIs de Agregación ............................................................................................................. 3
Ejemplo .......................................................................................................................... 4
Modelos de APIs Agregadas en el mercado ......................................................................... 5
Cómputo Masivo..................................................................................................................... 8
Ejemplo de Proyecto ............................................................................................................ 8
Conclusiones ........................................................................................................................ 12
Glosario ............................................................................................................................... 12
Referencias........................................................................................................................... 12
3
APIs de Agregación
APIs REST
REST, REpresentational State Transfer, es el tipo de arquitectura más natural y estándar para
crear APIs para servicios orientados a Internet. (SOA). En los APIs REST el número de
solicitudes(llamadas) al servidor son recurrentes debido a su naturaleza genérica y
granularidad; cada llamada devuelve sólo una parte de la funcionalidad para una experiencia
de usuario dado, lo que requiere aplicaciones cliente para hacer múltiples llamadas que
necesitan ser montados con el fin de ser una sola experiencia de usuario. Este modelo de
interacción se ilustra en el siguiente diagrama:
APIs de Agregación
Para reducir las múltiples llamadas inherente a la API REST, las discretas solicitudes deben
realizarse en una sola petición optimizado para un cliente determinado. La ventaja es que el
dispositivo paga el precio de una latencia WAN y aprovecha la baja latencia y el potente del
lado del servidor en el hardware. Como efecto secundario, esto también elimina las
APIs
Agregación
Computo
Masivo
4
redundancias que se producen para cada petición entrante. Este modelo de interacción se ilustra
en el siguiente diagrama:
Una petición optimizada como el modelo anterior debe abarcar el paralelismo del lado del
servidor para al menos el mismo nivel que el alcanzado previamente a través de múltiples
peticiones de red del cliente. Debido a que en el lado del servidor las solicitudes paralelizadas
se están ejecutando en la misma red.
Ejemplo
API Agregación por Lua y Nginx en una aplicación móvil de calificación de palabras
según la carga emocional más positiva.
Con concurrencia de 1 proceso, por solicitud nos referimos a la carga de la página de un click
en enviar para obtener los resultados (esto se traduce en múltiples peticiones a la API REST).
El resultado del experimento son los siguientes:
5
La aplicación móvil cuando se utilizan las llamadas AJAX asíncronas típicos (rojo), el usuario
final ve un promedio de tiempo de carga de página de 815 ms, se define como una mala
experiencia de usuari. Y cuando se utiliza las APIs agregadas, el tiempo medio de carga de la
página podría bajar a 278 ms (barras verdes).
Modelos de APIs Agregadas en el mercado
Existe una amplia diversidad en cómo se obtienen los resultados de las empresas que ofertan
APIS de agregación. Algunos tienen una relación de tipo uno a uno: extraen datos de una fuente
de API y la envían a otra. Algunos tienen un modelo de varios a uno que extrae servicios y
datos de múltiples fuentes de API y lo entrega en una salida, por ejemplo, una visualización.
Recientemente, ha surgido un servicio de agregación más reciente que ofrece soluciones de
muchos a uno que dibujan servicios y datos de múltiples APIs y luego lo vuelven a empaquetar
en una API para que los usuarios finales puedan acceder.
Los servicios extraen contenido basado en palabras clave relevantes (o hashtags) y lo muestran
en un formato establecido. Utilizan API para recopilar los datos de fuentes de medios externos
y luego empaquetan los resultados, a menudo actualizando periódicamente los feeds en tiempo
real (refrescando las llamadas a la API con una duración de 10 minutos aproximadamente).
Entre algunos servicios, los planes de suscripción avanzada pueden proporcionar los resultados
a los clientes finales en formato API.
6
DESCRIPCIÓN 1. API AGREGADAS
PARA
AUTOMATIZACIÓN
2. API AGREGADAS PARA
PRODUCCIÓN CREATIVA
3. AGREGACIÓN DE API
PARA ENTREGA DE
CONTENIDO
4. API AGREGADAS PARA LA
VISUALIZACIÓN DE BI Y
ANÁLISIS
OBJETIVO Extrae datos de API de una
fuente hace el envió a otra.
Extraer datos de múltiples fuentes,
los combina y luego los envía
como la salida
Extrae datos de varias API y envía
a una salida visual
Extrae datos de múltiples fuentes de
API y los envía a una salida visual
(panel o dashboard).
CARACTERISTICAS Con niveles de precios
establecidos por número de
integraciones y / o número de
llamadas de API realizadas
cada mes.
Tienden a tener una biblioteca
de SaaS y (cada vez más)
servicios de IoT que se pueden
integrar con cualquier otro
servicio para crear un flujo de
trabajo automatizado.
La empresa utiliza las API del
servicio externo para crear
integraciones que permiten a
los clientes que no son
programadores integrar
fácilmente las API en un flujo
de trabajo transparente.
Las agencias creativas y las
empresas digitales de relaciones
públicas son un sector en
crecimiento de los consumidores
de la API, no solo utilizando API
para monitorear análisis de
marketing o medios sociales, sino
como parte de la campaña de
relaciones públicas.
Los servicios extraen contenido
basado en palabras clave relevantes
(o hashtags) y lo muestran en un
formato establecido.
Utilizan API para recopilar los
datos de fuentes de medios
externos y luego empaquetan los
resultados, a menudo actualizando
periódicamente los feeds en tiempo
real (refrescando las llamadas a la
API con una duración de 10
minutos aproximadamente).
Entre algunos servicios, los planes
de suscripción avanzada pueden
proporcionar los resultados a los
clientes finales en formato API.
Modelo de suscripción.
Agregadores de automatización,
servicios de tablero de instrumentos
como Ducksboard proporcionar una
biblioteca de los servicios que se
pueden extraer de (detrás de las
escenas, el acceso a la API
correspondiente), junto con los datos
de la compañía privada para crear la
analítica y paneles de inteligencia
empresarial para los usuarios finales.
7
EJEMPLOS DE
PROVEEDORES
IFTTT, Zapier, Itduzzit,
Temboo.
Zapier es uno de los
proveedores más grandes en
este espacio y acaba de
terminar una revisión de su
interfaz de usuario.
Temboo toma un tacto
ligeramente diferente: su
servicio ayuda a los
programadores a conectar
varias API en un flujo de
trabajo automatizado y luego
crea los fragmentos de código
que un consumidor-
desarrollador puede pegar en
su aplicación.
Fujitsu RunMyProcess utiliza
fuentes API para crear y
automatizar flujos de trabajo
extensos en todo el proceso,
no sólo para tareas
individuales.
Creative agencies (Deportivo)
utiliza las API como parte de su
"paleta creativa" para diseñar
campañas digitales para sus
clientes de marca. Tiene unas API
agregadas de una variedad de
fuentes para crear campañas
atractivas en medios sociales o en
espacios públicos para interactuar
con los públicos objetivo.
Digital PR firms
Swayy, Tagboard. Ducksboard, Adigami, Sush.io, Good
Data.
Ducksboard proporciona una
biblioteca de los servicios que
pueden extraer, junto con datos
privados para crear paneles analíticos
y de inteligencia empresarial para los
usuarios finales, que generan
competencia, rentabilidad y
crecimiento.
sush.io se enfoca en los paneles de
análisis de marketing basados en el
uso de feeds API de proveedores de
SaaS de marketing.
Good Data ofrece un servicio
dirigido a clientes empresariales.
Adigami agrupan las API agregadas
para que se repita en una sola API.
8
Cómputo Masivo
Trabajar con grandes volúmenes de datos es prácticamente imposible con los recursos
disponibles en las computadoras personales modernas. Para lidiar con este problema se divide
la tarea en partes que trabajan de forma independiente. Esto es conocido como cómputo en
paralelo (cómputo masivo) y puede realizarse sobre distintos núcleos en una misma
computadora o sobre diferentes computadoras agrupadas en un clúster. Un clúster es un
conjunto de computadoras que colaboran en la solución de una tarea.
El presente documento analiza la implementación de proyecto utilizando computación masiva.
Ejemplo de Proyecto
Consiste en la implantación de un nuevo sistema de clustering o computación masiva para el
Departamento de Lenguajes y Sistemas Informáticos de la Universitat Politècnica de
Catalunya.
Las principales actividades del departamento son la docencia y la investigación. Es esta faceta
la que requiere de una gran potencia de cálculo dada la complejidad y variedad de los proyectos
que se tratan.
Durante el proyecto se lleva a cabo un análisis de los requisitos para el nuevo sistema de
clustering, se estudia las distintas opciones para realizar una propuesta que finalmente se
implementará.
Análisis preliminar
Situación actual
En el momento de comenzar el proyecto, el Departamento de Lenguajes y Sistemas
Informáticos contaba con tres clusters de computación. Cada uno ellos propiedad de un grupo
de investigación distinto.
El modelo HPC(High performance Computing o cómputo de alto rendimiento) basado en
openMosix[1] que proporcionaba un entorno confortable y productivo para la cantidad inicial
de usuarios, ha quedado obsoleto ante el continuo crecimiento tanto en número de usuarios
como en necesidades de cálculo y espacio de disco.
9
Igualmente, el esquema lógico de la infraestructura hardware, así como el sistema que sustenta
los datos de usuario, no cuentan con ningún mecanismo que proporcione tolerancia a fallos
(caída de un nodo, fallo de un disco) ni alta disponibilidad.
Objetivos del proyecto
La finalidad de este proyecto es doble. Por una parte, la sustitución de los clusters por uno
nuevo que se adapte a las nuevas necesidades del Departamento y por otra, la creación de una
documentación que sirva como referencia técnica al Laboratorio de Cálculo.
El sistema debe proveer a los usuarios un entorno de trabajo sencillo, amigable y proporcionar
una escalabilidad que permita afrontar el futuro sentando unas bases sólidas.
Sistemas de Clustering
Cluster
Conjunto de hardware y software que reúne a grupos de ordenadores que, unidos mediante
redes de alta velocidad, trabajan de forma conjunta en la resolución de problemas.
Cualquier cluster ofrece uno o varios de los siguientes servicios:
 Alto rendimiento
 Alta disponibilidad
 Balanceo de carga
 Escalabilidad
Software de Clustering
Es necesario un software o middleware que se encargue de distribuir los trabajos de los usuarios
entre los nodos disponibles de forma óptima.
openMosix
Middleware de los tres clusters en producción.
Funcionamiento de openMosix:
 Migración de procesos: Cada proceso tiene su nodo raíz (UHN, Unique Home Node)
que se corresponde con el nodo que lo ha creado.
 Memory ushering: Este subsistema se encarga de migrar las tareas que superan la
memoria disponible en el nodo en el que se ejecutan.
 Mosix File System (MFS): MFS permite que sistemas de ficheros de nodos remotos
sea accesibles localmente.
10
 Direct File System Access (DFSA): esta opción permite a los procesos hacer
operaciones de E/S de forma local en nodos remotos.
Diseño e implementación
Estudio, análisis y diseño de una solución
Una vez explicados los distintos componentes que forman un cluster, se dispone a revisar las
especificaciones y concretar los requisitos del proyecto.
El análisis de los requisitos llevará a lo largo del proyecto a plantear varios diseños y
arquitecturas posibles para el nuevo cluster, que tras implementarlos y llevar a cabo las
pertinentes pruebas de integración, estabilidad y rendimiento conducirán a la propuesta final.
Análisis del sistema inicial
El Departamento de LSI (Lenguajes y Sistemas Informáticos) tiene tres clusters de
computación. Cada uno de ellos era independiente de los otros, tanto a nivel físico como lógico.
Se trata de tres clusters del mismo tipo, diferenciándose sólo en el número de nodos que lo
conforman.
A nivel hardware, cada cluster está compuesto de una serie de máquinas (PCs enracables)
conectados a una red privada mediante un switch gigabit ethernet. Una de las máquinas está
conectada a la red de LSI y a la red privada del cluster, sirviendo de puerta de acceso al mismo.
A nivel software todas las máquinas que pertenecen a un mismo cluster cuentan con el mismo
sistema operativo y la misma imagen de kernel, requisito imprescindible al tratarse de máquinas
con un sistema de clustering tipo SSI[2] (Single System Image).
Los motivos que llevan a abandonar el modelo openMosix de cluster son los siguientes:
Antiguo cluster Requerimientos nuevos cluster
No tiene ningún mecanismo de limitación de
recursos: cualquier usuario puede, en un
momento dado, lanzar tantos procesos como
quiera y saturar un nodo o el cluster
completo.
El nuevo cluster debe ofrecer un servicio
igual al que ofrece el sistema actual, es decir,
debe ser capaz de procesar los trabajos de los
usuarios y debe disponer de un espacio de
disco para albergar sus datos y programas en
un sistema de disco centralizado
Presenta problemas con varios tipos de
aplicaciones: el mecanismo de migración
El middleware elegido debe ser
personalizable a nivel de gestión de colas,
11
automática de openMosix no funciona con
aplicaciones que hacen uso de threads o
memoria compartida.
proyectos, grupos de usuarios, etc. Además,
debe contar con un software de gestión de
imágenes de sistema que permita instalar y
modificar fácilmente el sistema en los nodos
que la componen, de forma que la instalación
y posterior mantenimiento de los nodos (más
de 50) sea asumible.
Estrechamente ligado al kernel: openMosix
impone el kernel de los nodos, siendo el más
reciente de la rama 2.4, sin soporte para el
hardware de los nuevos nodos.
El cluster debe ser monitorizable, es decir,
el administrador debe tener las herramientas
necesarias para controlar el estado de sus
componentes y percatarse de cualquier fallo.
Arquitectura propuesta (GlusterFS)
Cada uno de los seis nodos servidores de disco cuenta con dos discos de 750 GB, que tras
instalar sistema y swap deja una partición exportable de unos 700GB. Lo habitual en los
servidores es utilizar una configuración RAID1 que permita el fallo de un disco sin pérdida de
datos. En el caso del sistema GlusterFS con AFR (Automatic File Replication) los datos de
cada nodo ya están replicados en su peer, por lo que optamos por una configuración RAID0.
De esta manera no se pierde espacio y el acceso al volumen resultante es más rápido.
Pruebas
Test ad-hoc
El siguiente test consiste en la ejecución concurrente de procesos con un alto uso de E/S.
A continuación, se muestra los resultados de la comparación de las pruebas obtenidos
correspondientes a ejecutar un determinado número de procesos de lectura entre las
arquitecturas: Lustre y GlusterFS.
12
Conclusiones
 El tiempo de respuesta de APIs agregadas tiene una considerable disminución
comparado con la API de Ajax
 A partir de los resultados obtenidos de las pruebas del nuevo sistema de clustering o
computación masiva para el Departamento de Lenguajes y Sistemas Informáticos de la
Universitat Politècnica de Catalunya elige el modelo de computación masiva
GLusterFS.
Glosario
[1] Sistema de cluster para Linux que permite a varias máquinas actuar como un único
sistema multiprocesador
[2] Todas las computadoras vinculadas dependen de un sistema operativo común
[3] Volumen de trabajo o de información neto que fluye a través de un sistema
[4] Software de replicación de dispositivos de bloque (discos duros, particiones, volúmenes,
etc.)
Referencias
 Nuevo sistema de clustering. Revisado el 25 de noviembre de
2016. https://rdlab.cs.upc.edu/docu/html/cluster/#_Toc219597953
13
 API Aggregation: Why It Matters and Eight Different Models. Revisado 25 de
noviembre de 2016, http://www.programmableweb.com/news/api-aggregation-why-
it-matters-and-eight-different-models/2013/12/13
 Optimizing the Netflix API. Revisado el 25 de noviembre de 2016.
http://techblog.netflix.com/2013/01/optimizing-netflix-api.html
 API AGGREGATOR. Revisado el 25 de noviembre de 2016.
https://github.com/solso/api-aggregator#architecture
 Extending REST APIs with API Aggregator. Revisado el 25 de noviembre de 2016.
http://tech.3scale.net/2013/04/18/accelerate-your-mobile-api-with-nginx-and-lua/

Más contenido relacionado

DOC
б.м. владимирский
PDF
Issue 2
PPTX
Targeted and Unbiased Screen for Genetic Suppressors of the Legionella pneumo...
PPT
Olkiluoto: Lupaukset Vs Todellisuus
PDF
Nutrition manual
DOCX
QC201601
PDF
AMVIC Registrant Certificate
PPT
10G Verbreij Nieuwe kansen 1.3
б.м. владимирский
Issue 2
Targeted and Unbiased Screen for Genetic Suppressors of the Legionella pneumo...
Olkiluoto: Lupaukset Vs Todellisuus
Nutrition manual
QC201601
AMVIC Registrant Certificate
10G Verbreij Nieuwe kansen 1.3

Destacado (8)

DOC
Apuntes Estrategias De Mkt Capitulo 1
PDF
Composer tools and frameworks for drupal.ppt
PDF
Bachelor of Commerce in Economics and Law - Degree (2)
PPTX
Organizational communication
PDF
Raccontarsi con il cibo - social food experience
DOC
Jatorrizkoa euskaraz 1
PPTX
Пробация в Нидерландах (Лео Тигес)
Apuntes Estrategias De Mkt Capitulo 1
Composer tools and frameworks for drupal.ppt
Bachelor of Commerce in Economics and Law - Degree (2)
Organizational communication
Raccontarsi con il cibo - social food experience
Jatorrizkoa euskaraz 1
Пробация в Нидерландах (Лео Тигес)
Publicidad

Similar a Apis Agregadas computomasivo (20)

PDF
API Agregadas y Computo Masivo
PPTX
API Agregadas
PPTX
RAML
PPTX
Mulesoft Meetup Murcia - Connecting People
PPTX
Analisis y Diseño De Sistemas - Oneyda Perez - Dannery Ortega - Jean Carlos Z...
PPTX
Mada metodología ágil de desarrollo de apis
ODP
Documertar APIs - Meetup.js
PPTX
Chapter 4 build
PDF
Foro innovacion beeva 28 01-2014 -open business and the business of APIs
PPTX
La transformacion digital en nuestra vida cotidiana. Un vistazo a las APIs
PPTX
Cómo aumentar el ciclo de vida de las infraestructuras con APIS abiertas
PPTX
Mulesoft Anypoint platform: Design Center
PPTX
Arquitectura de Apis & GRPC | #JCONFPERU
PPTX
Apis killed the website star.pptx
PPTX
Reestructuración y Optimización de una de una Aplicación Monolítica.
PPTX
Mulesoft: Plataforma empesarial de integraciones
PPTX
Introducción a Azure App Service - MUG Buenos Aires
PDF
Modelos de API Para El Diseño de Servicios
PDF
Api managers
API Agregadas y Computo Masivo
API Agregadas
RAML
Mulesoft Meetup Murcia - Connecting People
Analisis y Diseño De Sistemas - Oneyda Perez - Dannery Ortega - Jean Carlos Z...
Mada metodología ágil de desarrollo de apis
Documertar APIs - Meetup.js
Chapter 4 build
Foro innovacion beeva 28 01-2014 -open business and the business of APIs
La transformacion digital en nuestra vida cotidiana. Un vistazo a las APIs
Cómo aumentar el ciclo de vida de las infraestructuras con APIS abiertas
Mulesoft Anypoint platform: Design Center
Arquitectura de Apis & GRPC | #JCONFPERU
Apis killed the website star.pptx
Reestructuración y Optimización de una de una Aplicación Monolítica.
Mulesoft: Plataforma empesarial de integraciones
Introducción a Azure App Service - MUG Buenos Aires
Modelos de API Para El Diseño de Servicios
Api managers
Publicidad

Último (20)

PDF
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
PPTX
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
PDF
Electricidad-Estatica-Peligros-Prevencion.pdf
PDF
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
PPT
357161027-seguridad-industrial-diapositivas-ppt.ppt
PPTX
Contexto Normativo NSR10, presentacion 2025
PPTX
clase MICROCONTROLADORES ago-dic 2019.pptx
PDF
Perfilaje de Pozos _20250624_222013_0000.pdf
DOC
informacion acerca de la crianza tecnificada de cerdos
PDF
manual-electricidad-automotriz-sistemas-electricos-bateria-alumbrado-iluminac...
PDF
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
PPT
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
PPTX
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
PDF
1132-2018 espectrofotometro uv visible.pdf
PDF
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
PDF
Oficio SEC 293416 Comision Investigadora
PPTX
Manual ISO9001_2015_IATF_16949_2016.pptx
PDF
Módulo-de Alcance-proyectos - Definición.pdf
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
Electricidad-Estatica-Peligros-Prevencion.pdf
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
357161027-seguridad-industrial-diapositivas-ppt.ppt
Contexto Normativo NSR10, presentacion 2025
clase MICROCONTROLADORES ago-dic 2019.pptx
Perfilaje de Pozos _20250624_222013_0000.pdf
informacion acerca de la crianza tecnificada de cerdos
manual-electricidad-automotriz-sistemas-electricos-bateria-alumbrado-iluminac...
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
1132-2018 espectrofotometro uv visible.pdf
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
Oficio SEC 293416 Comision Investigadora
Manual ISO9001_2015_IATF_16949_2016.pptx
Módulo-de Alcance-proyectos - Definición.pdf

Apis Agregadas computomasivo

  • 1. 1 UNIVERSIDAD TÉCNICA DEL NORTE INSTITUTO DE POSTGRADO MAESTRÍA EN INGENIERÍA DE SOFTWARE II PROMOCIÓN COMPUTACIÓN EN LA NUBE Investigación sobre API´S de agregación y cómputo masivo Docente: Fredy Tapia, Ing. Msg. Maestrantes:  Andrea Guevara  Gabriela Valencia  Alexandra Juma 25 de noviembre de 2016 Ibarra – Ecuador
  • 2. 2 Indice APIs de Agregación................................................................................................................. 3 APIs REST ......................................................................................................................... 3 APIs de Agregación ............................................................................................................. 3 Ejemplo .......................................................................................................................... 4 Modelos de APIs Agregadas en el mercado ......................................................................... 5 Cómputo Masivo..................................................................................................................... 8 Ejemplo de Proyecto ............................................................................................................ 8 Conclusiones ........................................................................................................................ 12 Glosario ............................................................................................................................... 12 Referencias........................................................................................................................... 12
  • 3. 3 APIs de Agregación APIs REST REST, REpresentational State Transfer, es el tipo de arquitectura más natural y estándar para crear APIs para servicios orientados a Internet. (SOA). En los APIs REST el número de solicitudes(llamadas) al servidor son recurrentes debido a su naturaleza genérica y granularidad; cada llamada devuelve sólo una parte de la funcionalidad para una experiencia de usuario dado, lo que requiere aplicaciones cliente para hacer múltiples llamadas que necesitan ser montados con el fin de ser una sola experiencia de usuario. Este modelo de interacción se ilustra en el siguiente diagrama: APIs de Agregación Para reducir las múltiples llamadas inherente a la API REST, las discretas solicitudes deben realizarse en una sola petición optimizado para un cliente determinado. La ventaja es que el dispositivo paga el precio de una latencia WAN y aprovecha la baja latencia y el potente del lado del servidor en el hardware. Como efecto secundario, esto también elimina las APIs Agregación Computo Masivo
  • 4. 4 redundancias que se producen para cada petición entrante. Este modelo de interacción se ilustra en el siguiente diagrama: Una petición optimizada como el modelo anterior debe abarcar el paralelismo del lado del servidor para al menos el mismo nivel que el alcanzado previamente a través de múltiples peticiones de red del cliente. Debido a que en el lado del servidor las solicitudes paralelizadas se están ejecutando en la misma red. Ejemplo API Agregación por Lua y Nginx en una aplicación móvil de calificación de palabras según la carga emocional más positiva. Con concurrencia de 1 proceso, por solicitud nos referimos a la carga de la página de un click en enviar para obtener los resultados (esto se traduce en múltiples peticiones a la API REST). El resultado del experimento son los siguientes:
  • 5. 5 La aplicación móvil cuando se utilizan las llamadas AJAX asíncronas típicos (rojo), el usuario final ve un promedio de tiempo de carga de página de 815 ms, se define como una mala experiencia de usuari. Y cuando se utiliza las APIs agregadas, el tiempo medio de carga de la página podría bajar a 278 ms (barras verdes). Modelos de APIs Agregadas en el mercado Existe una amplia diversidad en cómo se obtienen los resultados de las empresas que ofertan APIS de agregación. Algunos tienen una relación de tipo uno a uno: extraen datos de una fuente de API y la envían a otra. Algunos tienen un modelo de varios a uno que extrae servicios y datos de múltiples fuentes de API y lo entrega en una salida, por ejemplo, una visualización. Recientemente, ha surgido un servicio de agregación más reciente que ofrece soluciones de muchos a uno que dibujan servicios y datos de múltiples APIs y luego lo vuelven a empaquetar en una API para que los usuarios finales puedan acceder. Los servicios extraen contenido basado en palabras clave relevantes (o hashtags) y lo muestran en un formato establecido. Utilizan API para recopilar los datos de fuentes de medios externos y luego empaquetan los resultados, a menudo actualizando periódicamente los feeds en tiempo real (refrescando las llamadas a la API con una duración de 10 minutos aproximadamente). Entre algunos servicios, los planes de suscripción avanzada pueden proporcionar los resultados a los clientes finales en formato API.
  • 6. 6 DESCRIPCIÓN 1. API AGREGADAS PARA AUTOMATIZACIÓN 2. API AGREGADAS PARA PRODUCCIÓN CREATIVA 3. AGREGACIÓN DE API PARA ENTREGA DE CONTENIDO 4. API AGREGADAS PARA LA VISUALIZACIÓN DE BI Y ANÁLISIS OBJETIVO Extrae datos de API de una fuente hace el envió a otra. Extraer datos de múltiples fuentes, los combina y luego los envía como la salida Extrae datos de varias API y envía a una salida visual Extrae datos de múltiples fuentes de API y los envía a una salida visual (panel o dashboard). CARACTERISTICAS Con niveles de precios establecidos por número de integraciones y / o número de llamadas de API realizadas cada mes. Tienden a tener una biblioteca de SaaS y (cada vez más) servicios de IoT que se pueden integrar con cualquier otro servicio para crear un flujo de trabajo automatizado. La empresa utiliza las API del servicio externo para crear integraciones que permiten a los clientes que no son programadores integrar fácilmente las API en un flujo de trabajo transparente. Las agencias creativas y las empresas digitales de relaciones públicas son un sector en crecimiento de los consumidores de la API, no solo utilizando API para monitorear análisis de marketing o medios sociales, sino como parte de la campaña de relaciones públicas. Los servicios extraen contenido basado en palabras clave relevantes (o hashtags) y lo muestran en un formato establecido. Utilizan API para recopilar los datos de fuentes de medios externos y luego empaquetan los resultados, a menudo actualizando periódicamente los feeds en tiempo real (refrescando las llamadas a la API con una duración de 10 minutos aproximadamente). Entre algunos servicios, los planes de suscripción avanzada pueden proporcionar los resultados a los clientes finales en formato API. Modelo de suscripción. Agregadores de automatización, servicios de tablero de instrumentos como Ducksboard proporcionar una biblioteca de los servicios que se pueden extraer de (detrás de las escenas, el acceso a la API correspondiente), junto con los datos de la compañía privada para crear la analítica y paneles de inteligencia empresarial para los usuarios finales.
  • 7. 7 EJEMPLOS DE PROVEEDORES IFTTT, Zapier, Itduzzit, Temboo. Zapier es uno de los proveedores más grandes en este espacio y acaba de terminar una revisión de su interfaz de usuario. Temboo toma un tacto ligeramente diferente: su servicio ayuda a los programadores a conectar varias API en un flujo de trabajo automatizado y luego crea los fragmentos de código que un consumidor- desarrollador puede pegar en su aplicación. Fujitsu RunMyProcess utiliza fuentes API para crear y automatizar flujos de trabajo extensos en todo el proceso, no sólo para tareas individuales. Creative agencies (Deportivo) utiliza las API como parte de su "paleta creativa" para diseñar campañas digitales para sus clientes de marca. Tiene unas API agregadas de una variedad de fuentes para crear campañas atractivas en medios sociales o en espacios públicos para interactuar con los públicos objetivo. Digital PR firms Swayy, Tagboard. Ducksboard, Adigami, Sush.io, Good Data. Ducksboard proporciona una biblioteca de los servicios que pueden extraer, junto con datos privados para crear paneles analíticos y de inteligencia empresarial para los usuarios finales, que generan competencia, rentabilidad y crecimiento. sush.io se enfoca en los paneles de análisis de marketing basados en el uso de feeds API de proveedores de SaaS de marketing. Good Data ofrece un servicio dirigido a clientes empresariales. Adigami agrupan las API agregadas para que se repita en una sola API.
  • 8. 8 Cómputo Masivo Trabajar con grandes volúmenes de datos es prácticamente imposible con los recursos disponibles en las computadoras personales modernas. Para lidiar con este problema se divide la tarea en partes que trabajan de forma independiente. Esto es conocido como cómputo en paralelo (cómputo masivo) y puede realizarse sobre distintos núcleos en una misma computadora o sobre diferentes computadoras agrupadas en un clúster. Un clúster es un conjunto de computadoras que colaboran en la solución de una tarea. El presente documento analiza la implementación de proyecto utilizando computación masiva. Ejemplo de Proyecto Consiste en la implantación de un nuevo sistema de clustering o computación masiva para el Departamento de Lenguajes y Sistemas Informáticos de la Universitat Politècnica de Catalunya. Las principales actividades del departamento son la docencia y la investigación. Es esta faceta la que requiere de una gran potencia de cálculo dada la complejidad y variedad de los proyectos que se tratan. Durante el proyecto se lleva a cabo un análisis de los requisitos para el nuevo sistema de clustering, se estudia las distintas opciones para realizar una propuesta que finalmente se implementará. Análisis preliminar Situación actual En el momento de comenzar el proyecto, el Departamento de Lenguajes y Sistemas Informáticos contaba con tres clusters de computación. Cada uno ellos propiedad de un grupo de investigación distinto. El modelo HPC(High performance Computing o cómputo de alto rendimiento) basado en openMosix[1] que proporcionaba un entorno confortable y productivo para la cantidad inicial de usuarios, ha quedado obsoleto ante el continuo crecimiento tanto en número de usuarios como en necesidades de cálculo y espacio de disco.
  • 9. 9 Igualmente, el esquema lógico de la infraestructura hardware, así como el sistema que sustenta los datos de usuario, no cuentan con ningún mecanismo que proporcione tolerancia a fallos (caída de un nodo, fallo de un disco) ni alta disponibilidad. Objetivos del proyecto La finalidad de este proyecto es doble. Por una parte, la sustitución de los clusters por uno nuevo que se adapte a las nuevas necesidades del Departamento y por otra, la creación de una documentación que sirva como referencia técnica al Laboratorio de Cálculo. El sistema debe proveer a los usuarios un entorno de trabajo sencillo, amigable y proporcionar una escalabilidad que permita afrontar el futuro sentando unas bases sólidas. Sistemas de Clustering Cluster Conjunto de hardware y software que reúne a grupos de ordenadores que, unidos mediante redes de alta velocidad, trabajan de forma conjunta en la resolución de problemas. Cualquier cluster ofrece uno o varios de los siguientes servicios:  Alto rendimiento  Alta disponibilidad  Balanceo de carga  Escalabilidad Software de Clustering Es necesario un software o middleware que se encargue de distribuir los trabajos de los usuarios entre los nodos disponibles de forma óptima. openMosix Middleware de los tres clusters en producción. Funcionamiento de openMosix:  Migración de procesos: Cada proceso tiene su nodo raíz (UHN, Unique Home Node) que se corresponde con el nodo que lo ha creado.  Memory ushering: Este subsistema se encarga de migrar las tareas que superan la memoria disponible en el nodo en el que se ejecutan.  Mosix File System (MFS): MFS permite que sistemas de ficheros de nodos remotos sea accesibles localmente.
  • 10. 10  Direct File System Access (DFSA): esta opción permite a los procesos hacer operaciones de E/S de forma local en nodos remotos. Diseño e implementación Estudio, análisis y diseño de una solución Una vez explicados los distintos componentes que forman un cluster, se dispone a revisar las especificaciones y concretar los requisitos del proyecto. El análisis de los requisitos llevará a lo largo del proyecto a plantear varios diseños y arquitecturas posibles para el nuevo cluster, que tras implementarlos y llevar a cabo las pertinentes pruebas de integración, estabilidad y rendimiento conducirán a la propuesta final. Análisis del sistema inicial El Departamento de LSI (Lenguajes y Sistemas Informáticos) tiene tres clusters de computación. Cada uno de ellos era independiente de los otros, tanto a nivel físico como lógico. Se trata de tres clusters del mismo tipo, diferenciándose sólo en el número de nodos que lo conforman. A nivel hardware, cada cluster está compuesto de una serie de máquinas (PCs enracables) conectados a una red privada mediante un switch gigabit ethernet. Una de las máquinas está conectada a la red de LSI y a la red privada del cluster, sirviendo de puerta de acceso al mismo. A nivel software todas las máquinas que pertenecen a un mismo cluster cuentan con el mismo sistema operativo y la misma imagen de kernel, requisito imprescindible al tratarse de máquinas con un sistema de clustering tipo SSI[2] (Single System Image). Los motivos que llevan a abandonar el modelo openMosix de cluster son los siguientes: Antiguo cluster Requerimientos nuevos cluster No tiene ningún mecanismo de limitación de recursos: cualquier usuario puede, en un momento dado, lanzar tantos procesos como quiera y saturar un nodo o el cluster completo. El nuevo cluster debe ofrecer un servicio igual al que ofrece el sistema actual, es decir, debe ser capaz de procesar los trabajos de los usuarios y debe disponer de un espacio de disco para albergar sus datos y programas en un sistema de disco centralizado Presenta problemas con varios tipos de aplicaciones: el mecanismo de migración El middleware elegido debe ser personalizable a nivel de gestión de colas,
  • 11. 11 automática de openMosix no funciona con aplicaciones que hacen uso de threads o memoria compartida. proyectos, grupos de usuarios, etc. Además, debe contar con un software de gestión de imágenes de sistema que permita instalar y modificar fácilmente el sistema en los nodos que la componen, de forma que la instalación y posterior mantenimiento de los nodos (más de 50) sea asumible. Estrechamente ligado al kernel: openMosix impone el kernel de los nodos, siendo el más reciente de la rama 2.4, sin soporte para el hardware de los nuevos nodos. El cluster debe ser monitorizable, es decir, el administrador debe tener las herramientas necesarias para controlar el estado de sus componentes y percatarse de cualquier fallo. Arquitectura propuesta (GlusterFS) Cada uno de los seis nodos servidores de disco cuenta con dos discos de 750 GB, que tras instalar sistema y swap deja una partición exportable de unos 700GB. Lo habitual en los servidores es utilizar una configuración RAID1 que permita el fallo de un disco sin pérdida de datos. En el caso del sistema GlusterFS con AFR (Automatic File Replication) los datos de cada nodo ya están replicados en su peer, por lo que optamos por una configuración RAID0. De esta manera no se pierde espacio y el acceso al volumen resultante es más rápido. Pruebas Test ad-hoc El siguiente test consiste en la ejecución concurrente de procesos con un alto uso de E/S. A continuación, se muestra los resultados de la comparación de las pruebas obtenidos correspondientes a ejecutar un determinado número de procesos de lectura entre las arquitecturas: Lustre y GlusterFS.
  • 12. 12 Conclusiones  El tiempo de respuesta de APIs agregadas tiene una considerable disminución comparado con la API de Ajax  A partir de los resultados obtenidos de las pruebas del nuevo sistema de clustering o computación masiva para el Departamento de Lenguajes y Sistemas Informáticos de la Universitat Politècnica de Catalunya elige el modelo de computación masiva GLusterFS. Glosario [1] Sistema de cluster para Linux que permite a varias máquinas actuar como un único sistema multiprocesador [2] Todas las computadoras vinculadas dependen de un sistema operativo común [3] Volumen de trabajo o de información neto que fluye a través de un sistema [4] Software de replicación de dispositivos de bloque (discos duros, particiones, volúmenes, etc.) Referencias  Nuevo sistema de clustering. Revisado el 25 de noviembre de 2016. https://rdlab.cs.upc.edu/docu/html/cluster/#_Toc219597953
  • 13. 13  API Aggregation: Why It Matters and Eight Different Models. Revisado 25 de noviembre de 2016, http://www.programmableweb.com/news/api-aggregation-why- it-matters-and-eight-different-models/2013/12/13  Optimizing the Netflix API. Revisado el 25 de noviembre de 2016. http://techblog.netflix.com/2013/01/optimizing-netflix-api.html  API AGGREGATOR. Revisado el 25 de noviembre de 2016. https://github.com/solso/api-aggregator#architecture  Extending REST APIs with API Aggregator. Revisado el 25 de noviembre de 2016. http://tech.3scale.net/2013/04/18/accelerate-your-mobile-api-with-nginx-and-lua/