Pregunta

Yo no entiendo qué es exactamente lo Camello no.

Si usted podría dar en 101 palabras una introducción a Camello:

  • ¿Qué es exactamente?
  • ¿Cómo interactúa con una aplicación escrita en Java?
  • Es algo que va de la mano con el servidor?
  • Es un programa independiente?

Por favor explique lo Camello.

¿Fue útil?

Solución

Si tiene de 5 a 10 minutos, generalmente le recomiendo a la gente que lea esto. Integración con Apache Camel por Jonathan Anstey. Es una pieza bien escrita que ofrece una breve introducción y visión general de algunos de los conceptos de Camel, e implementa un caso de uso con muestras de código. En él, Jonathan escribe:

Apache Camel es un marco Java de código abierto que se centra en hacer que la integración sea más fácil y más accesible para los desarrolladores. Hace esto proporcionando:

  • implementaciones concretas de todos los ampliamente utilizados Patrones de integración empresarial (EIPS)
  • conectividad a una gran variedad de transportes y API
  • Idiomas específicos de dominio (DSL) fáciles de usar para alambre EIPS y transportes juntos

También hay un capítulo gratuito de Camel en acción que presenta Camel en el primer capítulo. Jonathan es coautor en ese libro conmigo.

Otros consejos

Mi tomar para describir esto de un modo más accesible...

Con el fin de entender lo que Apache Camel es, usted necesita entender qué Patrones de Integración Empresarial son.

Vamos a empezar con lo que presumiblemente ya sabemos:El patrón Singleton, el patrón de Fábrica, etc;Son simplemente maneras de organizar tu solución para el problema, pero no son soluciones a sí mismos.Estos patrones fueron analizados y se extrae para el resto de nosotros por la banda de los Cuatro, cuando se publicó su libro: Patrones De Diseño.Se guardan algunos de nosotros un esfuerzo tremendo en la forma de pensar de la mejor manera para la estructura de nuestro código.

Mucho como la banda de los Cuatro, Gregor Hohpe y Bobby Woolf, autor del libro Patrones De Integración Empresarial (EIP) en las que se proponen y documentar un conjunto de nuevos patrones y planos cómo podríamos mejor diseño de grandes sistemas basados en componentes, donde los componentes pueden estar en ejecución en el mismo proceso o en una máquina diferente.

Básicamente, proponer que se estructura nuestro sistema mensaje orientado -- donde los componentes se comunican unos con los otros mediante mensajes como entradas y salidas, y absolutamente nada más.Ellos nos muestran un conjunto completo de patrones que podemos elegir y aplicar en nuestras diferentes componentes que en conjunto forman el sistema en su conjunto.

Entonces, ¿qué es Apache Camel?

Apache Camel ofrece las interfaces para la Eip, los objetos de base, comúnmente necesarios implementaciones, herramientas de depuración, un sistema de configuración, y muchos otros ayudantes, que le ahorrará un montón de tiempo cuando se desea implementar su solución para seguir la Eip.

Tomar MVC.MVC es bastante simple en teoría y podríamos implementar sin ningún marco de la ayuda.Pero bueno frameworks MVC nos proporcionan la estructura listo para usar, y han ido más allá y el pensamiento de todos los otros "de lado" las cosas que usted necesita cuando usted crear un gran proyecto de MVC y es por eso que uso la mayoría del tiempo.

Eso es exactamente lo que Apache Camel es para Eip. Se trata de una completa lista para producción de marco para la gente que quiere implementar la solución para seguir la Eip.

Creando un Descripción del Proyecto no debe ser complicado.

Yo digo:

Apache Camel es Glue de tecnología de mensajería con enrutamiento. Se une a los puntos de inicio y finalización de mensajes que permiten la transferencia de mensajes de diferentes fuentes a diferentes destinos. Por ejemplo: JMS -> JSON, HTTP -> JMS o FUNNELING FTP -> JMS, HTTP -> JMS, JSON -> JMS

Wikipedia dice:

Apache Camel es un motor de enrutamiento y mediación basado en reglas que proporciona una implementación basada en objetos Java de los patrones de integración empresarial utilizando una API (o lenguaje específico de dominio Java) para configurar las reglas de enrutamiento y mediación. El lenguaje específico del dominio significa que Apache Camel puede admitir la finalización inteligente tipo de ruta de las reglas de enrutamiento en su IDE utilizando el código Java regular sin grandes cantidades de archivos de configuración XML; Aunque la configuración XML dentro de la primavera también es compatible.

¿Ver? Eso no fue difícil, ¿verdad?

En breve:

Cuando exista un requisito para conectar / integrar sistemas, probablemente necesite conectarse a algún origen de datos y luego procesar estos datos para que coincidan con los requisitos de su negocio.

Para hacer eso:

1) Puede desarrollar un programa personalizado que lo haría (podría llevar mucho tiempo y difícil de entender, mantener para otro desarrollador)

2) Alternativamente, puede usar Apache Camel para hacerlo de manera estandarizada (tiene la mayoría de los conectores ya desarrollados para usted, solo necesita configurarlo y enchufar su lógica, llamado proceso):

Camel te ayudará a:

  1. Consumir datos de cualquier fuente/formato
  2. Procesar estos datos
  3. Datos de salida a cualquier fuente/formato

Al usar Apache Camel, facilitará la comprensión / mantenimiento / extenderá su sistema a otro desarrollador.

Apache Camel se desarrolla con patrones de integración empresarial. Los patrones lo ayudan a integrar los sistemas de una buena manera :-)

Camel envía mensajes de A a B:

enter image description here

¿Por qué todo un marco para esto? Bueno, ¿y si tienes?

  • muchos remitentes y muchos receptores
  • una docena de protocolos (ftp, http, jms, etc.)
  • muchas reglas complejas
    • Envíe un mensaje A a los receptores A y B solamente
    • Enviar un mensaje B al receptor c como xml, pero en parte traducir eso, enriquecer It (agregar metadatos) y Si la condición x, luego envíelo al receptor D también, pero como CSV.

Así que ahora necesitas:

  • traducir Entre protocolos
  • pegamento componentes juntos
  • Definir rutas - ¿Qué va donde
  • filtrar Algunas cosas en algunos casos

Camel te da lo anterior (y más) fuera de la caja:

enter image description here

con un lenguaje DSL genial para que define qué y cómo:

  new DefaultCamelContext().addRoutes(new RouteBuilder() {
        public void configure() {
            from("jms:incomingMessages")
                    .choice() // start router rules
                    .when(header("CamelFileName")
                            .endsWith(".xml"))
                    .to("jms:xmlMessages")
                    .when(header("CamelFileName")
                            .endsWith(".csv"))
                    .to("ftp:csvMessages");
}

Ver también este y este y Camel en acción (como otros han dicho, ¡un excelente libro!)

Un diagrama es mejor que miles de descripción. Este diagrama ilustra la arquitectura del camello.

enter image description here

BASADA EN LA ANALOGÍA

Camello de enrutamiento basado puede ser entendido mucho más fácilmente por ponerse en los zapatos de una Aerolínea propietario (ej.:American Airlines, Jet Airways) .

Propósito de 'su aerolínea' es 'llevar' 'pasajeros' de una 'ciudad' de uno a otro en el mundo.Utilizar aeronaves de diferentes aeronaves de las empresas como Boeing, Airbus, HAL para el transporte de pasajeros.

La aerolínea tablas de pasajeros que utilizan los aeropuertos de' de la ciudad y deboards ellos utilizando el aeropuerto de la ciudad.Un pasajero puede 'viajar' a varias ciudades, pero en todas partes tienen que pasar por el aeropuerto para viajar entre su aeronaves de la línea aérea y de la ciudad.

Tenga en cuenta que un pasajero 'saliendo' de la ciudad es esencialmente 'llegar' a tu airlines' de un avión.Y un passeger 'llegar' a la ciudad, es esencialmente saliendo de la aeronave.Ya que estamos en los zapatos de las compañías aéreas por el propietario, en el plazo de la llegada de los pasajeros " y "saliendo de pasajeros' se invierte a partir de nuestras nociones convencionales que se basan en las ciudades perspectiva.

Mismo 'aeropuerto' infraestructura de cada ciudad es utilizado por 'saliendo' de los pasajeros y de la llegada de los' pasajeros.Un aeropuerto proporciona 'saliendo de la infraestructura" para los pasajeros de salida, que es diferente de la de la llegada de la infraestructura", que ofreció para los pasajeros que llegan.

Los pasajeros pueden seguir haciendo su día a sus actividades debido a varios 'servicios' prestados en el interior de la aeronave por sus aerolíneas, mientras viaja.

En la parte superior de la que, a su aerolínea también ofrece sala de instalaciones para tratamientos especiales como la comprensión en el idioma local' y o te estás preparando para el 'viaje'.

Permite reemplazar algunas palabras/frases que se usan anterior con la siguiente:

su línea aérea:Apache Camel

compañías aéreas:Mecanismos de transporte

su aeronaves de la línea aérea:Apache Camel subyacente del mecanismo de transporte

llevar:ruta

los pasajeros:mensaje;

ciudad:sistema;

aeropuerto:Camello Componente;

la comprensión de los idiomas locales:Las Conversiones De Tipo;

salida:la producción, producido

de llegar:consumir, consumir

de viaje:enrutan

comodidades:siempre

Después de la sustitución de las palabras, aquí es lo que obtienes:

Propósito de 'Apache Camel" es la ruta de 'mensajes' de un 'sistema' de uno a otro en el mundo.Apache camel utiliza diferentes mecanismos de transporte para el enrutamiento de mensajes.

Apache Camel recoge el uso de mensajes de 'Camello Componente basado en' el 'de' y el sistema de las gotas de ellos mediante el uso de 'Camello Componente de base' de la 'a' del sistema.Un mensaje puede enrutar a varios sistemas, pero en todas partes tienen que ir a través de 'Camello basado en Componentes para los viajes entre 'Apache Camel subyacente del mecanismo de transporte' y el sistema.

Tenga en cuenta que un mensaje de 'producido' en el sistema es esencialmente "consumidos" en Apache Camel subyacente del mecanismo de transporte'.Y un mensaje consumida por un sistema, es esencialmente producido por el 'Apache Camel subyacente del mecanismo de transporte'.

Ya que estamos intentando comprender el Camello, debemos pensar de Camello de la perspectiva de aquí en adelante.El significado de los términos de consumo de mensaje " y "productor mensaje' son ,por lo tanto, la inversa, a partir de nuestras nociones convencionales que se basan en un sistema de perspectiva.

Mismo 'Camello Componente basado en la' codificación de la infraestructura es utilizada por los productores de mensaje " y "consumidor mensaje'.Un 'Camello Componente basado en' proporciona un 'productor extremo' para 'productor mensaje' y un 'extremo de consumidor' para 'consumidor mensaje'.

Los mensajes pueden ser procesados por Camello cuando ellos están siendo enviados.

En la parte superior de esta ruta, Camello proporciona características especiales como "la Conversión de Tipo' y muchos más...

Una de las cosas que necesita comprender, antes de intentar comprender Apache Camel, son los patrones de integración empresarial. No todos en el campo son realmente conscientes de ellos. Si bien ciertamente puede leer el libro de patrones de integración empresarial, una forma más rápida de ponerse al día sería leer algo como el artículo de Wikipedia sobre Integración de aplicaciones empresariales.

Uno que haya leído y entendido el área temática, es mucho más probable que comprenda el propósito de Apache Camel

Hth

Si conoce los patrones de integración empresarial, Apache Camel es un marco de integración que implementa todos los EIP.

Y puede implementar Camel como una aplicación independiente en un contenido web.

Básicamente, si tiene que integrar varias aplicaciones con diferentes protocolos y tecnologías, puede usar Camel.

Una definición desde otra perspectiva:

Apache Camel es un marco de integración. Consiste en algunas bibliotecas Java, que lo ayudan a implementar problemas de integración en la plataforma Java. Lo que esto significa y cómo difiere de las API en un lado y un bus de servicio empresarial (ESB) en el otro lado se describe en mi artículo "Cuándo usar Apache Camel".

¿Qué es exactamente?

Apache camello es un marco de integración liviano que implementa todos los patrones de integración empresarial. Puede integrar fácilmente diferentes aplicaciones utilizando los patrones requeridos.

Puedes usar Java, Spring XML, Scala o Groovy. Casi todas las tecnologías que puedas imaginar están disponibles, por ejemplo, HTTP, FTP, JMS, EJB, JPA, RMI, JMS, JMX, LDAP, Netty, etc.

Echa un vistazo a esto artículo y Artículo de patrón de EIP

¿Cómo interactúa con una aplicación escrita en Java?

Camel usa un Lenguaje específico del dominio Java o DSL Para crear patrones o rutas de integración empresarial en una variedad de idiomas específicos de dominio (DSL) como se enumera a continuación.

Java DSL - Un DSL basado en Java que usa el estilo Fluent Builder.

La historia del patrón de integración empresarial se resuelve en torno a estos conceptos:

Mensaje, punto final, productor, consumidor, enrutamiento, bus, transformación y proceso.

Echa un vistazo a esto artículo Por Anirban Konar para uno de casos de uso en tiempo real.

¿Es algo que combina con el servidor?

Actúa como un puente a través de múltiples submstems de empresas.

¿Es un programa independiente?

Apache Camel, un marco de integración, integra diferentes aplicaciones independientes.

La principal ventaja del camello : Puede integrar diferentes aplicaciones con diferentes tecnologías (y diferentes protocolos) utilizando los mismos conceptos para cada integración.

La mayoría de las "cosas nuevas" en la informática no son realmente nuevas en absoluto, son solo un envoltorio desconcertante en torno a algo que ya se entendió bien. Cuando son difíciles de entender, generalmente se debe a que alguien decidió inventar nuevos términos de idioma o colonizar los términos existentes para un propósito diferente (un buen ejemplo de que es la reversión de los desarrolladores X de lo que significa "cliente" y "servidor").

Camel es un envoltorio/API basado en Java para el middleware entre aplicaciones.

El middleware es un término general para el software que proporciona servicios de interpretación entre entidades que no comparten un lenguaje o tipos de datos comunes.

Eso es lo que es Camel, en la parte inferior. Podemos desarrollar la descripción señalando que proporciona el middleware de tipo EIP.

No proporciona el middleware en sí, ya que no puede saber los detalles de lo que las aplicaciones necesitan para comunicarse. Pero proporciona la API para crear las partes invariantes de ese middleware (cree un punto de inicio, cree un punto final, cree condiciones para comenzar y terminar, etc.)

Espero que ayude.

Aquí hay otro intento de eso.

Sabes cómo hay/eran cosas como WebMethods, Ican Seebeyond, Tibco BW, IBM Broker. Todos ayudaron con soluciones de integración en la empresa. Estas herramientas son comúnmente conocidas por las herramientas de integración de aplicaciones Enterprise (EAI).

En su mayoría, se crearon herramientas de arrastre alrededor de estas tecnologías y en las partes tendría que escribir adaptadores en Java. Este código de adaptador no se había probado o tenían malas herramientas/automatización en torno a las pruebas.

Al igual que con los patrones de diseño en la programación, tiene patrones de integración empresarial para soluciones de integración comunes. Fueron famosos por un libro del mismo nombre de Gregor Hohpe y Bobby Woolf.

Aunque es bastante posible implementar soluciones de integración que usen uno o muchos EIP, Camel es un intento de hacerlo dentro de su base de código utilizando uno de XML, Java, Groovy o Scala.

Camel admite todos los patrones de integración empresarial enumerados en el libro a través de su rico DSL y mecanismo de enrutamiento.

Por lo tanto, Camel es una tecnología competitiva de otras herramientas EAI con un mejor soporte para probar su código de integración. El código es conciso debido a los idiomas específicos del dominio (DSL). Es legible incluso los usuarios comerciales y es gratuito y lo hace productivo.

Hay muchos marcos que nos facilitan los mensajes y la resolución de problemas en la mensajería. Uno de esos productos es Apache Camel.

La mayoría de los problemas comunes tienen soluciones probadas llamadas patrones de diseño. El patrón de diseño para la mensajería son los patrones de integración empresarial (EIPS) que se explican bien aquí. Apache Camel nos ayuda a implementar nuestra solución utilizando el EIPS.

La fuerza de un marco de integración es su capacidad para facilitarnos a través de EIP u otros patrones, número de transportes y componentes y facilidad de desarrollo en la que Apache Camel se encuentra en la parte superior de la lista

Cada uno de los marcos tiene sus propias ventajas, algunas de las características especiales de Apache Camel son las siguientes.

  1. Proporciona la codificación para estar en muchos DSL, a saber, Java DSL y Spring XML basado en DSL, que son populares.
  2. Fácil de usar y fácil de usar.
  3. Fuse IDE es un producto que lo ayuda a codificar a través de la interfaz de usuario

En inglés sencillo, Camel hace (muchas) cosas hechas sin gran parte del código de la placa de la caldera.

Solo para darle una perspectiva, el Java DSL que se detalla a continuación creará un punto final REST que podrá aceptar un XML que consiste en una lista de productos y lo divide en múltiples productos e invocar el método de proceso de BrandProcessor con él. Y solo agregando .ParallelProcessing (tenga en cuenta la parte comentada), se procesará en paralelo todos los objetos del producto. (La clase de producto es JAXB/XJC Generado Java Stub del XSD al que se limita el XML de entrada). Este código de gran parte (junto con pocas dependencias de camello) obtendrá el trabajo que solía tomar cientos de líneas de código Java.

from("servlet:item-delta?matchOnUriPrefix=true&httpMethodRestrict=POST")
.split(stax(Product.class))
/*.parallelProcessing()*/
.process(itemDeltaProcessor);

Después de agregar el ID de ruta y la declaración de registro

from("servlet:item-delta?matchOnUriPrefix=true&httpMethodRestrict=POST")
.routeId("Item-DeltaRESTRoute")
.log(LoggingLevel.INFO, "Item Delta received on Item-DeltaRESTRoute")
.split(stax(Product.class))
.parallelProcessing()
.process(itemDeltaProcessor);

Esto es solo una muestra, el camello es mucho más que solo el punto final de descanso. Solo eche un vistazo a la lista de componentes conectables http://camel.apache.org/components.html

Camel ayuda a enrutamiento, transformación, monitoreo.

Usa rutas; que se puede describir como:

Cuando Service Bus recibe un mensaje particular, lo enrutará a través de Services/destinos de corredores, como cola/temas. Este camino se conoce como ruta.

Ejemplo:Su aplicación de acciones tiene alguna información por parte del analista, se procesará a través del componente de aplicación/web y luego el resultado se publicará a todos los miembros interesados/registrados para una actualización de acciones particular.

Introducción de 101 palabras

Camel es un marco con una API constante y un modelo de programación para integrar aplicaciones juntas. La API se basa en teorías en Patrones de integración empresarial - es decir, un montón de patrones de diseño que tienden a usar mensajes. Proporciona implementaciones fuera de la caja de la mayoría de estos patrones, y además se envía con más de 200 diferentes componentes Puede usar para hablar fácilmente con todo tipo de otros sistemas. Para usar Camel, primero escriba su lógica de negocios en POJOS e implementa interfaces simples centradas en los mensajes. Luego use el DSL de Camel para crear "rutas" que son conjuntos de reglas para pegar su aplicación.

Introducción extendida

En la superficie, la funcionalidad de Camel rivaliza con los productos tradicionales de autobuses de servicio empresarial. Por lo general, pensamos en una ruta de camello que es un componente de "mediación" (también conocido como orquestación) que vive en el lado del servidor, pero debido a que es una biblioteca de Java, es fácil de incrustar y puede vivir en una aplicación del lado del cliente y ayudarlo a integrarse con servicios de punto a punto (también conocido como coreografía). Incluso puede tomar sus POJO que procesan los mensajes dentro de la ruta de camello y los giraran fácilmente a sus propios procesos remotos de consumo, por ejemplo, si necesitaba escalar solo una pieza de forma independiente. Puede usar Camel para conectar rutas o procesadores a través de cualquier número de transporte/protocolos remotos diferentes dependiendo de sus necesidades. ¿Necesita un protocolo binario extremadamente eficiente y rápido, o uno que sea más legible humano y fácil de depurar? ¿Y si quisieras cambiar? Con Camel, esto generalmente es tan fácil como cambiar una o dos línea en su ruta y no cambiar ninguna lógica comercial. O puede apoyar a ambos: puede ejecutar muchas rutas a la vez en un contexto de camello.

Realmente no necesita usar Camel para aplicaciones simples que vivirán en un solo proceso o JVM, sería exagerado. Pero no es conceptualmente más difícil que el código que puede escribir usted mismo. Y si sus requisitos cambian, la separación de la lógica de negocios y el código de pegamento hace que sea más fácil mantener con el tiempo. Una vez que aprende la API de Camel, es fácil usarlo como un cuchillo de ejército suizo y aplicarlo rápidamente en muchos contextos diferentes para reducir la cantidad de código personalizado que de otro modo tendría que escribir. Puede aprender un sabor: el Java DSL, por ejemplo, una API fluida que es fácil de encadenar juntos, y recoger los otros sabores fácilmente.

En general, Camel es un gran ajuste si está tratando de hacer microservicios. Lo he encontrado invaluable para la arquitectura evolutiva, porque puede posponer muchas de las decisiones difíciles, "fáciles de obtener" sobre los protocolos, los transportes y otros problemas de integración del sistema hasta que sepa más sobre su dominio de problemas. Simplemente concéntrese en sus EIP y su lógica comercial central y cambie a nuevas rutas con los componentes "correctos" a medida que aprende más.

Sí, esto probablemente sea un poco tarde. Pero una cosa que debe agregar a los comentarios de todos los demás es que Camel es en realidad una caja de herramientas en lugar de un conjunto completo de características. Debe tener esto en mente cuando se desarrolle y necesita hacer varias transformaciones y conversiones de protocolo.

Camel mismo se basa en otros marcos y, por lo tanto, a veces también necesita comprenderlos para comprender cuál es el más adecuado para sus necesidades. Hay, por ejemplo, múltiples formas de manejar el descanso. Esto puede ser un poco confuso al principio, pero una vez que comience a usar y probar, se sentirá a gusto y su conocimiento de los diferentes conceptos aumentará.

Apache Camel es un marco Java para la integración empresarial. Por ejemplo: si está creando una aplicación web que interactúa con muchas API de proveedores, podemos usar el camello como herramienta de integración externa. Podemos hacer más con él según el caso de uso. Camel in Action de Manning Publications es un gran libro para el aprendizaje de Camel. Las integraciones se pueden definir como a continuación.

Java DSL

from("jetty://0.0.0.0:8080/searchProduct").routeId("searchProduct.products").threads()
    .log(LoggingLevel.INFO, "searchProducts request Received with body: ${body}")
    .bean(Processor.class, "createSearchProductsRequest").removeHeaders("CamelHttp*")
    .setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST))
    .to("http4://" + preLiveBaseAPI + searchProductsUrl + "?apiKey=" + ApiKey
                    + "&bridgeEndpoint=true")
    .bean(Processor.class, "buildResponse").log(LoggingLevel.INFO, "Search products finished");

Esto es simplemente crear un punto final API REST que a su vez llama a una API externa y envía la solicitud de nuevo

DSL de primavera

<route id="GROUPS-SHOW">
    <from uri="jetty://0.0.0.0:8080/showGroups" />
    <log loggingLevel="INFO" message="Reqeust receviced service to fetch groups -> ${body}" />
    <to uri="direct:auditLog" />
    <process ref="TestProcessor" />
</route>

Viniendo a tus preguntas

  1. ¿Qué es exactamente? Respuesta:- Es un marco que implementa patrones de integración empresarial
  2. ¿Cómo interactúa con una aplicación escrita en Java? Respuesta:- Puede interactuar con cualquier protocolos disponibles como HTTP, FTP, AMQP, etc.
  3. ¿Es algo que combina con el servidor? Respuesta:- Se puede implementar en un contenedor como Tomcat o se puede implementar de forma independiente como un proceso de Java
  4. ¿Es un programa independiente? Respuesta:- Puede ser.

Espero eso ayude

Suponga que crea una empresa de comercio electrónico como Amazon, y solo desea centrarse en la estrategia/elección de productos para vender. A diferencia de la flota de entrega de Amazon, en lugar de manejar el mudanza de productos de vendedores a almacén, haciendo cambios en el almacén como empacar y enviarlo a otras ciudades y clientes. Contrata una empresa que haga todo esto y solo les brinde información de todas las ubicaciones de sus almacenes, tipos de vehículos, ubicaciones de entrega y una lista de cuándo hacer qué. Luego manejan eso por sí mismos, eso sería Apache Camel. Se encargan de mover las cosas de un extremo a otro, una vez que las transmite cosas a ellos, para que sea libre de concentrarse en otras cosas.

Es como una tubería que se conecta

From---->To

Entre se puede agregar tantos canales y tuberías. El grifo puede ser de cualquier tipo automático o manual para el flujo de datos y una ruta para canalizar el flujo.

Admite y tiene implementación para todos los tipos y tipos de procesamiento. Y para el mismo procesamiento de muchos enfoques porque tiene muchos componentes y cada componente también puede proporcionar la salida deseada utilizando diferentes métodos en él.

Por ejemplo, la transferencia de archivos se puede realizar en camello con el archivo de tipos movido o copiado y también desde la carpeta, el servidor o la cola.

-from-->To
   - from-->process-->to
   - from-->bean-->to
   - from-->process-->bean-->to
   -from-->marshal-->process-->unmarshal-->to

De/a ---- carpeta, directa, seda, vm puede ser cualquier cosa

Otro punto de vista (basado en temas matemáticos más fundamentales)

La plataforma de computación más general es una [https://en.wikipedia.org/wiki/turing_machine

Hay un problema con la máquina Turing. Todos los datos de entrada/salida permanecen dentro de la máquina Turing. En el mundo real hay fuentes de entrada y sumideros de salida externos a nuestra máquina Turing, y en general gobernada por sistemas fuera de nuestro control. Es decir, esos sistemas externos enviarán/recibirán datos a voluntad en cualquier formato con cualquier scheduler de datos deseado.

Pregunta: ¿Cómo logramos hacer que las máquinas turing independientes se hablen entre sí de la manera más general para que cada máquina turing vea a sus compañeros como una fuente de datos de entrada o sumidero de datos de salida?

Respuesta: Uso de algo como Camel, Mule, BizTalk o cualquier otro ESB que abstenga el manejo de datos entre completar máquinas "físicas" (o software virtuales) distintas.

Apache Camel es un ligero marco de integración que implementa todos los patrones de Integración Empresarial.Usted puede fácilmente integrar diferentes aplicaciones de usar los patrones.Puede utilizar Java, Spring XML, Scala o Groovy.

Apache Camel se ejecuta en la Máquina Virtual de Java (JVM)....El núcleo de la funcionalidad de Apache Camel es su motor de enrutamiento.Asigna los mensajes basándose en los relacionados con las rutas.Una ruta contiene el flujo y la integración de la lógica.Se implementa el uso de estos programas y una específica de DSL.

enter image description here

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top