Was genau ist Apache Camel?
Ich verstehe nicht, was genau Camel tut.
Wenn Sie ihm geben könnte in 101 Wörter eine Einführung zum Kamel:
- Was genau ist es?
- Wie funktioniert die Interaktion mit einer Anwendung, die in Java geschrieben?
- Ist es etwas, das zusammen geht mit dem server?
- Ist es ein eigenständiges Programm?
Bitte erklären, was Kamel ist.
Kommentar zu dem Problem - Öffnen
Der Camel-homepage auf dem Apache jetzt die links zu dieser Frage... Für mich ist es eine Art Bestätigung der traurigen Zustand der Dinge auf die docs von Apache, dass sogar, nachdem Sie zugeben, dass Ihre eigene Erklärung ist ein buzzword-Suppe, Sie immer noch nicht, schreiben Sie einfach eine bessere Erklärung, sondern schicken die Leute hier zu Lesen, auf einer anderen Webseite über das, was Kamel ist.
Von den Zen of Python: "Wenn die Durchführung ist schwer zu erklären, es ist eine schlechte Idee. Wenn die Implementierung ist ganz einfach zu erklären, es kann eine gute Idee sein."
InformationsquelleAutor der Frage Myy | 2012-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie 5 bis 10 Minuten, die ich in der Regel empfehlen die Menschen Lesen diese Die Integration mit Apache Camel von Jonathan Anstey. Es ist ein gut geschriebenes Stück, das gibt eine kurze Einführung und übersicht über ein paar der Camel-Konzepte und setzt Sie einen use case mit code-Beispielen. In ihm, Jonathan schreibt:
Gibt es auch ein kostenloses Kapitel aus Camel in Action die stellt dem Kamel in die ersten Kapitel. Jonathan ist co-Autor auf, dass Buch mit mir.
InformationsquelleAutor der Antwort Claus Ibsen
Meine nehmen, um zu beschreiben, diese in einem leichter zugänglichen Weg...
Um zu verstehen, was Apache Camel ist, müssen Sie verstehen, was Enterprise Integration Patterns sind.
Beginnen wir mit dem, was wir vermutlich bereits wissen: Das Singleton-pattern, das Factory-pattern, etc; Sie sind lediglich Formen der Organisation Ihre Lösung für das problem, aber Sie sind nicht die Lösungen selbst. Diese Muster wurden analysiert und extrahiert für den rest von uns durch die Gang of Four, wenn Sie veröffentlicht Ihr Buch: Design Patterns. Sie gespeichert einige von uns eine enorme Anstrengung, zu denken, wie man am besten Struktur unseres Codes.
Ähnlich wie die Gang of Four, Gregor Hohpe und Bobby Woolf Autor des Buches Enterprise Integration Patterns (EIP), in dem Sie vorschlagen und dokumentieren eine Reihe von neuen mustern und Blaupausen wie könnten wir besten Entwurf großer komponentenbasierter Systeme, in denen Komponenten auf den gleichen Prozess oder in eine andere Maschine.
Dass Sie grundsätzlich vorschlagen, dass wir die Struktur unseres Systems zu werden Nachricht ausgerichtet -- wo die Komponenten kommunizieren untereinander mithilfe von Nachrichten als ein-und Ausgänge und absolut nichts anderes. Sie zeigen uns einen kompletten Satz von mustern, die können wir wählen und implementieren die in unseren verschiedenen Komponenten zusammen bilden das gesamte system.
Also, was ist Apache Camel?
Apache Camel bietet Sie die Schnittstellen für die EIP, die Basis-Objekte, die Häufig benötigt Implementierungen, debugging-tools, ein Konfigurations-system, und vielen anderen Helfern, die sparen Sie eine Menge Zeit, wenn Sie möchten, implementieren Sie Ihre Lösung zu Folgen, die EIP.
Nehmen MVC. MVC ist ziemlich einfach in der Theorie, und wir konnten es umsetzen ohne framework helfen. Aber gute MVC-frameworks stellen uns mit der Struktur bereit-zu-verwenden und haben die extra Meile gegangen, und dachte, alle anderen "Seite" Dinge, die Sie benötigen, wenn Sie eine große MVC-Projekt und das ist, warum wir Ihnen die meiste Zeit.
Das ist genau das, was Apache Camel ist für EIP. Es ist ein komplettes Betriebsfertiges Rahmen für Menschen, die möchten, implementieren Sie Ihre Lösung zu Folgen, die EIP.
InformationsquelleAutor der Antwort Amr Mostafa
Erstellen einer Projektbeschreibung sollte nicht kompliziert sein.
Ich sagen:
Wikipedia sagt:
Sehen? Das war nicht schwer, war es?
InformationsquelleAutor der Antwort David Newcomb
Kurz:
Wenn es eine Anforderung zum verbinden /integrieren Sie Systeme, werden Sie wahrscheinlich benötigen, um eine Verbindung zu einigen Daten-Quelle und dann diese Daten entsprechend Ihren geschäftlichen Anforderungen.
Damit zu tun, dass:
1) Sie entwickeln könnte benutzerdefiniertes Programm, das es tun würde (könnte sein, zeitaufwendig und schwer zu verstehen, zu pflegen, andere Entwickler)
2) Alternativ könnten Sie verwenden, Apache Camel, es zu tun in standardisierter Weise (es hat die meisten Anschlüsse bereits entwickelt, für Sie, die Sie gerade brauchen, um es einzurichten und schließen Sie Ihre Logik - Prozess genannt):
Kamel helfen Ihnen:
Mithilfe von Apache Camel, die Sie machen es leicht zu verstehen /warten /erweitern Sie Ihr system zu einem anderen Entwickler.
Apache Camel ist entwickelt mit Enterprise Integration Patterns. Die Muster, die Ihnen helfen, Systeme zu integrieren in einem guten Weg 🙂
InformationsquelleAutor der Antwort Marcin Wasiluk
Diagramm ist besser als Tausende von Beschreibung.
Dieses Diagramm veranschaulicht die Architektur von Camel.
InformationsquelleAutor der Antwort CrimsonFantasy
Camel sendet Nachrichten von A nach B:
Warum ein ganzes framework dafür? Nun, was ist, wenn Sie haben:
ftp
,http
,jms
usw.)So, jetzt benötigen Sie:
Camel gibt Ihnen die oben genannten (und mehr) out of the box:
mit einem kühlen DSL-Sprache für Sie definieren das was und wie:
Siehe auch diese und diese und Camel in Action (wie schon andere gesagt haben, ein hervorragendes Buch!)
InformationsquelleAutor der Antwort Andrejs
Eines der Dinge, die Sie brauchen, um zu verstehen, bevor Sie versuchen zu verstehen, Apache Camel, Enterprise Integration Patterns. Nicht jeder in dem Gebiet ist eigentlich bekannt sind. Während Sie können sicherlich Lesen die Enterprise Integration Patterns Buch, ein schneller Weg, um bekommen Sie bis zu Geschwindigkeit auf Sie sein würde, etwas zu Lesen, wie der Wikipedia-Artikel über Enterprise Application Integration.
Man Sie gelesen und verstanden haben Bereich, Sie wäre viel eher zu verstehen, den Sinn des Apache Camel
HTH
InformationsquelleAutor der Antwort Crollster
BASIERT AUF ANALOGIE
Camel based routing verstanden werden kann sehr leicht, indem Sie sich in die Schuhe von einem Airline-Besitzer (zB.: American Airlines, Jet Airways) .
Zweck 'Ihrer airline' zu 'tragen' 'Passagiere' von einer 'Stadt' zu einem anderen in der Welt. Sie verwenden Flugzeuge, die aus verschiedenen Luftfahrzeugen Unternehmen wie Boeing, Airbus, HAL für die Passagiere.
Ihre airline-boards Passagiere mit 'Flughäfen' der aus der Stadt und deboards Sie mit dem Flughafen der Stadt. Ein Passagier kann der 'Reise' zu mehreren Städten, sondern überall, wo Sie haben zu gehen durch den Flughafen, um die Reise zwischen der Fluggesellschaft die Flugzeuge und die Stadt.
Beachten Sie, dass ein Passagier, 'ausgehend' von der Stadt ist im wesentlichen 'Ankunft' in Ihren airlines Flugzeugtyp. Und ein passeger 'Ankunft' in der Stadt, ist im wesentlichen der Abreise aus dem Flugzeug. Da sind wir in die Schuhe der airline-Besitzer, der Begriff "Ankunft Passagier' und 'abfliegenden Passagier' sind Umgekehrt von unseren konventionellen Vorstellungen, die auf Städte-Perspektive.
Gleichen 'Flughafen' Infrastruktur jeder Stadt durch "abfliegen" Passagiere und für "Ankunft" und Passagiere. Ein Flughafen bietet 'ausgehend Infrastruktur" für abfliegende Passagiere, die sich von der " Ankunft der Infrastruktur zur Verfügung gestellt für die ankommenden Passagiere.
Passagiere können auch weiterhin tun, Ihren Tag, Ihre Aktivitäten aufgrund der verschiedenen 'Annehmlichkeiten' im inneren des Flugzeugs, die von Ihrer Fluggesellschaft, wenn Sie unterwegs sind.
Oben auf, dass Ihre Fluggesellschaft bietet auch lounge-Anlagen für spezielle Behandlungen wie das Verständnis der lokalen Sprache' und oder bereiten Sie für die 'Reisen'.
Können ersetzen Sie einige Wörter/Sätze verwendet, die oben mit folgenden:
Ihrer Fluggesellschaft: Apache Camel
Flugzeug-Unternehmen: Transport-Mechanismen
Ihre airline Flugzeug: Apache Camel zugrunde liegenden Transportmechanismus
tragen: route
Passagiere: Nachricht;
Stadt: system;
Flughafen: Camel-Komponente;
Kenntnisse der lokalen Sprachen: Typ-Konvertierungen;
Abfahrt: Herstellung, produziert
Ankunft: Konsum, konsumiert
Reisen: geleitet
Annehmlichkeiten: zur Verfügung gestellt
Nach dem Austausch der Worte, hier ist was Sie bekommen:
Zweck der 'Apache Camel' ist die route 'Nachrichten', von einem 'system' zu einem anderen in der Welt. Apache camel verwendet verschiedene transport-Mechanismen für message-routing.
Apache Camel picks up-Meldungen mit 'Camel basierte Komponente' der 'von' - system und lässt Sie mit dem 'Kamel-basierte Komponente,' der 'in' - system. Eine Nachricht weiterleiten kann zu mehreren Systemen, sondern überall, wo Sie haben, um durch zu gehen 'Camel basierte Komponenten' Reisen zwischen " Apache Camel zugrunde liegenden transport-Mechanismus und system.
Beachten Sie, dass eine Nachricht 'hergestellt' aus dem system ist im wesentlichen 'verbraucht', in Apache Camel zugrunde liegenden transport-Mechanismus". Und eine Nachricht verbraucht ein system, im wesentlichen erzeugt durch die 'Apache Camel zugrunde liegenden transport-Mechanismus".
Da wir versuchen zu verstehen, Camel, müssen wir darüber nachdenken, aus der Kamel-Perspektive, die hier an. Die Bedeutung der Begriffe 'Verbraucher-Nachricht' und 'producer message', also Umgekehrt wie unsere konventionellen Vorstellungen, die auf eine system-Perspektive.
Gleichen 'Camel basierte Komponente' Codierung der Infrastruktur wird durch die 'producer message" und "consumer-Meldung". Ein "Kamel-basierte Komponente' liefert eine 'producer-endpoint -' für '- Produzent message " und "consumer endpoint' für 'Verbraucher-Nachrichten'.
Nachrichten verarbeitet werden können, mit dem Kamel, wenn Sie weitergeleitet werden.
Oben auf dieser routing -, Kamel bietet spezielle Funktionen wie 'Typumwandlung' und viele mehr...
InformationsquelleAutor der Antwort DolphinJava
Wenn Sie wissen, Enterprise Integration Patterns, Apache Camel ist ein integrationsframework, das die alle EIP.
Und Bereitstellung von Camel als standalone-Anwendung in einem web-container.
Grundsätzlich, wenn Sie zu integrieren haben mehrere Anwendungen mit unterschiedlichen Protokollen und Technologien, die Sie verwenden können, Camel.
InformationsquelleAutor der Antwort Neel
Eine definition aus einer anderen Perspektive:
Apache Camel ist ein integrationsframework. Es besteht aus einigen Java-Bibliotheken, die Ihnen hilft, die Umsetzung der integration Probleme auf der Java-Plattform. Was das bedeutet und wie unterscheidet es sich von APIs auf der einen Seite und einem Enterprise Service Bus (ESB) auf der anderen Seite ist beschrieben in meinem Artikel "Beim Einsatz von Apache Camel".
InformationsquelleAutor der Antwort Kai Wähner
Apache Camel ist eine leichte integration framework implementiert die Enterprise Integration patterns.Sie können leicht zu integrieren, verschiedene Anwendungen mit dem gewünschten Muster.
Sie können die Verwendung von Java, Spring XML, Scala oder Groovy. Fast jede Technik, die Sie sich vorstellen können ist verfügbar, zum Beispiel HTTP, FTP, JMS, EJB, JPA, RMI, JMS, JMX, LDAP, Netty etc.
Haben Sie einen Blick auf diese Artikel und EIP Muster Artikel
Kamel verwendet eine Java Domain Specific Language oder DSL für die Erstellung von Enterprise Integration Patterns oder Routen, die in einer Vielzahl von domain-spezifischen Sprachen (DSL) wie unten aufgeführt.
Java DSL - Eine Java-basierte DSL-mithilfe der fluent-builder Stil.
Die Geschichte von Enterprise Integration Pattern löst rund um diese Konzepte :
Nachricht, Ende Punkt -, Erzeuger -, Verbraucher -, Routing -, Bus -, Transform-und Prozess -.
Haben Sie einen Blick auf diese Artikel Von Anirban Konar für eine Echtzeit-Anwendungsfällen.
Es fungiert als eine Brücke über mehrere enterprise-sub-Systeme.
Apache Camel, ein Integrations-framework, integriert verschiedene Anwendungen unabhängig voneinander.
Der große Vorteil von Camel : können Sie die Integration von verschiedenen Anwendungen mit unterschiedlichen Technologien (und andere Protokolle) über die gleichen gleichen Konzepte für jede integration.
InformationsquelleAutor der Antwort Ravindra babu
Meisten "neuen" Dinge in der informatik sind nicht wirklich neu, Sie sind nur einen mystifizierenden Hülle um etwas, das bereits gut verstanden. Wenn Sie sind schwer zu verstehen, es ist in der Regel, weil jemand beschlossen, zu erfinden, neue Sprache, Begriffe oder besiedeln bestehenden Bedingungen für einen anderen Zweck (ein gutes Beispiel , dass wird die X-Entwickler' Umkehrung von dem, was "client" und "server" meinst.)
Camel ist ein Java-basierter wrapper/API für die inter-application-middleware.
Middleware ist ein allgemeiner Begriff für software, die bietet auch Dolmetschen zwischen Personen, die nicht eine gemeinsame Sprache oder Daten-Typen.
Das ist, was Kamel, am Boden. Wir können Fleisch aus der Beschreibung mit der Feststellung, dass es für EIP-Art-middleware.
Er nicht die middleware selbst, da Sie nicht wissen, die details von dem, was die Anwendungen kommunizieren müssen. Aber es bietet die API für das erstellen von Invarianten Teile der middleware (create a start point, erstellen Sie einen Endpunkt, schaffen die Bedingungen für Start und Ende, etc.)
Hoffe, das hilft.
InformationsquelleAutor der Antwort MMacD
Hier ist ein weiterer Versuch.
Wissen Sie, wie Sie da sind/waren Dinge wie Webmethods, Seebeyond ICAN, Tibco BW, IBM Broker. Sie alle halfen mit integration der Lösungen in das Unternehmen. Diese Werkzeuge sind allgemein bekannt unter dem Namen Enterprise Application Integration (EAI) - tools.
Waren die meisten drag & drop-tools gebaut, um diese Technologien und in Teile, die Sie schreiben müssten, Adapter in Java. Diese adapter-Codes wurden entweder ungetestet oder hatte schlechte Werkzeuge/automation rund um die Prüfung.
Ebenso wie mit design-Pattern in der Programmierung, Enterprise Integration patterns für common-integration-Lösungen. Sie waren berühmt durch ein Buch mit dem gleichen Namen, die von Gregor Hohpe und Bobby Woolf.
Zwar ist es durchaus möglich zu implementieren-integration-Lösungen, die eine oder viele EIP, Camel ist ein Versuch, dies zu tun in Ihrem code-Basis mit Hilfe einer XML, Java, Groovy oder Scala.
Camel unterstützt alle Enterprise Integration Patterns aufgeführt in dem Buch über seine reichen DSL und routing-Mechanismus.
Also Kamel ist ein Wettbewerb technoloy zu anderen EAI-tools mit besserer Unterstützung für das testen Ihrer integration code. Der code ist kurz, weil der Domain-Spezifische Sprachen (DSLs). Es ist lesbar, auch business-Anwender, und es ist kostenlos und macht Sie produktiver.
InformationsquelleAutor der Antwort skipy
Gibt es viele frameworks, die es erleichtert, uns für das messaging und die Lösung von Problemen im messaging. Ein solches Produkt ist Apache Camel.
Meisten common Probleme sind bewährte Lösungen genannt, wie design patterns. Die design-Muster für messaging Enterprise Integration patterns(EIPs), die sind gut erklärt hier. Apache camel, die uns helfen zu implementieren unsere Lösung, die mit den europäischen innovationspartnerschaften.
Die Stärke eines Rahmens für die integration ist die Fähigkeit zu erleichtern, uns durch EIP oder andere Muster,die Anzahl der Transporte und Komponenten und die Leichtigkeit der Entwicklung auf dem Apache camel steht auf der Liste ganz oben
Jedes der Frameworks hat seine eigenen Vorteile, Einige der besonderen features von Apache camel sind die folgenden.
InformationsquelleAutor der Antwort Naveen Raj
Kamel hilft, routing, transformation, monitoring.
Es nutzt die Routen, die beschrieben werden können als :
Wenn service bus bestimmte Nachricht erhält, leitet es durch keine der Dienstleistungen/Makler Destinationen wie queue/Themen. Dieser Weg ist bekannt als route.
Beispiel:
Ihre Lager-Anwendung hat einige input von analyst, wird es verarbeitet durch die Anwendung/web-Komponente klicken und das Ergebnis wird veröffentlicht, um alle interessierten/angemeldeten Mitglieder für Besondere Lager-update.
InformationsquelleAutor der Antwort sa_nyc
Ja, das ist wohl ein bisschen spät. Aber eine Sache hinzufügen, um alle anderen Kommentare, die Camel ist eigentlich eine toolbox, anstatt einen vollständigen Satz von Funktionen. Sie sollten dies berücksichtigen bei der Entwicklung und benötigen verschiedene Transformationen und Protokoll-Konvertierungen.
Camel selbst stützt sich auf andere Rahmenbedingungen und daher manchmal müssen Sie verstehen, als auch diejenigen um zu verstehen, welche ist am besten geeignet für Ihre Bedürfnisse. Es gibt zum Beispiel mehrere Möglichkeiten, um zu behandeln, REST. Dies kann ein wenig verwirrend auf den ersten, aber sobald Sie beginnen, mit und testen Sie sich wohl fühlen und Ihre Kenntnisse der unterschiedlichen Konzepte wird zunehmen.
InformationsquelleAutor der Antwort Souciance Eqdam Rashti
Im Klartext, Kamel bekommt (viele) Dinge getan, ohne viel von boiler plate code.
Nur, um Ihnen eine Perspektive, die Java-DSL, die unten gegeben wird, erzeugen eines REST-Endpunktes in der Lage zu akzeptieren, ein XML aus der Liste der Produkte und spaltet es in mehrere Produkte und rufen Sie die Process-Methode des BrandProcessor.
Und nur durch das hinzufügen .parallelProcessing (beachten Sie den auskommentierten Teil) wird es parallel dazu den Prozess bei, alle Produkt-Objekte. (Produkt-Klasse JAXB/XJC generierten Java-stub aus der XSD-Datei, welche die xml-Eingabe ist beschränkt.) So viel code (zusammen mit paar Camel Abhängigkeiten) wird den job zu erledigen, die früher 100te von Zeilen Java-code.
Nach dem hinzufügen der route-ID und logging-Anweisung
Dies ist nur ein Beispiel, Camel ist viel mehr als nur REST-Endpunkt. Schauen Sie sich die steckbare Komponente Liste http://camel.apache.org/components.html
InformationsquelleAutor der Antwort KingJulien
In einem Unternehmen eine Reihe von Systemen in verschiedenen Arten existieren. Einige von diesen können sich legacy-Systeme, während einige neue kann. Diese Systeme interagieren oft mit einander,und müssen integriert werden. Diese Interaktion oder integration ist nicht einfach, da die Implementierungen der Systeme, Ihre message-Formaten unterscheiden können. Ein Weg dies zu erreichen ist die Implementierung von code, die Brücken, diese Unterschiede. Allerdings wird diese Punkt-zu-Punkt-integration. Wenn Sie morgen wieder, wenn es änderung in einem system in das andere könnte auch geändert werden das ist nicht gut. Stattdessen Punkt-zu-Punkt integration, die bewirkt, dass die enge Kopplung realisieren wir für Sie eine zusätzliche Schicht, die vermitteln und die Unterschiede zwischen den Systemen. Dies führt zu einer losen Kopplung und nicht viel Einfluss unsere bestehenden Systeme. Apache Camel ist eine Regel-basierte routing-und mediation-engine bietet ein Java-Objekt-basierte Implementierung der Enterprise Integration Patterns über eine API (oder deklarativen Java Domain Specific Language) zu konfigurieren, routing-und mediation-Regeln.
Ausführliche Erklärung und Beispiele finden Sie hier Apache Camel-Tutorials
InformationsquelleAutor der Antwort Rameez
Apache Camel ist ein Java-framework für die Enterprise-integration. ZB:- wenn Sie den Aufbau einer web-Applikation interagiert mit vielen Hersteller API ' s, die wir verwenden können, das Kamel als die Externe integration tool. Wir können mehr tun mit es basiert auf dem use case. Camel in Action von Manning publications ist ein tolles Buch für das lernen Kamel. Die Integration kann definiert werden, wie unten beschrieben.
Java DSL
Dies ist das anlegen einer REST-API-Endpunkt, die wiederum ruft eine externe API und sendet die Anforderung zurück
Frühling DSL
Kommen, um Ihre Fragen
Hoffe es hilft
InformationsquelleAutor der Antwort Khader M A
Sein, wie eine pipeline zur Verbindung
Zwischen u können beliebig viele Kanäle und Rohre. Der Wasserhahn kann einen beliebigen Typ
automatische oder manuelle für den Fluss der Daten und eine route zu channelize den Fluss.
Unterstützt und haben die Umsetzung für alle Typen und Arten der Verarbeitung.
Und für die gleiche Verarbeitung viele Ansätze, weil es viele Komponenten und jede Komponente kann auch die gewünschte Ausgabe-mit verschiedenen Methoden unter.
Beispielsweise
File-transfer durchgeführt werden kann in camel mit Typen, die Datei verschoben oder kopiert und auch vom Ordner, server oder queue.
Von/bis---- - Ordner, direkt, seda, der vm kann alles sein
InformationsquelleAutor der Antwort javalearner_heaven