Translate
lunes, 2 de abril de 2012
Mule ESB
Mule es un Enterprise Service Bus liviano dirigido a eventos y también es una plataforma de integración. Mule es uno de los ESB Open Sources más usados.
Pero para que necesito Mule ESB? Supongamos que tenemos una aplicación que acepta solo XSL-FO y los envía a una cola JMS y yo estoy haciendo una pagina que le debe enviar un mensaje; uso como formato texto por http. Mule puede estar en el medio de esta conversación y traducir texto a XSL-FO y cambiar el protocolo http a JMS haciendo que no tenga que programar las traducciones.
El mensaje pasa por varias capas lógicas, la primera es la capa de modelo. Esta proporciona servicios, tales como las estrategiasde excepción. Además, presta servicios con valores por defecto para simplificar su configuración.
Luego viene la capa de servicios. La capa de servicio se compone de todas las entidades involucradas en el procesamiento, en particular peticiones de maneras predefinidas. En el ejemplo el servicio tendría que actuar como un puente entre la entrada HTTP y los mensajes salientes mensajes JMS.
La capa de transporte es la encargada de la comunicación entrante y saliente. Un transporte se representa en la configuración de los siguientes elementos: conectores, terminales y transformadores.
Un conector es responsable de controlar el uso de un protocolo particular. Está configurado con los parámetros que son específicos de este protocolo. Por ejemplo, un conector JMS está configurado con una conexión, que es compartida por las distintas entidades encargadas de la comunicación real.
Un endpoint representa el uso específico de un protocolo, ya sea para escuchar o publicar un servicio.
Transformer como su nombre indica, un transformador se encarga de traducir el contenido de un mensaje de una forma a otra.
Los Routers juegan un papel crucial en el control de la trayectoria de un mensaje es el que controla el transito en Mule.
Los Components son la pieza central de los servicios de mula. Cada servicio se organiza con un componente en su núcleo y los routers de entrada y salida a su alrededor.
Con esto vimos un poco de terminología de mule ESB, luego veremos un caso práctico.
sábado, 31 de marzo de 2012
UTUTO
UTUTO es una distribución del sistema operativo GNU, que usa su propio núcleo de Linux Libre. El nombre hace referencia a una especie de lagartija (Homonota borelli, Gekkonidae) del norte de Argentina. Ututo fue la primera distribución en ser reconocida como totalmente libre por el Proyecto GNU.
Y fue hecha en Argentina!!
Su primera versión, grabada masivamente por primera vez en octubre del año 2000 en Argentina por Diego Saravia de la Universidad Nacional de Salta. Se hizo famosa por ser la distro que usa Richard Stallman.
Dejo link:
http://www.ututo.org/
miércoles, 28 de marzo de 2012
Elasticsearch
Elasticsearch
es un producto Open Source para realizar busquedas, basado en Apache
Lucene. Fue desarrollado por Shay
Banon. Shay Banon habia creado Compass en 2004, mientras pensaba la
tersera versión de Compass descubrio que era necesario una solución
distribuida para las busquedas para poder escalar y brindar un buen
servicio. Por lo que creo un producto distribuido para realizar
busquedas el cual usa la interfaz comun Http con JSON y REST. Todo
sobre la plataforma java.
Elasticsearch puede ser utilizado como buscador de cualquier tipo de documento. Además ofrece una solución escalable dado que es distribuido.
Para nombrar algunas características:
http://www.elasticsearch.org/
Elasticsearch puede ser utilizado como buscador de cualquier tipo de documento. Además ofrece una solución escalable dado que es distribuido.
Para nombrar algunas características:
- ElasticSearch es distribuido. Ningún proyecto por separado es necesario. Las réplicasiones son en tiempo real también, que se llama "la replicación Push".
- ElasticSearch es totalmente compatible con el tiempo casi real la búsqueda de Apache Lucene.
- Manejo de multiusuario no es una configuración especial
- ElasticSearch introduce el concepto de la puerta de enlace, lo que hace que hacer copias de seguridad sea más fácil.
http://www.elasticsearch.org/
Dejo un video:
domingo, 25 de marzo de 2012
Instalar Mule ESB en linux
Vamos a instalar Mule ESB en linux, Mule es un ESB que funciona muy bien y es el más usado de los ESB open sources.
Primero vamos a bajarlo de : http://www.mulesoft.org/download-mule-esb-community-edition
Luego de descargarlo vamos a copiarlo a opt (utilice root o un usuario con permisos)
mkdir /opt/muleESB
mv Descargas/MuleStudio-CE-for-Linux-64bit_20120120.zip /opt/muleESB/
Descomprimimos:
cd /opt/muleESB
unzip MuleStudio-CE-for-Linux-64bit_20120120.zip
Ahora damos permisos correspondientes:
chmod u+x MuleStudio/
Y con esto ya estamos. Para utilizar mule tienes que tener configurada la jdk de java. Para esto podemos descargar la jdk del siguiente link: http://www.oracle.com/technetwork/java/javase/downloads/index.html
Cuando descarguemos este .bin solo hay que ejecutarlo y luego configurar la variable de entorno JAVA_HOME.
export JAVA_HOME=/java/sdk/jdk1.6.0_26
Y luego podemos ejecutar Mule
cd MuleStudio
./muleStudio
Y ya esta!!
Kanban vs Scrum
- Jim: “¡Por fin hemos conseguido implantar Scrum del todo!”
- Fred:“ ¿Y qué tal os va?”
- Jim: “Bueno, mucho mejor que lo que teníamos antes...”
- Fred:“...¿pero?”
- Jim: “... pero claro, está el equipo de operación y mantenimiento.”
- Fred:“sí, ¿Y?”
- Jim: “Bueno, nos encanta todo lo de organizar por prioridades en una Pila de Producto, los equipos auto-organizados, el Scrum diario, las retrospectivas, etc....”
- Fred: “¿Y cuál es el problema?”
- Jim: “Seguimos fracasando en nuestros Sprints”
- Fred: “¿Por qué?”
- Jim: “Porque nos resulta muy difícil comprometernos a una planificación de 2 semanas. Las iteraciones no tienen mucho sentido para nosotros, simplemente nos ponemos con lo más urgente que tenemos cada día.¿Quizás deberíamos hacer iteraciones de una semana?
- Fred: “¿Os podríais comprometer al trabajo de una semana? ¿Se os permitiría concentraros en eso y trabajar en paz durante una semana?”
- Jim: “En realidad no, tenemos asuntos que van surgiendo en el día a día. Quizás si hiciéramos sprints de un día...”
- Fred: “¿Vuestras tareas tardan menos de un día en solucionarse?”
- Jim: “No, a veces tardan varios días”
- Fred: “Así que los sprints de 1 día tampoco funcionarían. ¿Habéis considerado eliminar por completo los sprints?”
- Jim: “Bueno, la verdad es que eso nos gustaría. Pero ¿no va eso en contra de Scrum?”
- Fred: “Scrum es solo una herramienta. Tú eliges cuándo y cómo usarla. ¡No seas su esclavo!”
- Jim:“¿Qué deberíamos hacer entonces?”
- Fred:“¿Has oído hablar de Kanban?”
- Jim:“¿Qué es eso? ¿En qué se diferencia de Scrum?”
- Fred:“¡Toma, lee este libro!”
- Jim: “Pero a mi me gusta el resto de Scrum, ¿tengo que cambiar ahora?”
- Fred:“¡No! Puedes combinar ambas técnicas”
- Jim:“¿Qué? ¿Cómo?”
- Fred:“Sólo sigue leyendo..”
Así comienza el libro quiero recomendarles, muy bueno explica Kanban confrontándolo con Scrum de forma totalmente didáctica. Y al final una aplicación practica.
Dejo el link:
http://www.proyectalis.com/documentos/KanbanVsScrum_Castellano_FINAL-printed.pdf
sábado, 24 de marzo de 2012
Chakra
Estoy probando Chakra Linux, es un arch que intenta ser más amigable que arch; facilitando la instalación y el uso como la configuración. Chakra utiliza KDE 4 como gestor de ventanas; además promueve el uso de aplicaciones KDE. Mi primera impresión es que esta bueno.
Ojo cuiden su mascota!
Dejo link del proyecto:
http://chakra-linux.org/
SenseiDB
LinkedIn han librearado la versión 1.0.0 de la base de datos NoSQL SenseiDB. La base de datos Sensei es una base NoSQL que fue diseñana para facilitar las modificaciones y consultas complejas.
Entre las características de esta base podemos nombrar:
Esta base hace incapie en las busquedas por lo que usuarios de Solr o Lucene usaran todos los conceptos; para las busquedas usa BQL (Browser query language) que es muy similar a SQL.
Para la obtención de datos sólo es a través de puertas de enlace(no hay un "INSERT"). Cada grupo está conectado a una única puerta de enlace. Este es uno de los puntos críticos de entender, ya SenseiDB no se manejan atomicidad ni aislamiento. Aquellos que se aplica de manera externa a nivel de puerta de enlace. La puerta de enlace debe asegurarse de que el flujo de datos se comporta de una manera esperada.
Gracias a LinkedIn ahora es Open Source!
Dejo links:
http://senseidb.com/
http://senseidb.github.com/sensei/overview.html
https://linkedin.jira.com/wiki/display/SENSEI/Home
https://github.com/linkedin/sensei
Entre las características de esta base podemos nombrar:
- Búsqueda de full-text
- Búsqueda por key-value veloz
- Alta performance durante actualizaciones concurrentes pesadas y alto tráfico de queries
- Integración con Hadoop
Esta base hace incapie en las busquedas por lo que usuarios de Solr o Lucene usaran todos los conceptos; para las busquedas usa BQL (Browser query language) que es muy similar a SQL.
Para la obtención de datos sólo es a través de puertas de enlace(no hay un "INSERT"). Cada grupo está conectado a una única puerta de enlace. Este es uno de los puntos críticos de entender, ya SenseiDB no se manejan atomicidad ni aislamiento. Aquellos que se aplica de manera externa a nivel de puerta de enlace. La puerta de enlace debe asegurarse de que el flujo de datos se comporta de una manera esperada.
Gracias a LinkedIn ahora es Open Source!
Dejo links:
http://senseidb.com/
http://senseidb.github.com/sensei/overview.html
https://linkedin.jira.com/wiki/display/SENSEI/Home
https://github.com/linkedin/sensei
miércoles, 21 de marzo de 2012
Muchas patentes son totalmente ridículas
Encontré tarde una entrevista a Linus Tolvar, digo tarde porque es vieja; pero de igual forma quiero compartirla:
http://www.pagina12.com.ar/diario/dialogos/21-169096-2011-05-30.html
http://www.pagina12.com.ar/diario/dialogos/21-169096-2011-05-30.html
Código de Android incluido en la versión 3.3 de Kernel de Linux
Buenísima noticia, ahora el kernel de Linux cuenta con código Android. Porque es tan importante la noticia? Esta noticia es un claro ejemplo que cuando el conocimiento se comparte, se complementa y mejora.
El Kernel de Linux se va hacer más robusto gracias a que entre otras cosas lo usa Android y otras comunidades. Con el perfeccionamiento del Kernel nos vemos beneficiados todos los que usamos Linux!!!
Dejo la fuente:
http://www.efectosocial.net/2012/03/19/codigo-de-android-incluido-en-la-version-3-3-de-kernel/
El Kernel de Linux se va hacer más robusto gracias a que entre otras cosas lo usa Android y otras comunidades. Con el perfeccionamiento del Kernel nos vemos beneficiados todos los que usamos Linux!!!
Dejo la fuente:
http://www.efectosocial.net/2012/03/19/codigo-de-android-incluido-en-la-version-3-3-de-kernel/
IOS vs Android, cual da más trabajo?
Quede sorprendido con la siguiente infografia, no pensé nunca que IOS le gane a Android en empleos de desarrollo.
Si no ven bien pueden hacer click en la imagen.
Que opinan de esta infografia? sorprendidos?
sábado, 17 de marzo de 2012
The best Linux distro of 2011!
Buscando una nueva distro para la notebook me encontré con el siguiente articulo:
http://tuxradar.com/content/best-distro-2011
Hace un comparativo de las diferentes distros de Linux, y queda como distro ganadora Debian. Personalmente estoy fascinado por Linux Mint me parece muy cómodo, fácil de usar y elegante.
Ustedes cual prefieren??
miércoles, 14 de marzo de 2012
Play framework 2
Finalmente se anuncio de play framework 2, con nuevas novedades y una integración completa con scala.
Dejo link del anuncio y la nueva web:
http://blog.typesafe.com/ introducing-play-20
http://www.playframework.org/
Dejo link del anuncio y la nueva web:
http://blog.typesafe.com/
http://www.playframework.org/
domingo, 11 de marzo de 2012
Porque utilizar ESB?
En arquitectura SOA el software se ve como funcionalidad colgada en una rul la cual se organiza para solucionar una necesidad del negocio.
Por ejemplo tenemos organizado 4 modulos los cuales se interrelacionan esto se veria de la siguiente forma:
Por que no poner un software que mantenga las rutas de comunicación sería como un router de nuestros servicios.
Se ve mejor no? Ese software que se encuentra en el medio de las comunicaciones de mis servicios es un ESB.
Ahora bien si un servicio expone su funcionalidad con SOAP otro con REST otro con RMI, otro con JMS etc. tengo que escribir mucho código de traducción para poder comunicar servicios. Ya se pongamos esta traducción en el ESB de esta forma el centraliza las traducciones y reutiliza ese código para comunicara diferentes servicios.
De esta forma el ESB nos permite comunicar diferentes piezas de software que se expresan de forma diferente. Ojo esto no es una funcionalidad que tengan todos los ESB por ejemplo Apache Synapsis no la trae. Pero la gran mayoría si.
En resumen esto es un ESB.
Instalar características opcionales en ServiceMix
Para listar las características de serviceMix desde la consola con este comando:
karaf@root>features:list
Con esto tenemos el listado de características instaladas como las que no estan instaladas.
Para instalar una característica solo con el comando:
karaf@root>features:install webconsole
Con esto por ejemplo instalamos la web consola. Y con el siguiente comando lo verificamos:
karaf@root> features:list | grep webconsole
Agregar ActiveMQ al ejemplo de ServiceMix
Continuando con el ejemplo:
http://emanuelpeg.blogspot.com/2012/03/usando-apache-camel-desde-apache.html
En el anterior ejemplo creamos una ruta que movía un archivo de una carpeta a otra, bueno ahora vamos a crear un evento de ActiveMQ cuando se mueva un archivo.
Por lo tanto el archivo xml que habia llamado copia queda así:
FileMovedEvent(file: ${file:name}, timestamp: ${date:now:hh:MM:ss.SSS})
Donde FileMovedEvent va ser un evento generado por la copia y va a ser publicado en activemq://events
Si vemos el log no vamos a ver nada porque los eventos no sos consumidos por un cliente por lo que vamos a hacer un cliente:
Guardamos este archivo tambien en la carpeta deploy con el nombre que quieran, yo le voy a poner cliente.xml
Con este cliente vamos a poder ver en el log las copias.
Reiniciamos copia.xml
osgi:stop 156
osgi:start 156
Y listo!
Dejo link de la fuente:
http://servicemix.apache.org/docs/4.4.0/quickstart/
Suscribirse a:
Entradas (Atom)