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
Cloud-Native Architecture
MSA(Micro Service Architecture)
MDA(Micro Data Architecture)
MIA(MIcro Inference Architecture)
MSA-Service Mesh
MDA-Data Mesh
MIA-AI Inference Mesh
Kubernetes
Container
Kubeflow
Volcano
Apache Ynikorn
ChatGPT
AGI(Artificial General Intelligence)
ASI(Artificial Specialized Intelligence)
초-전환시대
초-연결시대
SQream GPU DBMS
Cloud와 Cloud Native의 목표는.. 왜? 어떻게? 뭐가 좋아지나...
1. (왜) 가속화된 초-전환, 초-연결 IT 환경변화에 대비하기 위해서
2. (어떻게-H/W) IT H/W 부분은 IaaS 서비스화하여
점유된, Over Subscription된 H/W(Server, Network, Storage)들 모아서 Pool화하고, 가상화기술을 통해 Tenant로 자원들을 분리해 서비스화해 제공하고
필요시 적시에 Pool의 가상H/W를 제공하고, 상황에 따라 확장・축소(Scale in/out, up/down)하면서, 축소된 자원을 다른 요청들을 위해 빠르게 재-할당하는 유연성을 제공하고
3. (어떻게-S/W) S/W 부문도
PaaS, SaaS 적극 활용으로 App.개발 시간을 단축하고
App.분야인 기존 MACRO Service Architecture형 Monolith Architecture(Web-WAS-DB)를 작게 쪼개서 변화에 빠르게 적응할 수 있는 MSA(Micro Service Architecture)로 변경하여 Service Mesh형으로 관리하고
Data분야도 Data Warehouse, DataLake(Bigdata), LakeHouse등 기존 MACRO Data Architecture를 MSA형식으로 MDA(Micro Data Architecture)로 전환 후 Data Mesh형태로 관리하고,
AI로 동적프로그램 생성하여 App.개발시간 단축하고, AI분야도 초-거대 AI구현(MACRO)보다는 작은|특화된 Deep Learning Network(Model)들로 작게 쪼개서 MIA(Micro Inference Architecture)로 비지니스 환경에 적용하고 Inference Mesh형태로 관리하는 시스템으로 전환하고
4. (어떻게-조직) 조직구조도 CI/CD형 DevOps환경, 데이타,트랜잭션중심업무중심, 기술중심 문제해결중심, 직능중심조직직무중심조직으로 전환하면
5. (좋아지는 것) 초-전환, 초-연결 환경에 빠르고, 지속적으로 적응할 수 IT as a Product 환경을 구현하는 것
Cloud-Native Architecture
MSA(Micro Service Architecture)
MDA(Micro Data Architecture)
MIA(MIcro Inference Architecture)
MSA-Service Mesh
MDA-Data Mesh
MIA-AI Inference Mesh
Kubernetes
Container
Kubeflow
Volcano
Apache Ynikorn
ChatGPT
AGI(Artificial General Intelligence)
ASI(Artificial Specialized Intelligence)
초-전환시대
초-연결시대
SQream GPU DBMS
Cloud와 Cloud Native의 목표는.. 왜? 어떻게? 뭐가 좋아지나...
1. (왜) 가속화된 초-전환, 초-연결 IT 환경변화에 대비하기 위해서
2. (어떻게-H/W) IT H/W 부분은 IaaS 서비스화하여
점유된, Over Subscription된 H/W(Server, Network, Storage)들 모아서 Pool화하고, 가상화기술을 통해 Tenant로 자원들을 분리해 서비스화해 제공하고
필요시 적시에 Pool의 가상H/W를 제공하고, 상황에 따라 확장・축소(Scale in/out, up/down)하면서, 축소된 자원을 다른 요청들을 위해 빠르게 재-할당하는 유연성을 제공하고
3. (어떻게-S/W) S/W 부문도
PaaS, SaaS 적극 활용으로 App.개발 시간을 단축하고
App.분야인 기존 MACRO Service Architecture형 Monolith Architecture(Web-WAS-DB)를 작게 쪼개서 변화에 빠르게 적응할 수 있는 MSA(Micro Service Architecture)로 변경하여 Service Mesh형으로 관리하고
Data분야도 Data Warehouse, DataLake(Bigdata), LakeHouse등 기존 MACRO Data Architecture를 MSA형식으로 MDA(Micro Data Architecture)로 전환 후 Data Mesh형태로 관리하고,
AI로 동적프로그램 생성하여 App.개발시간 단축하고, AI분야도 초-거대 AI구현(MACRO)보다는 작은|특화된 Deep Learning Network(Model)들로 작게 쪼개서 MIA(Micro Inference Architecture)로 비지니스 환경에 적용하고 Inference Mesh형태로 관리하는 시스템으로 전환하고
4. (어떻게-조직) 조직구조도 CI/CD형 DevOps환경, 데이타,트랜잭션중심업무중심, 기술중심 문제해결중심, 직능중심조직직무중심조직으로 전환하면
5. (좋아지는 것) 초-전환, 초-연결 환경에 빠르고, 지속적으로 적응할 수 IT as a Product 환경을 구현하는 것
※다운로드하시면 더 선명한 자료를 보실 수 있습니다.
PAYCO 쇼핑의 아키텍처를 MSA로 변경하면서 겪은 삽질을 공유합니다.
레거시 서비스에서 서비스를 분리해내는 방법과 순서, 이후 고려해야 할 사항을 공유하고자 합니다.
목차
1. PAYCO 쇼핑?
2. 프로젝트 진행 과정
3. 아키텍처 공유
대상
- MSA, Spring cloud, Docker, Ansible 등을 실무에 적용하는 방법에 관심이 있는 분
- Spring Cloud를 써서 MSA로 개발하고 싶은데 어디서부터 손대야 할지 모르는 분
■관련 동영상: https://youtu.be/l195D5WT_tE
AWS에서 애플리케이션을 빌드하고 배포하려고 할 때 개발자와 애플리케이션에 올바른 권한을 부여하는 것은 보안에 매우 중요합니다. 이 과정에서는 AWS IAM의 주요 엔티티들에 대해서 알아보고 STS를 통한 임시 자격 증명, 자격 증명 연동 및 모범 사례 그리고 문제 해결에 대해서 개발자와 운영자 보안 담당자의 관점을 통해 입체적으로 알아봅니다.
AWS 클라우드를 활용하면 사용자의 트래픽에 따라 IT 인프라 아키텍처를 확장할 수 있습니다. 이번 강연에서는 서비스 초기의 작은 트래픽에 대응할 수 있는 단순한 아키텍처로 시작해 사업 성장 후의 수백만 사용자에 달하는 대규모 트래픽을 지탱할 수 있는 고확장성 아키텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 소개해 드리고 컴퓨팅 및 데이터베이스 선택 및 사용자 증가에 따른 트래픽 경감 방법, 오토스케일링 및 모니터링과 자동화, DB 부하 분산, 고가용성 확보 등에 대한 다양한 모범사례를 알려드릴 예정입니다.
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021Amazon Web Services Korea
서버리스는 오늘날 클라우드에서 가장 인기있는 디자인 패턴 중 하나입니다. 서버 및 운영 체제 운영의 부담은 덜고 서비스의 개발 및 구축을 통해 빠르게 혁신에 집중할 수 있기 때문입니다. 본 강연에서는 클라우드 네이티브한 방식으로 서버리스 애플리케이션을 고도화 하는 방법에 관해 알아봅니다. 아키텍처를 디커플링하고 비동기적으로 구성함으로써 보다 유연한 확장이 가능하게 됩니다. Amazon API Gateway, AWS Lambda 를 활용한 기본적인 서버리스 애플리케이션을 Lambda의 신규 기능과 Amazon SQS, Amazon RDS Proxy, AWS Secrets Manager 등을 활용해 보다 안정적으로 확장하는 방법에 관해 알아봅니다.
AWS Webinar: How to architect and deploy a multi tier share point server farm...Amazon Web Services
AWS Solution Architect discusses high availability features for Microsoft Windows Server and SQL Server running on the AWS Cloud. Windows Server Failover Clustering (WSFC) and SQL AlwaysOn Availability Groups are part of the underpinnings for many enterprise-class solutions, including Microsoft SharePoint and .NET applications. You will learn to: • Deploy the virtual network infrastructure on multiple subnets • Launch Amazon Machine Images (AMIs) of Windows Server 2008 R2 • Set up Active Directory and DNS • Launch and configure the WSFC nodes • Create a SQL Server AlwaysOn Availability Group
ProductCamp Boston is the world's largest and most exciting crowd-sourced one-day event for product people. It's organized by and for product managers, product marketers and entrepreneurs, so attendees get the most out of the day.
Attendees learn about and discuss topics in product management and product marketing, product discovery, product development & design, go-to-market, product strategy and lifecycle management, and product management 101, startups, and career development.
www.ProductCampBoston.org
Building RESTful applications using Spring MVCIndicThreads
REST is an alternate and simpler approach for implementing WebServices. It is based on the HTTP protocol and hence leverages a lot of existing infrastructures. It uses an uniform interface thus making it easy to build client applications. In this session we will look at the fundamental concepts behind REST (Resource, URI, Stateless Conversation ..) and how to apply it in the context of a real applcation. We will also discuss the pros & cons of RESTful vs Soap based webservices. We will discuss the design of RESTful application and then look at how to implement it using Spring MVC.
Easy Integration with Apache Camel and Fuse IDEJBUG London
The talk presented by James Strachan (Red Hat) on the 6th of March 2013 at the London JBoss USer Group event.
Visit London JBUG on Meetup http://www.meetup.com/JBoss-User-Group/
※다운로드하시면 더 선명한 자료를 보실 수 있습니다.
PAYCO 쇼핑의 아키텍처를 MSA로 변경하면서 겪은 삽질을 공유합니다.
레거시 서비스에서 서비스를 분리해내는 방법과 순서, 이후 고려해야 할 사항을 공유하고자 합니다.
목차
1. PAYCO 쇼핑?
2. 프로젝트 진행 과정
3. 아키텍처 공유
대상
- MSA, Spring cloud, Docker, Ansible 등을 실무에 적용하는 방법에 관심이 있는 분
- Spring Cloud를 써서 MSA로 개발하고 싶은데 어디서부터 손대야 할지 모르는 분
■관련 동영상: https://youtu.be/l195D5WT_tE
AWS에서 애플리케이션을 빌드하고 배포하려고 할 때 개발자와 애플리케이션에 올바른 권한을 부여하는 것은 보안에 매우 중요합니다. 이 과정에서는 AWS IAM의 주요 엔티티들에 대해서 알아보고 STS를 통한 임시 자격 증명, 자격 증명 연동 및 모범 사례 그리고 문제 해결에 대해서 개발자와 운영자 보안 담당자의 관점을 통해 입체적으로 알아봅니다.
AWS 클라우드를 활용하면 사용자의 트래픽에 따라 IT 인프라 아키텍처를 확장할 수 있습니다. 이번 강연에서는 서비스 초기의 작은 트래픽에 대응할 수 있는 단순한 아키텍처로 시작해 사업 성장 후의 수백만 사용자에 달하는 대규모 트래픽을 지탱할 수 있는 고확장성 아키텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 소개해 드리고 컴퓨팅 및 데이터베이스 선택 및 사용자 증가에 따른 트래픽 경감 방법, 오토스케일링 및 모니터링과 자동화, DB 부하 분산, 고가용성 확보 등에 대한 다양한 모범사례를 알려드릴 예정입니다.
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021Amazon Web Services Korea
서버리스는 오늘날 클라우드에서 가장 인기있는 디자인 패턴 중 하나입니다. 서버 및 운영 체제 운영의 부담은 덜고 서비스의 개발 및 구축을 통해 빠르게 혁신에 집중할 수 있기 때문입니다. 본 강연에서는 클라우드 네이티브한 방식으로 서버리스 애플리케이션을 고도화 하는 방법에 관해 알아봅니다. 아키텍처를 디커플링하고 비동기적으로 구성함으로써 보다 유연한 확장이 가능하게 됩니다. Amazon API Gateway, AWS Lambda 를 활용한 기본적인 서버리스 애플리케이션을 Lambda의 신규 기능과 Amazon SQS, Amazon RDS Proxy, AWS Secrets Manager 등을 활용해 보다 안정적으로 확장하는 방법에 관해 알아봅니다.
AWS Webinar: How to architect and deploy a multi tier share point server farm...Amazon Web Services
AWS Solution Architect discusses high availability features for Microsoft Windows Server and SQL Server running on the AWS Cloud. Windows Server Failover Clustering (WSFC) and SQL AlwaysOn Availability Groups are part of the underpinnings for many enterprise-class solutions, including Microsoft SharePoint and .NET applications. You will learn to: • Deploy the virtual network infrastructure on multiple subnets • Launch Amazon Machine Images (AMIs) of Windows Server 2008 R2 • Set up Active Directory and DNS • Launch and configure the WSFC nodes • Create a SQL Server AlwaysOn Availability Group
ProductCamp Boston is the world's largest and most exciting crowd-sourced one-day event for product people. It's organized by and for product managers, product marketers and entrepreneurs, so attendees get the most out of the day.
Attendees learn about and discuss topics in product management and product marketing, product discovery, product development & design, go-to-market, product strategy and lifecycle management, and product management 101, startups, and career development.
www.ProductCampBoston.org
Building RESTful applications using Spring MVCIndicThreads
REST is an alternate and simpler approach for implementing WebServices. It is based on the HTTP protocol and hence leverages a lot of existing infrastructures. It uses an uniform interface thus making it easy to build client applications. In this session we will look at the fundamental concepts behind REST (Resource, URI, Stateless Conversation ..) and how to apply it in the context of a real applcation. We will also discuss the pros & cons of RESTful vs Soap based webservices. We will discuss the design of RESTful application and then look at how to implement it using Spring MVC.
Easy Integration with Apache Camel and Fuse IDEJBUG London
The talk presented by James Strachan (Red Hat) on the 6th of March 2013 at the London JBoss USer Group event.
Visit London JBUG on Meetup http://www.meetup.com/JBoss-User-Group/
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.
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.
Pues volvemos de nuevo a la carga con un nuevo meetup donde os vamos a contar cómo podeis optimizar al máximo los recursos que CloudHub nos ofrece como por ejemplo:
1.- Saber dimensionar el número de operaciones por API
2.- Aplicar buenas prácticas para no saturar los recursos
3.- Aprovechar al máximo el 0.1 vCore
4.- Cuando escalar vertical y horizontalmente un API
5.- Utilizar herramientas de análisis de código como Sonar
MySQL de 1995 a 5.5
• Por que hace sentido usar Software Libre
• MySQL en mundo Oracle
• Instancias mysql, schemas, tablas...
• Múlti instancias mysqld
• Replicación semi-sync (cómo Facebook usa MySQL)
• Demo de Monitor: Advisors & Query Analyzer
• Preguntas y Respuestas
Pedro Andrade – Latin America & Caribbean Sales
Manuel Contreras – Latin America & Caribbean Consulting Engineer
MySQL Global Business Unit
Symfony-Community: Introducción a Symfony Frameworkexcedesoft
El seminario está dirigido a aquellos estudiantes, profesionales, universidades y empresas dedicados a la industria de software que deseen aprender sobre la iniciación de una aplicación Symfony. Se demostrá como descargar e instalar el framework, configuración inicial y conceptos necesarios para el desarrollo de una aplicación web simple.
Las arquitecturas sin servidores le permiten construir y ejecutar aplicaciones y servicios sin la necesidad de administrar la infraestructura que necesitan. Con las arquitecturas sin servidores en AWS su aplicación si se ejecuta en servidores pero toda la administración de los mismos la hace AWS.
En este webinar, usted aprenderá cómo construir aplicaciones y servicios mediante el uso de una arquitectura sin servidores o "serverless". Discutiremos cómo utilizar AWS Lambda para la ejecución de código para cualquier tipo de aplicación o servicio de backend; utilizar Amazon DynamoDB para almacenar los datos de la misma con una alta escalabilidad y redundancia; y utilizar Amazon API Gateway para crear y administrar puntos de conexión seguros API. También veremos un demo de cómo montar una arquitectura como estas y discutiremos las mejores prácticas y patrones utilizados por nuestros clientes para ejecutar aplicaciones sin servidores.
Objetivos de aprendizaje:
• Entender los conceptos básicos de arquitecturas sin servidores
• Aprender cómo usar Lambda, API Gateway y DynamoDB para ejecutar aplicaciones
¿Quién debería atender?:
• Desarrolladores, desarrolladores Web
El desarrollo de aplicaciones web ha evolucionado muchísimo en los últimos años. Las interfaces de usuario que queremos diseñar son cada vez más avanzadas y requieren del uso de nuevas técnicas de desarrollo (y escribir mucho código en la capa correspondiente al navegador, principalmente en JavaScript). Conceptos como SPA, Ajax, patrones MV* están alcanzando el top en los stacks de desarrollo habituales.
Por suerte existen innumerables frameworks y herramientas para facilitarnos el trabajo, pero hay tantas que cuando nos enfrentamos a un nuevo proyecto, nos surgen una serie de inevitables preguntas…
http://dotnetters.es/evento/desarrollo-moderno-aplicaciones-web/
Similar a SG 09 Patrones de Integración Empresarial Apache Camel (20)
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.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
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 publica en 1995
• Usa una estructura muy
simple 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
14. Mercado
• Enterprise Service Bus
– Progress Software
– Oracle
– Sun
– IBM
– Tibco
• Mucho dinero $ y muchas otras opciones...
14
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
asíncrona como piedra
angular para la integración.
17
18. ¿Porque mensajería?
• Comunicación de aplicaciones a
aplicaciones
• Asíncrono
• La información se intercambia como
mensajes sobre canales
• Confiable (durable). Se permiten
operaciones sin conexión
• Mejora el uso de hilos
• Transaccional
18
27. EIP
• Pros
– Escalamiento
– Desacoplamiento
– Pruebas de unidad (Unit Testing)
• Contras
– Latencia VS rendimiento (throughput)
– Pruebas de integración (Integration Testing)
– Desacoplamiento no es siempre lo mas
adecuado
27
28. Apache Camel
Me gusta el OpenSource.
A veces no tenemos dinero para
adquirir licencias.
28
29. Apache Camel
• Es un poderoso framework que implementa
gran cantidad de los EIP
• http://camel.apache.org
29
30. Apache Camel
• Bajo la licencia Apache 2.0
• Puedes implementar reglas de ruteo y
mediación con:
– Un Domain Specific Language (DSL) en Java
– Con XML (Spring)
– Con un DSL en Scala
• Utiliza URIs para identificar los endpoints
de la aplicación
30
32. 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
32
33. 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?
33
34. 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
34
35. CamelContext
• Es un objeto que representa el sistema de
ejecución de Camel
• Administra el ciclo de vida de los
componentes configurados en Camel
35
36. 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");
36
37. Tipos de componentes
• Apache Camel soporta múltiples
componentes entre ellos (+70):
– JMS
– FTP
– POP3, SMTP
– WebServices
– Archivos
– Protocolo FIX
– Hibernate
– HL7 (Estandar Médico)
– Sockets con Apache Mina
– Personalizables
37
42. Caso de estudio
Cámara de Compensación del
Mercado de Derivados
42
43. 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
43
44. 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
44
45. 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.
45
46. Contexto
Message Message JMS-ActiveMQ
SocketServer Message Splitter Event-Driven
Channel Translator Channel Consumer
JMS-Weblogic Transactional Content Based Message
Channel Resequencer
Client Router Translator
Event-Driven
Consumer Control Bus
46
48. Conclusiones
• La implementación de los EIP fue una
buena decisión
• Permitió reutilizar ideas y soluciones
probadas
• La arquitectura quedo muy bien definida,
clara y de fácil comprensión
• Incluso el usuario pudo entender y opinar
sobre nuestros modelos de diseño
(Nomenclatura estándar de EIP)
48
49. Apache Camel
• No tuvimos que implementar casi nada de
infraestructura
• Usamos la infraestructura disponible
• No pagamos licencias
• Usamos las facilidades del servidor de
aplicaciones y agregamos el excelente
funcionamiento de ActiveMQ
49
50. Apache Camel
• La implementación de la logica de negocio
fue en Java Puro
• Facilito implementar pruebas de unidad
muy simple
• No fue necesario utilizar herramientas
especiales, solo el IDE (Eclipse)
• Alto performance
• Aplicación integrada a todos los procesos
de negocio de la cámara de compensación.
50
51. Contexto
Message Message JMS-ActiveMQ
SocketServer Message Splitter Event-Driven
Channel Translator Channel Consumer
JMS-Weblogic Transactional Content Based Message
Channel Resequencer
Client Router Translator
Event-Driven
Consumer Control Bus
51
52. Preguntas y Respuestas
domingo.suarez@synergyj.com
twitter: @domix
Presentación: http://slideshare.net/domingo.suarez
53. Créditos de las fotos
• http://www.flickr.com/photos/elvispayne/2074381213/
• http://www.flickr.com/photos/samiksha/429302387/
• http://www.flickr.com/photos/vetrone/3046845038/
• http://www.flickr.com/photos/elpei/812950306/
• http://www.flickr.com/photos/stevephillips/238560751/
• http://www.flickr.com/photos/pensiero/628674486/
•
53