WSO2 BAM = Hadoop, Hive, Cassandra, Google Gadget, WSO2 Carbon.
En esta ocasión presentamos el producto WSO2 BAM , analizaremos sus ventajas y arquitectura.
En esta ocasión presentamos el producto WSO2 BAM , analizaremos sus ventajas y arquitectura.
WSO2
El fabricante WSO2
ofrece una completa suite de productos Open Source SOA . Son contribuidores de muchos productos de
Apache incluyendo: Apache Axis, Apache Rampart, Apache Synapse y más. Los
productos de WSO2 se distribuyen bajo licencia Apache. Algo que destacar es que
la versión de libre descarga de sus productos también es única y es la versión
“productiva”, no manejan una versión alternativa “community” como otros
vendedores.
BAM
Según Gartner, Business
Active Monitoring (BAM) describe los
procesos y tecnologías que nos permiten el análisis de indicadores de negocio
basados en data de tiempo real.
BAM es usado para mejorar la velocidad y efectividad de
operaciones de negocio manteniendo la pista de que lo que esta pasando y
haciendo visibles los posibles problemas. El concepto BAM puede ser
implementado con muchos tipos de herramientas de software, no es una especificación de software.
BIG DATA
Es el termino para un conjunto de datos muy extenso y
diverso que es difícil de procesar usando herramientas de base de datos o
aplicaciones tradicionales de procesamiento de datos. Los retos incluyen
capturar, subsanar, almacenar, buscar , compartir, transferir, analizar y
visualizar.
WSO2 BAM
Es un producto que nos ofrece un BAM de “propósito general” , esto quiere
decir que no solo es para monitorear indicadores de procesos de negocio , sino
casi cualquier fuente de datos que conectemos
usando su API .
BAM usa Hadoop para procesar gran cantidad de datos en poco
tiempo, por esto también es una herramienta que complementa una solución Big Data.
Para monitorear otros productos WSO2 tiene funcionalidad Out
of the Box, muy sencilla y simple de configurar.
COMO FUNCIONA WSO2
BAM
A continuación veremos paso a paso BAM agrega, analiza y presenta los datos:
Los datos llegan de sistemas externos ( Agregar Datos ) , esto se puede hacer
síncrona o asíncronamente usando una cola, para el envío se usa el API Data Agent , esto es : tenemos un API
REST para enviar los datos al servidor entonces el cliente lo podemos escribir
en cualquier lenguaje, si es JAVA tenemos librerías para hacerlo de forma
fácil.
PASO 2
Los datos son recibidos por el componente Data Receiver, este componente los
carga en la base de datos Cassandra , donde están los datos no procesados.
PASO 3
Para analizar los
datos, se usa Apache Hive , este componente recoge los datos de Cassandra ,
los analiza y los inserta en la base de datos relacional ( por defecto H2,
puede ser Oracle, Mysql , etc) . Apache Hive nos abstraer de la fuente y destino
de datos, con esto podemos concentrarnos en implementar los queryes Hive que
son sql “friendly” los cuales analizan
los datos. Estos querys pueden
programarse para ejecutarse cada X segundos. Apache Hive por debajo usa procesos Hadoop para ejecutar la
analítica de querys Hive en paralelo y usando map reduce.
PASO 4
Los datos ya analizados (los resultados) son insertados en
la base de datos relacional, listos para que sean explotados por las
herramientas de visualización.
PASO 5
Para presentar los
datos, extraen la data procesada de la base de datos relacional. Tenemos
tres componentes: un dashboard web , reportes con Jaspers Reports y gadgets con
WSO2 Gadget , estos últimos los más interesantes, descritos mas adelante.
En una organización grande es muy común tener departamentos y dominios diferentes de información lo cual va unido a la necesidad de tener separar totalmente la administración/configuración y datos, esto se puede lograr sin necesidad de crear otra instancia de este, reusando la misma infraestructura.
CAPACIDAD DE VISUALIZACION
El input de los componentes de visualización es por defecto
la base de datos relacional H2 ,
Para esta capacidad se tiene tres componentes:
Dashboard : para indicadores en tiempo real en una interfaz
web , no consumible desde otra aplicación .
Reports : para tener reportes impresos se usa Japer Reports
.
Gadgets : el componente más interesante de los tres, un
gadget sigue la especificación Google Gadget son pequeñas porciones consumibles como los “portlets” ,se pueden
desplegar en cualquier servidor que siga la especificación, por ejemplo
JIRA o Confluce, formatean los datos
usando solo : CSS, HTML5 y javascript, los datos llegan de un servicio REST
implementado con jaggery. Pueden ser
construidos de cero o basándonos en uno generado con Gadget Generartor Tool
.
CAPACIDAD DE ESCALAMIENTO Y ALTA DISPONIBILIDAD
WSO2 BAM puede crecer horizontalmente, cada uno de sus
componentes se puede duplicar y ser parte de un cluster, también puede ser
desplegado en alta disponibilidad.
Los “Data Receiver” se pueden configurar y crecer en número,
con esto se evita posibles problemas de cuello de botella cuando hay alto
tráfico de datos.
La base de datos Cassandra
puede formar un cluster usando varias máquinas, WSO2 BAM reconoce esta
configuración y la usa.
Los procesos de análisis Hadoop se pueden hacer en varias
máquinas, de esta forma tenemos procesamiento intensivo y rápido. Finalmente la aplicación Web de visualización ( Reportes, Dashboard y Gadgets ) también se puede clusterizar , está ejecutándose sobre un servidor de aplicación WSO2 Carbon .