Instalación y configuración de Apache Karaf como Servicio de Windows para Talend ESB

Instalación y configuración de Apache Karaf como Servicio de Windows para Talend ESB

ANDROID

 

Apache Karaf es una aplicación basada en el estándar OSGi (Open Services Gateway Initiative) que ofrece un contenedor muy ligero donde desplegar módulos, componentes y aplicaciones de forma aislada e independiente. Entre sus ventajas destaca el despliegue en caliente, configuración dinámica, acceso remoto, gestión de instancias, etc. Es el ESB que viene integrado por defecto con Talend y nos va a permitir publicar y gestionar nuestros Web Services de una forma sencilla y rápida. Para nuestra pequeña guía vamos a utilizar Servicios Web REST que hemos desarrollado también con Talend a través de sus componentes específicos (RESTful), exportándolos como .jar que luego desplegaremos en Karaf. El objetivo es instalar este servidor de componentes como servicio de Windows, de forma que garanticemos que siempre estará levantado aunque se reinicie la máquina. Otra opción es lanzar el .bat con una tarea programada en Windows.

 

Instalación de Karaf

Como cualquier otra aplicación desarrollada en JAVA, necesitaremos instalar en nuestra máquina un JRE para poder correr la aplicación. Podéis descargar desde aquí la última versión a día de hoy: JRE 7. Karaf viene integrado el paquete Talend Open Studio for ESB (TOS), que podéis descargar de forma gratuita desde aquí. No es necesario descargar el IDE completo a no ser que vayáis a utilizarlo para desarrollar vuestros servicios web, con que descarguemos el Runtime es suficiente (~400 MB). Una vez descargado, descomprimimos el ZIP en nuestro disco duro. El paquete contiene 10 directorios y tres ficheros:
Instalación y configuración de Apache Karaf como Servicio de Windows para Talend ESB

 

 Configuración de Karaf como Servicio de Windows

El equipo de Talend ha desarrollado una pequeña guía que nos explica paso a paso cómo instalar un servicio de Windows que ejecute Talend. Podéis consultarla desde aquí (necesitamos registrarnos). El proceso consiste en instalar una herramienta auxiliar denominada Wrapper, sobre la que vamos a ejecutar varias sentencias para generar e instalar el servicio de Windows. Nos dirigimos al paquete descargado y abrimos la carpeta containerbin, donde encontraremos el fichero TRUN.BAT que ejecutamos. Se abre una consola de línea de comandos, donde deberemos escribir las siguientes instrucciones:

  1.  Instalamos el Wrapper:

    features:install wrapper

  2. Una vez instalado el Wrapper, lo utilizamos para generar nuestro servicio de Windows. Para ello escribimos:

    wrapper:install -s AUTO_START -n Karaf  -d Talend-ESB-Container -D “Karaf”

  3. Instalamos el servicio en Windows (importante: la ruta dependerá de donde hayas descomprimido el paquete de Talend):

    D:Talend5.2.2Runtime_ESBSEcontainerbinKaraf-service.bat install

 

Instalación y configuración de Apache Karaf como Servicio de Windows para Talend ESB

Una vez creado e instalado el Servicio de Windows, necesitamos configurarlo para que siempre esté levantado, aunque se reinicie la máquina.

  1. Abrimos el panel de control de Servicios de Windows: START > Administrative Tools > SERVICES ó escribimos SERVICES en la ventana de EJECUTAR de la barra de inicio
  2. Buscamos el servicio recién creado, Karaf, pulsamos con el botón derecho sobre él, y hacemos clic sobre PROPERTIES.
  3. En la primera pestaña (General) desplegamos la opción de configuración STARTUP TYPE y seleccionamos Automatic (Delayed Start).

Instalación y configuración de Apache Karaf como Servicio de Windows para Talend ESB

Sin Comentarios

Configurar tarea para comprimir fichero en proceso SSIS (SQL Server Integration Services)

Configurar tarea para comprimir fichero en proceso SSIS (SQL Server Integration Services)

Entre otras cosas, la plataforma SSIS de Microsoft (SQL Server Intregation Services) nos permite programar un flujo de tareas secuenciales o paralelas que se encarguen de la extracción y carga de datos desde diferentes orígenes, transformaciones, importación y exportación, ejecución de otras aplicaciones, etc. Muy utilizado como complemento o directamente como herramienta ETL, una tarea muchas veces recurrida en estos entornos es la de envío de correos con alertas, trazas, mensajes o informes adjuntos con los datos procesados. En esta última situación resulta muy recomendable comprimir previamente cualquier documento adjunto, tanto para agilizar el proceso de envío, como para sortear límites técnicos, como la configuración del tamaño máximo de ficheros adjuntos en el gestor de correo de SQL Server, al que normalmente no se tiene acceso en un proyecto convencional.

Para poder configurar una tarea que comprima un fichero necesitamos tener instalado previamente en nuestro servidor una herramienta de compresión: Winrar, Winzip, 7zip, etc. (sí, parece obvio, pero en entornos de producción este tipo de requerimientos suele ser complejo por unas cosas o por otras). En nuestro caso, vamos a utilizar como ejemplo la open source 7zip que podéis descargar gratuitamente. Si se va a utilizar otro programa simplemente hay que acudir a la documentación y ver los parámetros que necesita para invocarlo desde línea de comandos.

Configurar tarea para comprimir fichero en proceso SSIS (SQL Server Integration Services)

En SSIS disponemos de la “tarea” EXECUTE PROCESS TASK que nos permite ejecutar aplicaciones desde línea de comandos o ficheros batch. Tiene tres pestañas, General (donde podemos especificar nombre y descripción), Process (la más importante, donde vamos a indicar el programa o batch a lanzar y sus argumentos) y Expressions, muy útil para  modificar dinámicamente alguno de los parámetros que vamos a ejecutar por línea de comandos. Situándonos en la pestaña de Process, necesitamos configurar:

  • Executable: ruta absoluta del .exe de la herramienta de compresión (7zip, winzip, winrar, etc)
  • Arguments: parámetros para comprimir un fichero (cambian en función de la herramienta de compresión). En el caso de 7zip,  que es el que se ha usado, se pasan 4 parámetros:

7zip

Para configurar con 7zip:

a -tzip c:\Users\MiUsuario\Desktop\prueba.zip C:\Users\MiUsuario\Desktop\prueba.txt

  • a: para utilizar la función ADD, que nos permite crear un nuevo fichero comprimido
  • –tzip: formato de compresión. El parámetro es –t, seguido del formato: 7z, zip, gzip, bzip2 o tar (-t7z, -tgzip, etc).
  • Ruta destino: ubicación y nombre del fichero comprimido que vamos a generar
  • Ruta origen: fichero origen a comprimir
  • Contraseña: para añadir una contraseña simplemente añadimos la instrucción -pCONTRASEÑA. El parámetro “-p” indica que el siguiente texto concatenado es la contraseña para abrir el fichero comprimido.

Winrar

En el caso de que utilicemos Winrar la forma de invocarlo desde línea de comandos sería:

a m1 c:\Users\MiUsuario\Desktop\prueba.zip C:\Users\MiUsuario\Desktop\prueba.txt

  • a: para utilizar la función AGREGAR, que agrega los ficheros y las carpetas especificadas a un archivo
  • m1: método de compresión. Escala del 0 al 5, donde el 5 es el de mayor rendimiento y el 3 es el normal (http://www.winrar.es/soporte/manual/HELPSwM)
  • Ruta destino: ubicación y nombre del fichero comprimido que vamos a genera.
  • Ruta origen: fichero origen a comprimir

Configurar tarea para comprimir fichero en proceso SSIS (SQL Server Integration Services)

Por otro lado, comentar el parámetro  WindowStyle, para el que es recomendable ponerlo a HIDDEN con el objeto de evitar que salga algún popup para confirmar la operación y permitir la automatización completa del proceso.

Al flujo de nuestro procedimiento podremos añadirle el envío de un correo, copiar el fichero comprimido en un repositorio, etc. Cabe destacar que al disponer del 100% de funcionalidad de 7zip (o el programa de compresión utilizado), tenemos a nuestro alcance cualquier opción del programa, como asegurar el fichero con contraseña.

4 Comentarios

Extension de TextBox que muestra código HTML en QlikView 10

Extension de TextBox que muestra código HTML en QlikView 10

Una de las novedades que trajo consigo QlikView 10 (y heredada en la 11) fue la posibilidad de diseñar y desarrollar componentes externos denominados “Extensions” que pueden ser explotados y reutilizados en cualquier documento o report.  La definición exacta, tomada del Manual de Referencia en castellano:

Objetos de extensión. Por medio de una simple API nueva, ahora se pueden escribir objetos de hoja para extensiones plug-in, para una presentación integrada en diseños QlikView (funciona en el cliente Ajax y en WebView únicamente). Las extensiones se construyen sobre un objeto gráfico QlikView y pueden escribirse en cualquier lenguaje web moderno, como por ej. Flash, Silverlight, JavaScript, etc.

Es decir, la idea es publicar contenido que normalmente se consume vía web dentro de un report de QlikView. Por ello, una limitación importante a la hora de utilizarlos es que sólo funcionan en WebView y el cliente Ajax, pero no en el Desktop. Por cierto, podéis descargar QlikView de forma gratuita desde su propia página web.

Por otro lado, uno  de los defectos de esta suite de Business Intelligence es que no existe oficialmente ningún objeto o componente que permita incrustar código HTML en un txtbox de un informe, a diferencia de otros grandes competidores como MicroStrategy, ¿la solución?, diseñar nuestra propia Extension.

En mi caso, he adaptado el Extension de Stefan WALTHER a QlikView 10. Como la mayoría, está desarrollado en Javascript y jQuery. Nuestro Extension tiene dos ficheros obligatorios, y dos opcionales. Podéis descargarlo desde aquí.

  • Definition.xml: (obligatorio) fichero XML que especifica entra otras cosas, el nombre del Extension, la descripción y los parámetros personalizados, a los que se les puede asignar un valor por defecto.
  • Script.js:  (obligatorio)  fichero fundamental, ya que tiene el core de la funcionalidad. En javascript y jQuery, es el encargado de manejar por DOM los objetos y asignarles o modificar sus características.
  • Properties.qvpp: fichero en XHTML que especifica las opciones y propiedades configurables de la extensión. Muy recomendable seguir la hoja de referencia para los ficheros QVPP de QlikView. No es necesario; si no se define, se toma por defecto las propiedades genéricas de cualquier objeto (layout, caption,expressions, etc).
  • Icon.PNG: es la imagen que se verá desde el Extension Objects en WebView.

 

Definition.xml

Simplemente asignamos el nombre y descripción del Extension, dejando vacío el parámetro Text Expression, ya que en nuestro caso, no nos interesa que venga relleno.

<?xml version=”1.0” encoding=”utf-8”?>
<ExtensionObject Label=”HTML TextBox QV10” Description=”Extensión para añadir código HTML a un objeto TextBox”>

<Text  Expression=”” />

</ExtensionObject>

Script.js

Lo que vamos a hacer es muy sencillo, simplemente creamos un DIV al que le asignamos el contenido HTML que introduzcamos desde el panel de propiedades del Extension. Para mantener la funcionalidad y la personalización del objeto, es necesario incluir la función setProps, encargada de asignar cualquier cambio de estilos desde el panel de propiedades en WebView.

Qva.AddExtension(‘HTML TextBox QV10’, function() {

this.Element.innerHTML = “<div style=’width: 100%; height: 100%; overflow: auto;></div>”; this.Element.firstChild.innerHTML = this.Layout.Text0.text;

setProps(this.Element.firstChild, this);

// asignamos los estilos de la fuente

function setProps(obj, parentObj) {

obj.style.fontStyle = parentObj.Layout.Style.fontstyle;

obj.style.fontFamily = parentObj.Layout.Style.fontfamily;

obj.style.fontSize = parentObj.Layout.Style.fontsize + “pt”;

 

}

});

Properties.qvpp

Como comentábamos, este fichero pseudo XHTML tiene el objeto de construir el menú de propiedades u opciones del Extension.

<div class=”ToolWindow-MainBody”>
<table width=”360px”>

<tr class=”ToolProperty-Header” >

<td onclick=”Qva.SelectToolPane(this, false)”>

HTML TextBox QV10

</td>

<th onclick=”Qva.SelectToolPane(this, true)”>

<img alt=”” src=”unpinned.png” icon=”web:unpinned” avq=”img:.Chart.Title”/>

</th>

</tr>

<tr>

<td colspan=”2”>

<table width=”100%”>

<colgroup>

<col width=”100px” />

<col width=”190px” />

<col width=”30px” />

</colgroup>

<tr>

<td class=”ToolProperty-Literal”>

HTML Code:

</td>

<td colspan=”2”>

<input style=”width: 200px” avq=”edit:.Chart.Text.0.Content” readonly=”readonly” />

<button class=”ToolProperty-DialogButton” avq=”dlg:.Chart.Text.0.Content:Expression.qvpp”>

Editar HTML

</button>

</td>

</tr>

</table>

</td>

</tr>

<tr class=”ToolProperty-Header” avq=”panel::Layout.qvpp”><td>Layout</td><th></th></tr>

<tr style=”display: none”><td colspan=”2”></td></tr>

<tr class=”ToolProperty-Header” avq=”panel::Caption.qvpp”><td>Caption</td><th></th></tr>

<tr style=”display: none”><td colspan=”2”></td></tr>

</table>

</div>

Lo fundamental de este fichero son estas líneas:

<input style=”width: 200px” avq=”edit:.Chart.Text.0.Content” readonly=”readonly” />

<button class=”ToolProperty-DialogButton” avq=”dlg:.Chart.Text.0.Content:Expression.qvpp”>

El input va a ser una caja de texto, la cual se va a modificar pulsando el button, que abrirá un dialog o popup con un textarea donde podremos copiar o escribir lo que deseemos. En este caso, debemos quedarnos con los parámetros avq=”edit:”, que es del input text, y el de avq=”dlg:”, que es un dialog. En esta guía tienes todas las especificaciones y parámetros posibles.

Por otro lado, las dos últimas TR son dos opciones que van a heredar directamente de las propiedades genéricas de cualquier objeto: caption (que nos permite modificar la barra de título u ocultarla) y Layout (esencial para cambiar la fuente, tamaño, color de fondo, etc).

 

¿Cómo genero un Extension para QlikView?

Extension de TextBox HTML para QlikView 10

Una vez tengas todos los ficheros necesarios, simplemente los comprimes en .ZIP y renombras el fichero para cambiar la extensión por .QAR. Recuerda que para esto tienes que habilitar desde opciones de carpeta la visibilidad de las extensiones.

 

¿Cómo se instala un Extension en QlikView?

Muy fácil, haces doble clic sobre el fichero con extensión .QAR y se abrirá QlikView avisándote del éxito o no de la operación. Para hacerlo de forma manual, descomprimes el fichero y copias el contenido en C:Userstu_usuarioAppDataLocalQlikTechQlikViewExtensionsObjects o bien C:Documents and Settingstu_usuarioLocal SettingsApplication DataQlikTechQlikViewExtensionsObjects

 Extension de TextBox que muestra código HTML en QlikView 10

Para desinstalar un Extension basta con eliminar los ficheros correspondientes de estas carpetas.

 

Ejemplo de TextBox HTML para QliKView 10

Finalmente, os mostramos un ejemplo del funcionamiento de este Extension en QlikView 10, donde creamos un nuevo objeto de Extensión:
Extension de TextBox que muestra código HTML en QlikView 10

Añadimos el contenido HTML que deseemos:

Extension de TextBox que muestra código HTML en QlikView 10

Y observamos el resultado:

Extension de TextBox que muestra código HTML en QlikView 10

Si lo necesitáis, podéis descargarlo desde aquí:

Extension de TextBox que muestra código HTML en QlikView 10
2 Comentarios
  • Página 2 de 2
  • <
  • 1
  • 2