El desarrollo de aplicaciones en diversas plataformas y lenguajes en una empresa, es un caso de uso muy común que se presenta a lo largo del tiempo. Así mismo, la necesidad de poder integrar los datos de estas diversas aplicaciones, muchas veces incompatibles entre si, lleva a la necesidad de desarrollar aplicaciones que se encarguen del intercambio de estos datos para lograr un consolidado de información que aporte valor a la empresa.
Al momento de diseñar este tipo de aplicaciones, es común el observar patrones una y otra vez. Dichos patrones han sido recopilados y documentados por Gregor Hohpe y Bobby Woolf en su libro "Enterprise Integration Patterns", en el cual ofrecen una visión completa y muy bien explicada de estos patrones, así como de una nomenclatura que se ha vuelto estándar para representar estos patrones.
Apache Camel es la implementación de la gran mayoría de los patrones propuestos por Gregor y Bobby para la plataforma Java y de manera OpenSource bajo licencia Apache 2.0. Apache Camel es una alternativa a diversas herramientas comerciales para realizar aplicaciones empresariales de integración de aplicaciones.
En la conferencia se mostraran los patrones mas comunes, su notación, diseño e implementación usando Apache Camel, de igual manera se mostrara la infraestructura necesaria para ejecutar Apache Camel, los mecanismos de monitoreo de aplicaciones desarrolladas con Camel y como se puede integrar con productos de integración como Brokers de Mensajería (JMS), Enterprise Service Bus (ESB) y servidores de aplicaciones clásicos.
El desarrollo de aplicaciones en diversas plataformas y lenguajes en una empresa, es un caso de uso muy común que se presenta a lo largo del tiempo. Así mismo, la necesidad de poder integrar los datos de estas diversas aplicaciones, muchas veces incompatibles entre si, lleva a la necesidad de desarrollar aplicaciones que se encarguen del intercambio de estos datos para lograr un consolidado de información que aporte valor a la empresa.
Al momento de diseñar este tipo de aplicaciones, es común el observar patrones una y otra vez. Dichos patrones han sido recopilados y documentados por Gregor Hohpe y Bobby Woolf en su libro "Enterprise Integration Patterns", en el cual ofrecen una visión completa y muy bien explicada de estos patrones, así como de una nomenclatura que se ha vuelto estándar para representar estos patrones.
Apache Camel es la implementación de la gran mayoría de los patrones propuestos por Gregor y Bobby para la plataforma Java y de manera OpenSource bajo licencia Apache 2.0. Apache Camel es una alternativa a diversas herramientas comerciales para realizar aplicaciones empresariales de integración de aplicaciones.
En la conferencia se mostraran los patrones mas comunes, su notación, diseño e implementación usando Apache Camel, de igual manera se mostrara la infraestructura necesaria para ejecutar Apache Camel, los mecanismos de monitoreo de aplicaciones desarrolladas con Camel y como se puede integrar con productos de integración como Brokers de Mensajería (JMS), Enterprise Service Bus (ESB) y servidores de aplicaciones clásicos
Primera Parte de una Serie de presentaciones de patrones de integración empresariales, esta primera parte es la introducción al mundo de la integración.
El desarrollo de aplicaciones en diversas plataformas y lenguajes en una empresa, es un caso de uso muy común que se presenta a lo largo del tiempo. Así mismo, la necesidad de poder integrar los datos de estas diversas aplicaciones, muchas veces incompatibles entre si, lleva a la necesidad de desarrollar aplicaciones que se encarguen del intercambio de estos datos para lograr un consolidado de información que aporte valor a la empresa.
Al momento de diseñar este tipo de aplicaciones, es común el observar patrones una y otra vez. Dichos patrones han sido recopilados y documentados por Gregor Hohpe y Bobby Woolf en su libro "Enterprise Integration Patterns", en el cual ofrecen una visión completa y muy bien explicada de estos patrones, así como de una nomenclatura que se ha vuelto estándar para representar estos patrones.
Apache Camel es la implementación de la gran mayoría de los patrones propuestos por Gregor y Bobby para la plataforma Java y de manera OpenSource bajo licencia Apache 2.0. Apache Camel es una alternativa a diversas herramientas comerciales para realizar aplicaciones empresariales de integración de aplicaciones.
En la conferencia se mostraran los patrones mas comunes, su notación, diseño e implementación usando Apache Camel, de igual manera se mostrara la infraestructura necesaria para ejecutar Apache Camel, los mecanismos de monitoreo de aplicaciones desarrolladas con Camel y como se puede integrar con productos de integración como Brokers de Mensajería (JMS), Enterprise Service Bus (ESB) y servidores de aplicaciones clásicos
Primera Parte de una Serie de presentaciones de patrones de integración empresariales, esta primera parte es la introducción al mundo de la integración.
Introducción al servidor Tomcat.Resumen de conceptos básicos, instalación y configuración. Se repasan conceptos sobre JSPs, JavaBeans, Servicios web sobre Axis2, JNLP, etc.
Simple y breve introducción a Apache Ant: herramienta usada en programación para la realización de tareas mecánicas y repetitivas, normalmente durante la fase de compilación y construcción (build).
Tutoriales - Explorando AWS con Java.
Aprende a descubrir los diferentes servicios que ofrece AWS para explotar por medio de Java a través de la capa gratuita.
Estructura de Directorio de KumbiaPHP Framework versión 1.0 SpiritDeivinson Tejeda
Paper que muestra los cambios dados en la nueva estructura de directorios incorporada en la versión 1.0 Spirit de KumbiaPHP Framework http://www.kumbiaphp.com
Un framework basado en las mejores prácticas de programación web, que no sólo se preocupa de los programadores sino también de ayudar a conseguir un producto que beneficie también al usuario final mejorando la usabilidad de las aplicaciones y además basado en software libre.
Introducción al servidor Tomcat.Resumen de conceptos básicos, instalación y configuración. Se repasan conceptos sobre JSPs, JavaBeans, Servicios web sobre Axis2, JNLP, etc.
Simple y breve introducción a Apache Ant: herramienta usada en programación para la realización de tareas mecánicas y repetitivas, normalmente durante la fase de compilación y construcción (build).
Tutoriales - Explorando AWS con Java.
Aprende a descubrir los diferentes servicios que ofrece AWS para explotar por medio de Java a través de la capa gratuita.
Estructura de Directorio de KumbiaPHP Framework versión 1.0 SpiritDeivinson Tejeda
Paper que muestra los cambios dados en la nueva estructura de directorios incorporada en la versión 1.0 Spirit de KumbiaPHP Framework http://www.kumbiaphp.com
Un framework basado en las mejores prácticas de programación web, que no sólo se preocupa de los programadores sino también de ayudar a conseguir un producto que beneficie también al usuario final mejorando la usabilidad de las aplicaciones y además basado en software libre.
Mada metodología ágil de desarrollo de apisCloudAppi
MADA es la primera metodología que ordena un poco los pasos a seguir para poder desarrollar APis de calidad. Para ello, se analizará como realizar un documento funcional que explique correctamente la API, como se debe implementar fakes para que los developers puedan empezar a desarrollar sus Aplicaciones aunque no tengamos nada desarrollado, como implementar la API, y además, como validarla utilizando herramientas como SOAPui. Además, se analizará aspectos muy importantes como la generación de documentación, casos de prueba y SDKs. Todo ello se debe utilizar uno de los lenguajes de definición de APIs, como SWAGGER, RAML O API BLUEPRINT. En este caso, se utilizará RAML para realizar los ejemplos.
http://programadorphp.org
En esta presentación que hice para la Asociación de Webmasters de Granada y como parte de un trabajo para Redes de Computadores en la ETSIIT he explicado qué es un servidor, concretamente un servidor web, la evolución de este tipo de software hasta hoy en día desde que apareció, además de abordar otros temas relacionados: qué software usar para reconocer un webserver: apache, iis, cherokee, django, lighttpd, zeus, google web server, etc. Además de un pequeño análisis del gestor de difusión de contenidos de tuenti utilizado para compensar la carga del sistema a través de la división entre varios servidores con su caché, etc.
Slides para la charla sobre Action-Domain-Responder del VLCTechFest 2018.
Action-Domain-Responder (ADR) es un patrón de arquitectura propuesto por Paul M. Jones pensado para sustituir MVC en el desarrollo backend.
Analizaremos MVC a fondo y veremos por qué no es un buen patrón para aplicaciones web y cómo ADR está pensado para suplir todas sus carencias.
aspectos de las aplicaciones y la configuración son necesarias a verificar para ejecutar cargas de trabajo en un entorno seguro.
Desde el ensamblaje de las imágenes de los contenedores a la seguridad de ETCD y acceso externo a elementos del cluster son importantes a considerar.
Kubernetes es una plataforma demasiado popular en este momento, todo mundo la usa o quiere usarla, pero es muy importante conocer las consideraciones y malos usos en los que algunos equipos caen al ejecutar aplicaciones Java.
Hableremos historia de los contenedores, por qué son necesarios, cómo docker llegó a cambiar el panoram, competencia de docker (rkt, etc.), la mejor ruta de aprendizaje y mejores prácticas.
Todo mundo habla de los beneficios de la arquitectura de microservicios, pero poco hay sobre los retos que esta arquitectuta introduce.
En esta presentación les compartimos un poco sobre algunos de los retos a los que nos hemos enfrentado en el campo.
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDomingo Suarez Torres
Istio es una nueva plataforma Open Source para conectar, administrar y asegurar microservicios, creado por IBM, Google y Lyft. En esta sesión se proporcionan detalles técnicos generales del proyecto Istio y una parte práctica de varias características de Istio, tales como trafico de ingreso, cumplimiento de políticas, telemetría y seguridad. Además se abordarán practicas que nos permitirán crear contenedores mucho más seguros.
In this talk, I will talk about what Cloud Native is and why it's important in the design of applications.
I will also address the challenges involved in writing Cloud Native applications in the JVM. The topics in details that will be discussed are:
Microservices arquitecture
Containers
Orchestration
Observability
CI, CD and Continuous Deployment
Security
El monitoreo no es suficiente, necesitamos más visibilidad de lo que ocurre en nuestra infraestructura, veremos como en sistemas distribuidos podemos tener trazabilidad y monitoreo para mantener saludables nuestros componentes.
Esta sesión comparte desde un punto de vista técnico las experiencias y aprendizajes obtenidos al orquestar contenedores usando la tecnología Kubernetes en SUNAT, la dependencia de gobierno federal en Perú encargada de la administración tributaria.
Presentación sobre Reactive Programming en la JVM para el meetup JVM_MX.
Se mostraron conceptos sobre Reactive Programming y Functional Reactive Programming con la biblioteca RxJava de Netflix.
En esta sesión analizaremos el caso de un proyecto que se realizó para una institución financiera para manejar el almacenamiento y búsqueda de grandes cantidades de datos. La implementación utiliza un cluster de 24 nodos distribuidos para manejar y buscar miles de millones de documentos que representan cientos de terabytes. Entre las tecnologías que se utilizaron están StorageGrid y ElasticSearch.
En esta plática compartiremos algunos de los principales retos técnicos del proyecto, y cómo se resolvieron.
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialAMADO SALVADOR
Explora el catálogo completo de cajas fuertes BTV, disponible a través de Amado Salvador, distribuidor oficial de BTV. Este catálogo presenta una amplia variedad de cajas fuertes, cada una diseñada con la más alta calidad para ofrecer la máxima seguridad y satisfacer las diversas necesidades de protección de nuestros clientes.
En Amado Salvador, como distribuidor oficial de BTV, ofrecemos productos que destacan por su innovación, durabilidad y robustez. Las cajas fuertes BTV son reconocidas por su eficiencia en la protección contra robos, incendios y otros riesgos, lo que las convierte en una opción ideal tanto para uso doméstico como comercial.
Amado Salvador, distribuidor oficial BTV, asegura que cada producto cumpla con los más estrictos estándares de calidad y seguridad. Al adquirir una caja fuerte a través de Amado Salvador, distribuidor oficial BTV, los clientes pueden tener la tranquilidad de que están obteniendo una solución confiable y duradera para la protección de sus pertenencias.
Este catálogo incluye detalles técnicos, características y opciones de personalización de cada modelo de caja fuerte BTV. Desde cajas fuertes empotrables hasta modelos de alta seguridad, Amado Salvador, como distribuidor oficial de BTV, tiene la solución perfecta para cualquier necesidad de seguridad. No pierdas la oportunidad de conocer todos los beneficios y características de las cajas fuertes BTV y protege lo que más valoras con la calidad y seguridad que solo BTV y Amado Salvador, distribuidor oficial BTV, pueden ofrecerte.
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaAMADO SALVADOR
Descubra el catálogo completo de buzones BTV, una marca líder en la fabricación de buzones y cajas fuertes para los sectores de ferretería, bricolaje y seguridad. Como distribuidor oficial de BTV, Amado Salvador se enorgullece de presentar esta amplia selección de productos diseñados para satisfacer las necesidades de seguridad y funcionalidad en cualquier entorno.
Descubra una variedad de buzones residenciales, comerciales y corporativos, cada uno construido con los más altos estándares de calidad y durabilidad. Desde modelos clásicos hasta diseños modernos, los buzones BTV ofrecen una combinación perfecta de estilo y resistencia, garantizando la protección de su correspondencia en todo momento.
Amado Salvador, se compromete a ofrecer productos de primera clase respaldados por un servicio excepcional al cliente. Como distribuidor oficial de BTV, entendemos la importancia de la seguridad y la tranquilidad para nuestros clientes. Por eso, trabajamos en colaboración con BTV para brindarle acceso a los mejores productos del mercado.
Explore el catálogo de buzones ahora y encuentre la solución perfecta para sus necesidades de correo y seguridad. Confíe en Amado Salvador y BTV para proporcionarle buzones de calidad excepcional que cumplan y superen sus expectativas.
2. Objetivo
Comprender los beneficios de
usar Patrones para Integrar
aplicaciones usando
OpenSource con Apache Camel
2
3. Agenda
• Patrones de diseño
• Patrones de Integración Empresarial (EIP)
• Integración en la plataforma Java
– Bajo nivel
• Sockets
• WebServices
• EJB
– SessionBeans
– Message Driven Beans (JMS)
– Alto nivel
• J2EE Connector Architecture (JCA)
• Java Business Integration (JBI)
• Caso de estudio con Apache Camel 3
5. Volumen I
• En 1979 el arquitecto Christopher
Alexander escribe:
– “The Timeless Way of Building”
• El libro en Google Books
– http://bit.ly/qK1nH
5
7. The Timeless Way of Building
• En el libro se propone el aprendizaje y uso
de una serie de patrones para la
construcción de edificios de una mayor
calidad.
7
8. The Timeless Way of Building
• "Cada patrón describe un problema que
ocurre infinidad de veces en nuestro
entorno, así como la solución al mismo, de
tal modo que podemos utilizar esta
solución un millón de veces más adelante
sin tener que volver a pensarla otra vez."
8
9. OOPSLA-87
• En 1987, Ward Cunningham y Kent Beck
usan las ideas de Alexander y publican un
articulo
• Using Pattern Languages for OO
Programs.
• http://bit.ly/o8YkZ
9
10. Principios de los 90’s
• Se edita en 1995
• Usa una estructura muy
estructurada para explicar
los patrones:
– Nombre del patrón
– Problema
– Solución
– Consecuencias
10
11. Enterprise Integration Patterns
Evolución de los patrones de
diseño a contextos más
específicos, en este caso a la
integración de aplicaciones.
11
12. Necesidad de la integración
• Aplicaciones legadas.
• Variedad de plataformas y tecnologías.
• Carencia de estándares bien definidos.
– Cada proveedor define su tecnología.
• Aplicaciones de terceros
• eGoverment
• Socios comerciales
12
13. Aplicaciones de integración
• Necesarias para servir de puente entre las
aplicaciones
• Traduce y adapta tipos de datos
• Se encarga del medio de transporte asi
como del protocolo
• En el mercado existen productos para este
tipo de necesidades
13
15. OpenSource
• Apache ServiceMix
• OpenESB
• Mule
• Fuse
• Apache Camel es la base de varios de
estos proyectos
15
16. Volvamos a lo básico
• Patrones
– Casi todos los problemas de integración ya
han sido resueltos
– Muchos patrones están construidos en los
diversos productos, ya sean propietarios o de
código abierto.
– Necesario documentarse en el tema.
16
17. Literatura
• Publicado en 2004
• Excelente referencia para
diseñar y construir
aplicaciones de integración.
• Recopila 65 patrones para
integrar aplicaciones.
• Plantea a la mensajería
como piedra angular para la
integración.
17
19. Apache Camel
Me gusta el OpenSource.
A veces no tenemos dinero para
adquirir licencias.
19
20. Apache Camel
• Es un poderoso framework que implementa
gran cantidad de los EIP
• http://camel.apache.org
20
21. Apache Camel
• Bajo la licencia Apache 2.0
• Puedes implementar reglas de ruteo y
mediación con:
– Un Domain Specific Language (DSL) basado
en Java
– Con XML (Spring)
– Con un DSL en Scala
• Utiliza URIs para identificar los endpoints
de la aplicación
21
23. Endpoint
• Es un termino común usado en
comunicaciones del tipo inter-proceso (inter-
process communication)
• Dependiendo del contexto, un endpoint
puede referirse a una dirección, como el par
servidor:puerto, para una comunicación
basada en TCP
• O puede ser una entidad de software que
responde a una dirección,
• Ejemplo:
– www.servidor.com:80
23
24. Tipos de Endpoint
• ServerSocket o ClientSocket
• Un WebService
• Un Archivo
• Servidor de FTP
• Un Destination de JMS
• Una dirección de correo
• Un Plain Old Java Object (POJO)
• ¿Se entiende la idea?
24
25. URIs
• Uniform Resource Identifier
• Sirven para identificar los endpoints
• Desacopla el componente que va a ser
usado
• Es similar a una URL
• Ejemplo:
– foo:0000-0000-9E59-0000-5E-2
25
26. CamelContext
• Es un objeto que representa el sistema de
ejecución de Camel
• Administra el ciclo de vida de los
componentes configurados en Camel
26
27. Componentes
• EndpointFactory es un mejor nombre,
componente es un nombre confuso
• Se necesita un URI para crear el
componente
• Ejemplos:
myCamelContext.getEndpoint("pop3://
john.smith@mailserv.example.com?
password=myPassword");
myCamelContext.getEndpoint("ftp://server?
user=ss&password=myPassword");
27
28. Tipos de componentes
• Apache Camel soporta múltiples
componentes entre ellos:
– JMS
– FTP
– POP3, SMTP
– WebServices
– Archivos
– Protocolo FIX
– Hibernate
– HL7 (Estandar Médico)
– Sockets con Apache Mina
28
29. Caso de estudio
Cámara de Compensación del
Mercado de Derivados
29
30. Requerimiento
• Recibir los hechos de operaciones del
mercado mexicano de derivados
• Validar la información.
• Integrarla a los diversos sistemas de la
cámara de compensación
– AS/400 con RPG y Cobol
– Java EE sobre Solaris con WebLogic y Oracle
• Monitorear la actividad del mercado para
realizar operaciones preventivas y
correctivas
30
31. Detalle aburrido
• Recibir tramas de información través de un
Socket.
• Separar los registros recibidos
• Validar numero de secuencia
• Bitacorar el registro
• Ejecutar lógica de negocio
• Generar reporte estadístico de la
información
• Integrar información al sistema de la
empresa
31
32. Solución
• Uso de SpringFramework
• Camel se integra sin problemas con Spring
• Escritura de reglas de ruteo y mediación
simples y sencillas
• El desarrollo se concentro en escribir
POJOS, nada complicado y fácil de probar.
• Altamente personalizable y configurable
• Sin costo de licencias.
32