Domanda

Non capisco cosa esattamente Cammello fa.

Se potessi dare a 101 parole un'introduzione al cammello:

  • Cos'è esattamente?
  • Come interagisce con un'applicazione scritta in Java?
  • È qualcosa che va insieme al server?
  • È un programma indipendente?

Per favore, spiega cos'è il cammello.

È stato utile?

Soluzione

Se hai da 5 a 10 minuti, generalmente consiglio alle persone di leggere questo Integrazione con Apache Camel di Jonathan Anstey. È un pezzo ben scritto che fornisce una breve introduzione e una panoramica di alcuni concetti di Camel e implementa un caso d'uso con campioni di codice. In esso, Jonathan scrive:

Apache Camel è un framework Java open source che si concentra sul rendere l'integrazione più semplice e più accessibile agli sviluppatori. Lo fa fornendo:

  • implementazioni concrete di tutte le ampiamente utilizzate Modelli di integrazione aziendale (EIPS)
  • connettività a una grande varietà di trasporti e API
  • Lingue specifiche del dominio (DSL) facili da usare per collegare EIP e trasporti insieme

C'è anche un capitolo gratuito di Cammello in azione che introduce il cammello nel primo capitolo. Jonathan è coautore di quel libro con me.

Altri suggerimenti

La mia opinione per descriverlo in un modo più accessibile ...

Per capire cos'è Apache Camel, devi capire quali sono i modelli di integrazione aziendale.

Cominciamo con ciò che presumibilmente già sappiamo già: il modello singleton, il modello di fabbrica, ecc.; Sono semplicemente modi di organizzare la tua soluzione al problema, ma non sono soluzioni stesse. Questi schemi sono stati analizzati ed estratti per il resto di noi dalla banda di quattro, quando hanno pubblicato il loro libro: Modelli di progettazione. Hanno salvato alcuni di noi enormi sforzi nel pensare a come strutturare al meglio il nostro codice.

Proprio come la banda di quattro, Gregor Hohpe e Bobby Woolf hanno scritto il libro Modelli di integrazione aziendale (EIP) in cui propongono e documentano una serie di nuovi schemi e progetti per come potremmo migliore Progetta sistemi basati su componenti di grandi dimensioni, in cui i componenti possono essere in esecuzione sullo stesso processo o in una macchina diversa.

Fondamentalmente propongono di strutturare il nostro sistema Messaggio Orientati: dove i componenti comunicano reciproci usando i messaggi come input e output e assolutamente nient'altro. Ci mostrano un insieme completo di schemi tra cui scegliere e implementare nei nostri diversi componenti che costituiranno insieme l'intero sistema.

Allora cos'è Apache Camel?

Apache Camel offre le interfacce per EIP, gli oggetti di base, le implementazioni comunemente necessarie, gli strumenti di debug, un sistema di configurazione e molti altri aiutanti che ti faranno risparmiare un sacco di tempo quando si desidera implementare la soluzione per seguire l'EIPS.

Prendi MVC. MVC è piuttosto semplice in teoria e potremmo implementarlo senza alcun aiuto quadro. Ma buoni framework MVC ci forniscono la struttura pronti all'uso e hanno fatto il miglio in più e hanno pensato a tutte le altre cose "lato" di cui hai bisogno quando crei un grande progetto MVC ed è per questo che le usiamo la maggior parte del tempo.

Questo è esattamente ciò che Apache Camel è per gli EIP. È un quadro completo pronto per la produzione per le persone che vogliono implementare la loro soluzione per seguire gli EIP.

Creazione di a descrizione del progetto non dovrebbe essere complicato.

Dico:

Apache Camel è la colla tecnologia di messaggistica con il routing. Si unisce ai punti di partenza e finali di messaggistica che consentono il trasferimento dei messaggi da diverse fonti a diverse destinazioni. Ad esempio: JMS -> JSON, HTTP -> JMS o FUNCONING FTP -> JMS, HTTP -> JMS, JSON -> JMS

Wikipedia dice:

Apache Camel è un motore di routing e mediazione basato sulle regole che fornisce un'implementazione basata su oggetti Java dei modelli di integrazione aziendale utilizzando un'API (o lingua specifica del dominio Java dichiarativo) per configurare le regole di routing e mediazione. Il linguaggio specifico del dominio significa che Apache Camel può supportare il completamento intelligente del tipo di regole di routing nell'IDE utilizzando il codice Java normale senza enormi quantità di file di configurazione XML; Sebbene anche la configurazione XML all'interno di Spring sia supportata.

Vedere? Non era difficile?

In breve:

Quando è necessario connettere / integrare i sistemi, è probabilmente necessario connettersi ad alcune fonti di dati e quindi elaborare questi dati per soddisfare i requisiti aziendali.

Per farlo:

1) Potresti sviluppare un programma personalizzato che lo farebbe (potrebbe richiedere tempo e difficile da capire per gli altri sviluppatori)

2) In alternativa, è possibile utilizzare Apache Camel per farlo in modo standardizzato (ha la maggior parte dei connettori già sviluppati per te, devi solo impostarlo e collegare la tua logica - chiamata processo):

Il cammello ti aiuterà a:

  1. Consumare dati da qualsiasi fonte/formato
  2. Elaborare questi dati
  3. Dati di output su qualsiasi origine/formato

Utilizzando Apache Camel ti semplificherai di capire / mantenere / estendere il sistema a un altro sviluppatore.

Apache Camel è sviluppato con i modelli di integrazione aziendale. I modelli ti aiutano a integrare i sistemi in modo positivo :-)

Camel invia messaggi da A a B:

enter image description here

Perché un intero quadro per questo? Bene, cosa succede se hai:

  • Molti mittenti e molti ricevitori
  • una dozzina di protocolli (ftp, http, jms, eccetera.)
  • molte regole complesse
    • Invia un messaggio A ai ricevitori A e B solo
    • Invia un messaggio B al ricevitore C Come XML, ma in parte tradurre esso, arricchire (aggiungi metadati) e Se condizione x, Quindi invialo anche al ricevitore D, ma Come CSV.

Quindi ora hai bisogno:

  • tradurre tra protocolli
  • colla componenti insieme
  • Definisci rotte - Cosa va dove
  • filtro alcune cose in alcuni casi

Camel ti dà quanto sopra (e altro) fuori dalla scatola:

enter image description here

con un bel linguaggio DSL per definire il cosa e come:

  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");
}

Guarda anche questo e questo e cammello in azione (come altri hanno detto, un libro eccellente!)

Un diagramma è migliore di migliaia di descrizione. Questo diagramma illustra l'architettura del cammello.

enter image description here

Basato sull'analogia

Il routing basato su cammello può essere compreso molto facilmente mettendoti nei panni di un proprietario di una compagnia aerea (ad es. American Airlines, Jet Airways).

Lo scopo della "tua compagnia aerea" è "trasportare" i "passeggeri" da una "città" a un'altra al mondo. Utilizzi aeromobili di diverse "compagnie di aeromobili" come Boeing, Airbus, Hal per trasportare passeggeri.

I passeggeri della tua compagnia aerea che usano "aeroporti" della città e li deboard usando l'aeroporto della città. Un passeggero può "viaggiare" in più città, ma ovunque devono attraversare l'aeroporto per viaggiare tra gli aerei della tua compagnia aerea e la città.

Si noti che un passeggero "in partenza" dalla città sta essenzialmente "arrivando" all'aereo delle compagnie aeree. E un passeger "in arrivo" in città, si sta essenzialmente partendo dal velivolo. Dal momento che siamo nei panni del proprietario della compagnia aerea, il termine "passeggero di arrivo" e "passeggero in partenza" sono invertiti dalle nostre nozioni convenzionali che si basano sulla prospettiva delle città.

La stessa infrastruttura "aeroportuale" di ogni città viene utilizzata dai passeggeri "in partenza" e dai passeggeri "Arrivo". Un aeroporto fornisce "infrastrutture in partenza" per i passeggeri in partenza, che è diverso dall'infrastruttura di arrivo prevista per i passeggeri in arrivo.

I passeggeri possono continuare a fare la giornata per le loro attività a causa di vari "servizi" forniti all'interno dell'aeromobile dalle tue compagnie aeree, mentre viaggiano.

Inoltre, la tua compagnia aerea fornisce anche strutture lounge per trattamenti speciali come la "comprensione della lingua locale" e / o prepararti per il "viaggio".

Sostituiamo poche parole/frasi usate sopra con i seguenti:

La tua compagnia aerea: Apache Camel

Compagie di aeromobili: meccanismi di trasporto

Aereo della tua compagnia aerea: il meccanismo di trasporto sottostante di Apache Camel

Carry: percorso

passeggeri: messaggio;

Città: sistema;

Aeroporto: componente Camel;

Comprensione delle lingue locali: digitare le conversioni;

Partenza: produzione, prodotto

Arrivo: consumo, consumato

Viaggio: instradato

Servizi: fornito

Dopo aver sostituito le parole, ecco cosa ottieni:

Scopo di "Apache Camel" è inserire "messaggi" da un "sistema" a un altro al mondo. Apache Camel utilizza diversi meccanismi di trasporto per il routing dei messaggi.

Apache Camel raccoglie i messaggi utilizzando il "componente basato su cammello" del sistema "da" e li lascia cadere usando il "componente basato su cammello" del sistema "a". Un messaggio può instradare verso più sistemi, ma ovunque devono passare attraverso "componenti basati su cammelli" per viaggiare tra "meccanismo di trasporto sottostante di Apache Camel" e il sistema.

Si noti che un messaggio "prodotto" dal sistema è essenzialmente "consumato" nel meccanismo di trasporto sottostante di Apache Camel ". E un messaggio consumato da un sistema, è essenzialmente prodotto dal "meccanismo di trasporto sottostante di Apache Camel".

Dal momento che stiamo tentando di comprendere il cammello, dobbiamo pensare dalla prospettiva di Camel qui in poi. Il significato dei termini "messaggio del consumatore" e "messaggio produttore" sono, quindi, invertiti dalle nostre nozioni convenzionali che si basano sulla prospettiva di un sistema.

La stessa infrastruttura di codifica di "componente di cammello" viene utilizzata dal "messaggio del produttore" e dal "messaggio del consumatore". Un "componente basato su cammello" fornisce un "endpoint produttore" per il "messaggio del produttore" e un "endpoint del consumatore" per il "messaggio del consumatore".

I messaggi possono essere elaborati da Camel quando vengono instradati.

Oltre a questo routing, Camel offre funzionalità speciali come la "conversione del tipo" e molte altre ...

Una delle cose che devi capire, prima di provare a capire Apache Camel, sono i modelli di integrazione aziendale. Non tutti sul campo ne sono effettivamente consapevoli. Mentre puoi certamente leggere il libro dei modelli di integrazione aziendale, un modo più veloce per accelerare su di loro sarebbe leggere qualcosa come l'articolo di Wikipedia su Integrazione dell'applicazione aziendale.

Uno che hai letto e compreso l'area tematica, avresti molte più probabilità di comprendere lo scopo di Apache Camel

Hth

Se sei a conoscenza dei modelli di integrazione aziendale, Apache Camel è un framework di integrazione che implementa tutti gli EIP.

E puoi distribuire il cammello come applicazione autonoma in un contenuto Web.

Fondamentalmente, se devi integrare diverse applicazioni con diversi protocolli e tecnologie, è possibile utilizzare il cammello.

Una definizione da un'altra prospettiva:

Apache Camel è un framework di integrazione. È costituito da alcune biblioteche Java, che ti aiutano a implementare problemi di integrazione sulla piattaforma Java. Ciò che questo significa e come differisce dalle API da un lato e un bus di servizio (ESB) dall'altra parte è descritto nel mio articolo "Quando utilizzare Apache Camel".

Cos'è esattamente?

Apache Camel è un framework di integrazione leggero che implementa tutti i modelli di integrazione aziendale. È possibile integrare facilmente diverse applicazioni utilizzando i modelli richiesti.

Puoi usare Java, Spring XML, Scala o Groovy. Quasi tutte le tecnologie che puoi immaginare sono disponibili, ad esempio HTTP, FTP, JMS, EJB, JPA, RMI, JMS, JMX, LDAP, Netty ecc.

dai un'occhiata a questo articolo e Articolo del modello EIP

Come interagisce con un'applicazione scritta in Java?

Camel usa a Lingua specifica del dominio Java o DSL Per la creazione di schemi di integrazione o percorsi aziendali in una varietà di linguaggi specifici del dominio (DSL) come elencato di seguito.

Java DSL - Un DSL basato su Java che utilizza lo stile Builder Fluent.

La storia del modello di integrazione aziendale si risolve attorno a questi concetti:

Messaggio, end point, produttore, consumatore, routing, bus, trasformazione e processo.

dai un'occhiata a questo articolo Di Anirban Konar per uno dei casi d'uso in tempo reale.

È qualcosa che va insieme al server?

Agisce come un ponte su più sistemi secondari aziendali.

È un programma indipendente?

Apache Camel, un framework di integrazione, integra diverse applicazioni indipendenti.

Il principale vantaggio del cammello : È possibile integrare diverse applicazioni con tecnologie diverse (e protocolli diversi) utilizzando gli stessi concetti per ogni integrazione.

La maggior parte delle "nuove" cose nell'informatica non sono affatto nuove, sono solo un wrapper misterizzato attorno a qualcosa che già ben compreso. Quando sono difficili da capire, di solito è perché qualcuno ha deciso di inventare nuovi termini linguistici o colonizzare i termini esistenti per uno scopo diverso (un buon esempio di Quello è l'inversione degli sviluppatori X di ciò che significano "client" e "server".)

Camel è un wrapper/API a base di Java per il middleware inter-applicazione.

Middleware è un termine generale per il software che fornisce servizi di interpretazione tra entità che non condividono un linguaggio comune o tipi di dati.

Ecco cos'è il cammello, in fondo. Possiamo arricchire la descrizione notando che prevede il middleware di tipo EIP.

Non fornisce il middleware stesso, dal momento che non può conoscere i dettagli di ciò che le applicazioni devono comunicare. Ma fornisce l'API per la creazione delle parti invarianti di quel middleware (creare un punto di partenza, creare un punto finale, creare condizioni per l'avvio e il finale, ecc.)

Spero possa aiutare.

Ecco un altro tentativo.

Sai come ci sono/erano cose come WebMethods, ICAN SeeBeyond, Tibco BW, IBM Broker. Tutti hanno aiutato con soluzioni di integrazione nell'impresa. Questi strumenti sono comunemente noti con gli strumenti EAI (Nome Enterprise Application Integration (EAI).

C'erano principalmente strumenti di drop di resistenza costruiti attorno a queste tecnologie e in parti avresti dovuto scrivere adattatori in Java. Questi codice adattatore non erano o non testati o avevano scarso utensili/automazione sui test.

Proprio come con i modelli di progettazione nella programmazione, hai modelli di integrazione aziendale per soluzioni di integrazione comuni. Sono stati resi famosi con un libro con lo stesso nome da Gregor Hohpe e Bobby Woolf.

Sebbene sia del tutto possibile implementare soluzioni di integrazione che utilizzano una o più EIP, Camel è un tentativo di farlo all'interno della base di codice utilizzando uno di XML, Java, Groovy o Scala.

Camel supporta tutti i modelli di integrazione aziendale elencati nel libro tramite il suo ricco meccanismo DSL e di routing.

Quindi Camel è un tecnoloo concorrente per altri strumenti EAI con un supporto migliore per testare il tuo codice di integrazione. Il codice è conciso a causa delle lingue specifiche del dominio (DSL). È leggibile anche da utenti aziendali ed è gratuito e ti rende produttivo.

Ci sono molti framework che ci facilitano per i messaggi e la risoluzione di problemi nella messaggistica. Uno di questi prodotti è Apache Camel.

La maggior parte dei problemi comuni hanno dimostrato soluzioni chiamate modelli di progettazione. Il modello di progettazione per la messaggistica è i modelli di integrazione aziendale (EIP) che sono ben spiegati qui. Apache Camel ci aiuta a implementare la nostra soluzione utilizzando l'EIPS.

La forza di un framework di integrazione è la sua capacità di facilitarci attraverso EIP o altri schemi, numero di trasporti e componenti e facilità di sviluppo su cui Apache Camel si trova in cima alla lista

Ognuno dei framework ha i suoi vantaggi che alcune delle caratteristiche speciali di Apache Camel sono le seguenti.

  1. Fornisce la codifica in molti DSL, vale a dire Java DSL e Spring XML DSL, che sono popolari.
  2. Facile da usare e semplice da usare.
  3. Fuse IDE è un prodotto che ti aiuta a codificare tramite l'interfaccia utente

In un inglese semplice, il cammello ottiene (molte) cose fatte senza gran parte del codice della piastra della caldaia.

Solo per darti una prospettiva, il Java DSL indicato di seguito creerà un endpoint di riposo che sarà in grado di accettare un XML costituito da un elenco di prodotti e si divide in più prodotti e invocherà il metodo del brandprocessor con esso. E semplicemente aggiungendo .Parallelprocessing (Nota la parte commentata) elaborerà parallelo tutti gli oggetti del prodotto. (La classe di prodotti è JAXB/XJC generata da Java Stub dal XSD a cui è confinato l'XML di input.) Questo tanto codice (insieme a poche dipendenze dei cammelli) farà il lavoro che impiega 100s di linee di codice Java.

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

Dopo aver aggiunto l'ID percorso e l'istruzione di registrazione

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);

Questo è solo un campione, il cammello è molto più che un semplice punto finale di riposo. Dai un'occhiata all'elenco dei componenti collegabili http://camel.apache.org/components.html

Il cammello aiuta a routing, trasformazione, monitoraggio.

Usa percorsi; che può essere descritto come:

Quando il bus di servizio riceve un messaggio particolare, lo instraderà attraverso le destinazioni dei servizi/broker come coda/argomenti. Questo percorso è noto come percorso.

Esempio:La tua applicazione azionaria ha ottenuto alcuni input da parte dell'analista, verrà elaborato tramite il componente dell'applicazione/Web e quindi il risultato verrà pubblicato a tutti i membri interessati/registrati per un determinato aggiornamento delle azioni.

101 Word Intro

Camel è un framework con API coerente e modello di programmazione per l'integrazione di applicazioni insieme. L'API si basa sulle teorie in Modelli di integrazione aziendale - cioè, mazzo di schemi di design che tendono a usare i messaggi. Fornisce implementazioni fuori dagli schemi della maggior parte di questi schemi e inoltre navigano con oltre 200 diversi componenti Puoi usare per parlare facilmente con tutti i tipi di altri sistemi. Per utilizzare il cammello, prima scrivi la tua logica aziendale in Pojos e implementa semplici interfacce incentrate sui messaggi. Quindi utilizzare il DSL di Camel per creare "percorsi" che sono serie di regole per incollare l'applicazione insieme.

Introduzione estesa

In superficie, la funzionalità di Camel rivali i tradizionali prodotti per autobus aziendali. In genere pensiamo che un percorso del cammello sia un componente "mediazione" (aka orchestration) che vive sul lato server, ma poiché è una libreria Java è facile incorporare e può vivere anche su un'app sul lato client e aiutarti a integrarti Con i servizi di punto a punto (noto anche come coreografia). Puoi anche prendere i tuoi pojos che elaborano i messaggi all'interno del percorso del cammello e li gira facilmente nei propri processi di consumo remoti, ad esempio se dovevi ridimensionare solo un pezzo in modo indipendente. È possibile utilizzare Camel per collegare rotte o processori attraverso qualsiasi numero di diversi trasporti/protocolli a seconda delle tue esigenze. Hai bisogno di un protocollo binario estremamente efficiente e veloce o che è più leggibile dall'uomo e facile da debug? E se volessi cambiare? Con il cammello questo è di solito facile come cambiare una linea o due sul percorso e non cambiare affatto alcuna logica aziendale. Oppure potresti supportare entrambi: sei libero di percorrere molti percorsi contemporaneamente in un contesto di cammello.

Non hai davvero bisogno di usare il cammello per applicazioni semplici che vivranno in un singolo processo o JVM - sarebbe eccessivo. Ma non è concettualmente più difficile del codice che potresti scrivere da solo. E se i tuoi requisiti cambiano, la separazione della logica aziendale e del codice di colla rende più semplice la manutenzione nel tempo. Una volta imparato l'API di cammello, è facile usarla come un coltello svizzero e applicarlo rapidamente in molti contesti diversi per ridurre la quantità di codice personalizzato che altrimenti dovresti scrivere. Puoi imparare un sapore - il Java DSL, ad esempio, un'API fluente che è facile da montare insieme - e raccogliere facilmente gli altri sapori.

Nel complesso il cammello si adatta perfettamente se stai cercando di fare microservizi. L'ho trovato inestimabile per l'architettura evolutiva, perché puoi rimandare molte delle difficili decisioni "facili da coltivare" su protocolli, trasporti e altri problemi di integrazione del sistema fino a quando non sai di più sul tuo dominio problematico. Concentrati solo sulla tua logica EIP e Core Business e passa a nuove rotte con i componenti "giusti" mentre impari di più.

Sì, questo è probabilmente un po 'in ritardo. Ma una cosa da aggiungere ai commenti di tutti gli altri è che il cammello è in realtà una cassetta degli attrezzi piuttosto che un set completo di funzionalità. Dovresti tenere a mente questo durante lo sviluppo e devi fare varie trasformazioni e conversioni di protocollo.

Il cammello stesso si basa su altri framework e quindi a volte devi capire anche quelli per capire quale sia più adatto alle tue esigenze. Esistono ad esempio diversi modi per gestire il riposo. Questo può diventare un po 'confuso all'inizio, ma una volta che inizi a usare e testare ti sentirai a tuo agio e la tua conoscenza dei diversi concetti aumenterà.

Apache Camel è un framework Java per l'integrazione aziendale. Ad esempio:- Se stai costruendo un'applicazione Web che interagisce con molte API del fornitore, possiamo utilizzare il cammello come strumento di integrazione esterna. Possiamo fare di più con esso in base al caso d'uso. Il cammello in azione di Manning Publications è un ottimo libro per l'apprendimento del cammello. Le integrazioni possono essere definite come di seguito.

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");

Questo per creare solo un endpoint API REST che a sua volta chiama un'API esterna e restituisce la richiesta

Spring DSL

<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>

Venendo alle tue domande

  1. Cos'è esattamente? ANS:- È un framework che implementa i modelli di integrazione aziendale
  2. Come interagisce con un'applicazione scritta in Java? ANS:- Può interagire con qualsiasi protocolli disponibili come HTTP, FTP, AMQP ecc.
  3. È qualcosa che va insieme al server? ANS:- Può essere distribuito in un contenitore come Tomcat o può essere distribuito in modo indipendente come processo Java
  4. È un programma indipendente? Ans:- Può essere.

Spero che sia d'aiuto

Supponiamo di creare una società di e -commerce come Amazon e vuoi concentrarti solo sulla strategia/scelta dei prodotti da vendere. A differenza della flotta di consegna di Amazon, invece di te stesso maneggiare lo spostamento delle merci dai venditori al magazzino, apportando modifiche in magazzino come l'imballaggio e inviandolo ad altre città e clienti. Assumi un'azienda che fa tutto questo e fornisci loro informazioni su tutte le sedi del magazzino, i tipi di veicoli, le posizioni di consegna e un elenco di quando fare cosa. Quindi lo gestiscono da soli, che sarebbe Apache Camel. Si prendono cura di spostare le cose da un'estremità all'altra, una volta consegnati a loro, in modo da essere libero di concentrarti su altre cose.

È come una pipeline che si collega

From---->To

In mezzo a te può aggiungere tanti canali e tubi. Il rubinetto può essere di qualsiasi tipo automatico o manuale per il flusso di dati e un percorso per canalizzare il flusso.

Supporta e ha implementazione per tutti i tipi e tipi di elaborazione. E per la stessa elaborazione molti approcci perché ha molti componenti e ogni componente può anche fornire l'output desiderato utilizzando metodi diversi sotto di esso.

Ad esempio, il trasferimento di file può essere eseguito in cammello con tipi spostati o copiati e anche da cartelle, server o coda.

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

Da/a ---- cartella, diretta, seda, VM può essere qualsiasi cosa

Un altro punto di vista (basato su argomenti matematici più fondamentali)

La piattaforma informatica più generale è un [https://en.wikipedia.org/wiki/turing_machine

C'è un problema con la macchina Turing. Tutti i dati di input/output rimangono all'interno della macchina Turing. Nel mondo reale ci sono fonti di input e output affonda esterni alla nostra macchina Turing e in generale governati da sistemi al di fuori del nostro controllo. Cioè, quei sistemi esterni invieranno/riceveranno dati a volontà in qualsiasi formato con qualsiasi dati di dati desiderato.

Domanda: come riusciamo a fare in modo che le macchine di Turing indipendenti si parlino nel modo più generale in modo che ogni machine di Turing veda i propri colleghi come una fonte di dati di input o lavello di dati di uscita?

Risposta: Utilizzo di qualcosa come Camel, Mule, BizTalk o qualsiasi altro ESB che astrai la gestione dei dati tra il completamento di macchine distinte di Turing "fisico" (o software virtuale).

Apache Camel è un framework di integrazione leggero che implementa tutti i modelli di integrazione aziendale. È possibile integrare facilmente diverse applicazioni utilizzando i modelli richiesti. Puoi usare Java, Spring XML, Scala o Groovy.

Apache Camel funziona sulla macchina virtuale Java (JVM). ... La funzionalità principale di Apache Camel è il suo motore di routing. Assegna i messaggi in base alle rotte correlate. Un percorso contiene logica di flusso e integrazione. È implementato utilizzando EIPS e un DSL specifico.

enter image description here

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top