Translate
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/
Usando Apache Camel desde Apache ServiceMix
Para mayor comprensión pueden ver el siguiente post:
http://emanuelpeg.blogspot.com/2012/03/primeros-pasos-con-apache-servicemix.html
La idea sería construir un pequeño ejemplo de integración con Apache Camel y vamos a deployarlo en ServiceMix. La idea es copiar un archivo desde la carpeta input a la carpeta output y para mantener un registro escribir un log.
Uno de los caminos más simples para deployear un router de Camel en ServiceMix es definir el router en un Blueprint XML.
Este archivo hay que guardarlo en la carpeta deploy de servicemix yo le puse copia.xml
Ahora a deployear, si ejecutamos osgi:list vamos a ver nuestro servicio llamado “copia.xml”
Con osgi:start y el id del servicio podemos levantar el servicio; en mi caso el número 156
osgi:start 156
y si lo queremos parar con
osgi:stop 156
Ya esta! Si hacemos:
log:display | grep INFO
Podemos ver como se movieron los archivos.
Primeros pasos con Apache ServiceMix
Para instalar ServiceMix vea este post: http://emanuelpeg.blogspot.com/2012/03/instalar-apache-servicemix-en-linux.html
Ya en la consola podemos listar los paquetes o bundles que estan activos y los que no:
karaf@root> osgi:list
Con este comando listamos todos los paquetes instalados. Se muestra el id, estado, si es bluepring o Spring XML , el nivel, nombre y versión del paquete.
Podemos utilizar el pipe y comandos de unix, por ejemplo si necesitamos ver los paquetes de cxf:
karaf@root> osgi:list | grep cxf
Si se quiere trabajar con el log esta el comando:
karaf@root> log:display
Si solo se desea ver excepciones:
karaf@root> log:display-exception
Y también podemos cambiar el nivel de logeo con :
karaf@root> log:set DEBUG
karaf@root> log:display | grep DEBUG
Bueno este fue una primera vista general sobre Apache ServiceMix
Instalar Apache ServiceMix en Linux
Comenzamos bajando servicemix pueden bajarlo de aca: http://apache.dattatec.com//servicemix/servicemix-4/4.4.0/ o con wget pueden directamente usar esta url http://apache.dattatec.com/servicemix/servicemix-4/4.4.0/apache-servicemix-full-4.4.0.tar.gz
Yo baje el tar, pero pueden bajar el zip para windows. Primero movemos el tar donde lo vamos a instalar tiene que usar el usuario root o alguno que tenga permisos de escritura en la carpeta destino.
mkdir /opt/servicemix
mv apache-servicemix-full-4.4.0.tar.gz /opt/servicemix /
Y luego desempaquetamos:
tar xvfz apache-servicemix-full-4.4.0.tar.gz
Y borramos el tar:
rm apache-servicemix-full-4.4.0.tar.gz
Luego ejecutamos serviceMix
cd apache-servicemix-4.4.0/bin
./servicemix
Y obtendremos una pantalla así:
Dejo link:
sábado, 10 de marzo de 2012
Oracle hizo disponible los Java Tutorials como eBooks
Oracle hizo disponible los Java Tutorials como eBooks, con formato para ipad y otros. Una gran idea, dejo el link:
http://www.oracle.com/technetwork/java/javase/downloads/java-se-7-tutorial-2012-02-28-1536013.html
http://www.oracle.com/technetwork/java/javase/downloads/java-se-7-tutorial-2012-02-28-1536013.html
viernes, 9 de marzo de 2012
Akka 2.0 Released!
Akka el framework para Scala y java a sacado una nueva versión; como recordaran akka es un framework que se basa en el concepto de actores para brindarnos una arquitectura distribuida.
Para más información del release dejo el link:
http://akka.io/news/2012/03/06/akka-20-released.html
Para más información del release dejo el link:
http://akka.io/news/2012/03/06/akka-20-released.html
jueves, 8 de marzo de 2012
Apache ServiceMix
Apache ServiceMix es un flexible ESB open source, que integra funcionalidad de diversos productos de Apache como Apache ActiveMQ, Camel, CXF, ODE y Karaf. Provee el funcionamiento de un ESB integrado a una herramienta OSGI.
Las características de Apache ServiceMix son:
- Mensajería segura gracias a Apache ActiveMQ
- Mensajería, enrrutamiento y patrones de integración para Empresas con Apache Camel
- ServiceMix NMR incluye eventos ricos, mensajería y auditoría lo que permite una integración con bajo acoplamiento.
- Completo WS-BPEL con Apache ODE.
- Basado en OSGI con la utilización Apache Karaf.
Además es licencia Apache 2.
Dejo Link:
http://servicemix.apache.org/
martes, 6 de marzo de 2012
Usar y distribuir software libre es entender y promover un bien social
Quiero compartir una noticia muy interesante:
Beatriz Busaniche, licenciada en Comunicación Social de la Universidad Nacional de Rosario trabaja para la Fundación Vía Libre y es especialista en software libre. Entre sus ventajas destaca la libertad que ofrece a quienes lo utilizan y la oportunidad de enseñar y aprender la informática de manera ética e integral.
El Software Libre (SL) es un tema que actualmente está en boca de todos. Los que está a favor argumentan la libertad que ofrece a quienes lo utilizan y la posibilidad de construir ciudadanía en relación a las nuevas tecnologías. Mientras que los detractores de esta filosofía suelen sostener que sin monopolio de copia no habría innovación. Beatriz Busaniche* señaló cuales son las ventajas del software libre y habló sobre su situación actual en Argentina.
Dejo el link:
http://www.redusers.com/noticias/usar-y-distribuir-software-libre-es-entender-y-promover-un-bien-social/
Beatriz Busaniche, licenciada en Comunicación Social de la Universidad Nacional de Rosario trabaja para la Fundación Vía Libre y es especialista en software libre. Entre sus ventajas destaca la libertad que ofrece a quienes lo utilizan y la oportunidad de enseñar y aprender la informática de manera ética e integral.
El Software Libre (SL) es un tema que actualmente está en boca de todos. Los que está a favor argumentan la libertad que ofrece a quienes lo utilizan y la posibilidad de construir ciudadanía en relación a las nuevas tecnologías. Mientras que los detractores de esta filosofía suelen sostener que sin monopolio de copia no habría innovación. Beatriz Busaniche* señaló cuales son las ventajas del software libre y habló sobre su situación actual en Argentina.
Dejo el link:
http://www.redusers.com/noticias/usar-y-distribuir-software-libre-es-entender-y-promover-un-bien-social/
domingo, 4 de marzo de 2012
Resource-oriented architecture
Resource-oriented architecture (ROA) es un estilo arquitectónico basado en Rest, como sabrán SOA es un estilo arquitectónico que indica que funcionalidades del negocio deben estar colgadas es servicios web (normalmente) lo cual permite desacoplamiento de funcionalidad de negocio y reutilización. ROA en cambio no se basa en exponer funcionalidad sino recursos. Lo cual marca una diferencia importante con SOA, SOA se centra en verbos "realizar movimiento bancario" mientra que ROA se basa en los sustantivos "movimientos bancarios".
ROA se basa en REST para exponer los recursos, es decir usa todas las características de REST por lo tanto expone los recursos con URL RestFul. Es decir el movimiento bancario va estar en /movimiento-bancario y se lo va a poder crear con el método PUT, listar con el GET, modificar con POST y borrar con DELETE.
ROA propone exponer los recursos, de forma tal que sea muy similar a la forma que accedemos a base de datos; select - GET, delete - DELETE, update - POST, insert - PUT. Dando una forma clara de acceder, borrar y modificar cada uno de los recursos.
También al basarse en REST se crean arquitecturas livianas flexibles.
Personalmente creo que la gran desventaja es que no contamos con todo el estándar ws-* y el conjunto de herramientas que permiten la orquestación,interacción, seguridad, etc. que si nos brinda SOA.
Creo que el tiempo va a coronar un ganador por ahora a utilizar la mejor herramienta para los problemas particulares y hacer camino al andar!
Dejo Links:
http://en.wikipedia.org/wiki/Resource-oriented_architecture
http://www.infoq.com/articles/RESTSOAFuture
ROA se basa en REST para exponer los recursos, es decir usa todas las características de REST por lo tanto expone los recursos con URL RestFul. Es decir el movimiento bancario va estar en /movimiento-bancario y se lo va a poder crear con el método PUT, listar con el GET, modificar con POST y borrar con DELETE.
ROA propone exponer los recursos, de forma tal que sea muy similar a la forma que accedemos a base de datos; select - GET, delete - DELETE, update - POST, insert - PUT. Dando una forma clara de acceder, borrar y modificar cada uno de los recursos.
También al basarse en REST se crean arquitecturas livianas flexibles.
Personalmente creo que la gran desventaja es que no contamos con todo el estándar ws-* y el conjunto de herramientas que permiten la orquestación,interacción, seguridad, etc. que si nos brinda SOA.
Creo que el tiempo va a coronar un ganador por ahora a utilizar la mejor herramienta para los problemas particulares y hacer camino al andar!
Dejo Links:
http://en.wikipedia.org/wiki/Resource-oriented_architecture
http://www.infoq.com/articles/RESTSOAFuture
SOAP vs REST: ¿Cual usar en cada caso?
Desde que REST salió a la luz, siempre ha habido un debate en torno a su comparación con SOAP. La arquitectura REST es sencilla, precisamente ese es su atractivo principal.
REST fue rápidamente catalogado como alternativa a SOAP. Aún así, actualmente SOAP todavía posee el monopolio en el mundo de los Servicios Web. Ambos difieren en muchos aspectos comenzando por que REST fue concebido en el ámbito académico y SOAP es un estándar de la industria, creado por un consorcio del cual Microsoft formaba parte.
Las principales diferencias en el funcionamiento de ambos son:
- SOAP es un estilo de arquitectura orientado a RPC (Remote Procedure Call), es decir, un estilo basado en llamadas a procedimientos remotos, mientras que para REST solamente existen los métodos de HTTP y está orientado a recursos.
- REST no permite el uso estricto de “sesión” puesto que por definición es sin estado, mientras que para SOAP, al ser orientado a RPC, los servicios Web crean sesiones para invocar a los métodos remotos.
- SOAP utiliza HTTP como un túnel por el que pasa sus mensajes, se vale de XML para encapsular datos y funciones en los mensajes. Si dibujásemos una pila de protocolos, SOAP iría justo encima de HTTP, mientras que REST propone HTTP como nivel de aplicación.
En el debate de comparación entre REST y SOAP, la mayoría de los desarrolladores de aplicaciones Web toman posiciones muy extremas a favor de uno u otro. Los afines a SOAP, suelen pronunciarse diciendo que SOAP es más flexible que REST a la hora de implementar servicios Web y muestran como un defecto de REST la restricción “sin estado”, mientras que los adeptos de REST (también llamados Restafarians), critican la escasa transparencia de SOAP y opinan que hace las cosas más difíciles de lo que de verdad son, dicen que SOAP da “un paso hacia delante y dos hacia atrás”. Además opinan que SOAP puede suponer un problema porque puede dar lugar a la creación de agujeros de seguridad en las implementaciones HTTP.
Yo personalmente creo que los dos son utiles y se debe buscar la mejor herramienta para cada caso, dejo un link sobre este tema:
http://www.estebanetayo.es/?p=438
The Git Community Book
Todo indica que SVN es bueno pero GIT es mejor, por lo tanto ha estudiar GIT!
Dejo un link sobre el libro de la comunidad:
http://book.git-scm.com/
Y mientras leen el libro dejo una canción de GIT:
Suscribirse a:
Entradas (Atom)