Вопрос

Я не понимаю, что именно Верблюд делает.

Если бы вы могли в 101 слове представить Camel:

  • Что именно?
  • Как он взаимодействует с приложением, написанным на Java?
  • Это что-то, что идет вместе с сервером?
  • Это независимая программа?

Объясните, пожалуйста, что такое Camel.

Это было полезно?

Решение

Если у вас от 5 до 10 минут, я обычно рекомендую людям прочитать это Интеграция с Apache Camel Джонатан Ансти. Это хорошо написанная часть, которая дает краткое введение и обзор некоторых концепций верблюда, и он реализует вариант использования с образцами кода. В нем Джонатан пишет:

Apache Camel - это фреймворк с открытым исходным кодом Java, которая фокусируется на облегчении интеграции и более доступной для разработчиков. Это делает это, предоставляя:

  • конкретные реализации всех широко используемых Схемы интеграции предприятия (EIPS)
  • Подключение к большому разнообразию транспорта и APIS
  • Простые в использовании доменных языков (DSLS) для подключения eips и транспортировки вместе

Есть также бесплатная глава Верблюд в действии который вводит верблюда в первой главе. Джонатан-соавтор этой книги со мной.

Другие советы

Мой взгляд, чтобы описать это более доступным образом ...

Чтобы понять, что такое Apache Camel, вам нужно понять, что такое модели интеграции предприятия.

Давайте начнем с того, что, по -видимому, уже знаем: синглтонский шаблон, заводской шаблон и т. Д.; Это просто способы организации вашего решения проблемы, но сами не являются решениями. Эти паттерны были проанализированы и извлечены для остальных из нас бандой из четырех человек, когда они опубликовали свою книгу: Шаблоны проектирования. Анкет Они спасли некоторые из нас огромные усилия, думая о том, как наилучшим образом структурировать наш код.

Так же, как банда из четырех, Грегор Хохпе и Бобби Вулф написали книгу Схемы интеграции предприятия (EIP), в котором они предлагают и документируют набор новых шаблонов и чертежи как мы могли Лучший Разработайте большие компонентные системы, где компоненты могут работать на одном и том же процессе или на другой машине.

Они в основном предлагают структурировать нашу систему сообщение Ориентирован - где компоненты общаются друг с другом, используя сообщения в качестве входов и выходов, и абсолютно ничего больше. Они показывают нам полный набор шаблонов, из которых мы можем выбрать, и реализовать в наших различных компонентах, которые вместе составляют всю систему.

Так что же такое верблюда Apache?

Apache Camel предлагает вам интерфейсы для EIPS, базовые объекты, обычно необходимые реализации, инструменты отладки, систему конфигурации и многих других помощников, которые сэкономит вам множество времени, когда вы хотите реализовать свое решение, чтобы следовать EIPS.

Возьмите MVC. MVC довольно прост в теории, и мы могли бы реализовать его без каких -либо оснований. Но хорошие фреймворки MVC предоставляют нам структуру, готовую к использованию, и прошли лишнюю милю и продумали все другие «боковые» вещи, которые вам нужны, когда вы создаете большой проект MVC, и поэтому мы используем их большую часть времени.

Это именно то, что Apache Camel для EIPS. Это полная рамка, готовая к производству для людей, которые хотят реализовать свое решение, чтобы следовать EIPS.

Создание а Описание Проекта не должно быть сложным.

Я говорю:

Apache Camel - это клей технологии обмена сообщениями с маршрутизацией. Он объединяет начальные и конечные точки обмена сообщениями, позволяя переносу сообщений из разных источников в разные направления. Например: JMS -> json, http -> jms или воображение FTP -> JMS, http -> jms, json -> jms

Википедия говорит:

Apache Camel-это двигатель маршрутизации и посредничества, основанный на правилах, который обеспечивает реализацию объекта Java объекта предприятия моделей интеграции предприятия с использованием API (или декларативного языка домена Java) для настройки правил маршрутизации и посредничества. Язык, специфичный для домена, означает, что Apache Camel может поддерживать тип-защищенное интеллектуальное завершение правил маршрутизации в вашей IDE, используя обычный код Java без огромных объемов файлов конфигурации XML; Хотя конфигурация XML внутри пружины также поддерживается.

Видеть? Это было не сложно?

Короче говоря:

Когда существует требование подключения / интеграции систем, вам, вероятно, необходимо подключиться к некоторым источникам данных, а затем обработать эти данные, чтобы соответствовать требованиям вашего бизнеса.

Чтобы сделать это:

1) Вы можете разработать пользовательскую программу, которая сделала бы это (может быть, отнимает много времени и трудно понять, поддерживать для другого разработчика)

2) В качестве альтернативы, вы можете использовать Apache Camel, чтобы сделать это стандартизированным способом (у него уже есть большинство разъемов, уже разработанных для вас, вам просто нужно настроить его и подключить логику - называемый процесс):

Верблюд поможет вам:

  1. Потреблять данные из любого источника/формата
  2. Обработайте эти данные
  3. Выходные данные в любой источник/формат

Используя Apache Camel, вы упростите понимание / обслуживание / расширение вашей системы другому разработчику.

Apache Camel разработан с помощью шаблонов интеграции предприятия. Паттерны помогают вам хорошо интегрировать системы :-)

Верблюд отправляет сообщения от A в B:

enter image description here

Почему целая структура для этого? Что ж, что, если у вас есть:

  • Многие отправители и многие приемники
  • дюжина протоколов (ftp, http, jms, так далее.)
  • много сложных правил
    • Отправьте сообщение A только приемникам A и B
    • Отправить сообщение B получателю C как XML, но частично перевести Это, обогащение это (добавить метаданные) и Если условие x, затем отправьте его в приемник D, но как CSV.

Итак, теперь вам нужно:

  • перевести между протоколами
  • клей компоненты вместе
  • Определите маршруты - Что идет куда
  • фильтр Некоторые вещи в некоторых случаях

Верблюд дает вам вышеупомянутое (и больше) из коробки:

enter image description here

С классным языком DSL, чтобы вы могли определить, что и как:

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

Смотрите также это а также это и верблюд в действии (как сказали другие, отличная книга!)

Диаграмма лучше, чем тысячи описания. Эта диаграмма иллюстрирует архитектуру верблюда.

enter image description here

На основе аналогии

Маршрутизация на основе верблюда можно легко понять, поставив себя на место владельца авиакомпании (например, American Airlines, Jet Airways).

Цель «вашей авиакомпании» - «переносить» «пассажиров» из одного «города» в другой в мире. Вы используете самолеты из разных «авиационных компаний», таких как Boeing, Airbus, HAL для перевозки пассажиров.

Пассажиры вашей авиакомпании, использующие «аэропорты» из города и разбирают их, используя аэропорт города. Пассажир может «путешествовать» в несколько городов, но везде, где им приходится пройти через аэропорт, чтобы путешествовать между самолетом вашей авиакомпании и городом.

Обратите внимание, что пассажир «уходит» из города, по сути, «прибывает» в ваши авиакомпании. И пустырный «прибытие» в город, по сути, уходит от самолета. Поскольку мы находимся на месте владельца авиакомпании, термин «пассажир прибытия» и «уход пассажира» отменяются от наших обычных представлений, основанных на перспективе городов.

Та же самая «аэропортная» инфраструктура каждого города используется «уходящими» пассажирами и пассажирами «прибытия». Аэропорт обеспечивает «уходящую инфраструктуру» для уходящих пассажиров, что отличается от «инфраструктуры прибытия», предоставленной для прибывающих пассажиров.

Пассажиры могут продолжать выполнять свой день в своей деятельности из -за различных «удобств», предоставленных внутри самолетов вашим авиакомпаниям, во время путешествий.

Кроме того, ваша авиакомпания также предоставляет зала для отдыха для особых методов лечения, таких как «Понимание местного языка» и или подготовка к «путешествию».

Давайте заменим несколько слов/фраз, используемых выше на следующем:

Ваша авиакомпания: Apache Camel

Авиационные компании: транспортные механизмы

Самолет вашей авиакомпании: основной транспортный механизм Apache Camel

переноски: маршрут

Пассажиры: сообщение;

Город: Система;

Аэропорт: Компонент верблюда;

Понимание местных языков: конверсии типа;

уход: производительность, произведено

Прибытие: потребление, потребление

Путешествие: направлено

Удобства: предоставлены

После замены слов, вот что вы получаете:

Цель "Apache Camel ' это направить «сообщения» из одной «системы» в другую в мире. Apache Camel использует различные транспортные механизмы для маршрутизации сообщений.

Apache Camel собирает сообщения, используя «компонент на основе верблюда» системы «от» и бросает их, используя «компонент на основе верблюда» системы «TO». Сообщение может направляться к нескольким системам, но везде, где им приходится проходить «компоненты на основе верблюдов», чтобы перемещаться между «базовым механизмом транспорта Apache Camel» и системой.

Обратите внимание, что сообщение «произведено» из системы, по сути, «поглощено» в основном транспортном механизме Apache Camel ». И сообщение, потребляемое системой, по сути создается «основным транспортным механизмом Apache Camel».

Поскольку мы пытаемся понять верблюда, мы должны думать с точки зрения верблюда здесь. Значение терминов «Потребительское сообщение» и «Сообщение производителя», таким образом, обратно от наших традиционных представлений, основанных на перспективе системы.

Та же инфраструктура кодирования на основе верблюда «Компонент» используется «Сообщение производителя» и «Потребительское сообщение». «Компонент на основе верблюда» предоставляет «конечную точку производителя» для «сообщения производителя» и «конечную точку потребителя» для «потребительского сообщения».

Сообщения могут быть обработаны верблюдом, когда они направляются.

Помимо этой маршрутизации, Camel предоставляет специальные функции, такие как «преобразование типа» и многие другие ...

Одна из вещей, которые вам нужно понять, прежде чем попытаться понять Apache Camel, - это шаблоны интеграции предприятия. Не все в поле на самом деле знают о них. Несмотря на то, что вы, безусловно, можете прочитать книгу с шаблонами интеграции предприятия, более быстрый способ ускорить их - это прочитать что -то вроде статьи в Википедии о Интеграция корпоративного приложения.

Тот, что вы прочитали и поняли область предмета, вы с большей вероятностью поймете цель Apache Camel

Hth

Если вам известно о шаблонах интеграции предприятия, Apache Camel является одной из структур интеграции, которая реализует все EIP.

И вы можете развернуть Camel в качестве автономного приложения в веб-контентере.

По сути, если вам нужно интегрировать несколько приложений с различными протоколами и технологиями, вы можете использовать верблюд.

Определение с другой точки зрения:

Apache Camel - это структура интеграции. Он состоит из некоторых библиотек Java, которые помогают вам реализовать проблемы интеграции на платформе Java. Что это значит и как он отличается от API с одной стороны и автобуса Enterprise Service (ESB) с другой стороны, описано в моей статье »Когда использовать Apache Camel".

Что именно это?

Apache Camel это легкая структура интеграции, которая реализует все шаблоны интеграции предприятия. Вы можете легко интегрировать различные приложения, используя необходимые шаблоны.

Вы можете использовать Java, Spring XML, Scala или Groovy. Почти каждая технология, которую вы можете себе представить, доступна, например, http, FTP, JMS, EJB, JPA, RMI, JMS, JMX, LDAP, Netty и т. Д.

Посмотри на это статья а также EIP Pattern статья

Как это взаимодействует с приложением, написанным на Java?

Верблюд использует Java Domain специфичный язык или DSL Для создания шаблонов или маршрутов интеграции предприятия на различных языках, специфичных для домена (DSL), как указано ниже.

Java DSL - DSL на основе Java с использованием стиля Fluent Builder.

История шаблона интеграции предприятия решается вокруг этих концепций:

Сообщение, конечная точка, производитель, потребитель, маршрутизация, автобус, преобразование и процесс.

Посмотри на это статья Анирбан Конар для одного из вариантов использования в реальном времени.

Это что -то, что идет вместе с сервером?

Он действует как мост через несколько предприятий.

Это независимая программа?

Apache Camel, структура интеграции, интегрирует различные независимые приложения.

Основное преимущество верблюда : Вы можете интегрировать различные приложения с различными технологиями (и разными протоколами), используя одинаковые концепции для каждой интеграции.

Большинство «новых» вещей в вычислениях совсем не новы, они просто загадочная обертка вокруг чего-то, что уже понятно. Когда их трудно понять, это обычно потому, что кто -то решил изобретать новые языковые термины или колонизировать существующие термины для другой цели (хороший пример что Является ли обращение разработчиков X, что означают «клиент» и «сервер».)

Camel-это обертка/API на основе Java для промежуточного программного обеспечения для межприпуска.

Промежуточное программное обеспечение является общим термином для программного обеспечения, которое предоставляет услуги интерпретации между организациями, которые не имеют общего языка или типов данных.

Вот что такое верблюда, внизу. Мы можем определить описание, отметив, что оно предусматривает промежуточное программное обеспечение типа EIP.

Он не обеспечивает самопрограмму, поскольку он не может знать подробности того, что нужно приложениям для передачи. Но он предоставляет API для создания инвариантных частей этого промежуточного программного обеспечения (создайте начальную точку, создайте конечную точку, создайте условия для запуска и окончания и т. Д.)

Надеюсь, это поможет.

Вот еще одна попытка этого.

Вы знаете, как были/были такие вещи, как Webmethods, Ican Seebeyond, Tibco BW, IBM Broker. Все они помогли с интеграционными решениями на предприятии. Эти инструменты обычно известны инструментами имени Enterprise Integration (EAI).

Вокруг этих технологий были построены в основном инструменты для перетаскивания, и в частях вам приходилось писать адаптеры на Java. Этот код адаптера был либо непроверенным, либо имел плохую инструменты/автоматизацию вокруг тестирования.

Как и в случае с шаблонами дизайна в программировании, у вас есть шаблоны интеграции предприятия для решений общей интеграции. Они стали известны с одноименной книгой Грегора Хохпе и Бобби Вулфа.

Хотя вполне возможно внедрить интеграционные решения, которые используют один или много EIP, Camel является попыткой сделать это в вашей кодовой базе, используя один из XML, Java, Groovy или Scala.

Camel поддерживает все шаблоны интеграции предприятия, перечисленные в книге, через его богатый DSL и механизм маршрутизации.

Таким образом, Camel является конкурирующей технологией для других инструментов EAI с лучшей поддержкой для тестирования вашего кода интеграции. Код лаконичен из -за специфических для домена языков (DSLS). Он читается даже бизнес -пользователями, и это бесплатно и делает вас продуктивным.

Есть много фреймворков, которые облегчают нас для обмена сообщениями и решения проблем в обмене сообщениями. Одним из таких продуктов является Apache Camel.

Большинство общих проблем имеют доказанные решения, называемые шаблонами дизайна. Образец дизайна для обмена сообщениями - это шаблоны интеграции предприятия (EIPS), которые хорошо объяснены здесь. Анкет Apache Camel помогает нам реализовать наше решение, используя EIPS.

Сила структуры интеграции заключается в его способности облегчить нас через EIPS или другие модели, количество транспортов и компонентов и простота разработки, на которой Apache Camel стоит в верхней части списка

Каждая из фреймворков имеет свои преимущества. Некоторые особенности Apache Camel являются следующими.

  1. Он обеспечивает кодирование во многих DSL, а именно Java DSL и Spring XML DSL, которые популярны.
  2. Простое использование и простое в использовании.
  3. Fuse IDE - это продукт, который помогает вам кодировать через пользовательский интерфейс

На простом английском языке Camel получает (много) вещей, выполненных без большого кода котла.

Просто чтобы дать вам перспективу, Java DSL, приведенная ниже, создаст конечную точку REST, которая сможет принять XML, состоящий из списка продуктов, и разбивает ее на несколько продуктов и вызов методу процесса бренда с ним. И просто добавив. ParallelProcessing (обратите внимание на прокомментированную часть), она будет параллельными обрабатыванием всех объектов продукта. (Класс продукта - это Java -Atub Java/XJC с xsd, на который ограничен входом XML.) Этот большой код (наряду с небольшим количеством зависимостей верблюда) выполнит выполненную задачу, которая использовалась для того, чтобы занимать 100 -е годы кода Java.

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

После добавления идентификатора маршрута и оператора регистрации

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

Это просто образец, верблюд - это гораздо больше, чем просто конечная точка отдыха. Просто посмотрите список подключаемых компонентов http://camel.apache.org/components.html

Верблюд помогает в маршрутизации, трансформации, мониторинге.

Он использует маршруты; который можно описать как:

Когда Service Bus получит конкретное сообщение, он будет направлять его через никакие услуги/брокерские направления, такие как очередь/темы. Этот путь известен как маршрут.

Пример:Ваше приложение для акций получило некоторый вклад аналитиком, оно будет обработано через приложение/веб -компонент, а затем результат будет опубликован всем заинтересованным/зарегистрированным участникам для конкретного обновления акций.

101 слово, вступление

Camel — это платформа с согласованным API и моделью программирования для интеграции приложений.API основан на теориях Шаблоны корпоративной интеграции - то есть набор шаблонов проектирования, которые имеют тенденцию использовать обмен сообщениями.Он предоставляет готовые реализации большинства из этих шаблонов и дополнительно поставляется с более чем 200 различными компоненты вы можете использовать его для легкого общения со всеми видами других систем.Чтобы использовать Camel, сначала напишите свою бизнес-логику в POJO и реализуйте простые интерфейсы, ориентированные на сообщения.Затем используйте DSL Camel для создания «Маршрутов», которые представляют собой наборы правил для объединения вашего приложения.

Расширенное введение

На первый взгляд, функциональность Camel конкурирует с традиционными продуктами Enterprise Service Bus.Обычно мы думаем, что Camel Route — это компонент «посредничества» (он же оркестровки), который находится на стороне сервера, но поскольку это библиотека Java, ее легко встроить, и она также может жить в клиентском приложении и помогать вам интегрироваться. это с двухточечными услугами (также известными как хореография).Вы даже можете взять свои POJO, которые обрабатывают сообщения внутри маршрута Camel, и легко превратить их в свои собственные удаленные потребительские процессы, например.если вам нужно было масштабировать только одну деталь независимо.Вы можете использовать Camel для соединения маршрутов или процессоров с помощью любого количества различных удаленных транспортных средств/протоколов в зависимости от ваших потребностей.Вам нужен чрезвычайно эффективный и быстрый двоичный протокол или тот, который более удобен для чтения человеком и прост в отладке?Что, если вы захотите переключиться?С Camel это обычно так же просто, как изменить пару строк в маршруте и вообще не менять никакой бизнес-логики.Или вы можете поддерживать оба варианта — вы можете запускать множество маршрутов одновременно в контексте Camel.

На самом деле вам не обязательно использовать Camel для простых приложений, которые будут работать в одном процессе или JVM — это было бы излишним.Но концептуально это не сложнее, чем код, который вы можете написать самостоятельно.А если ваши требования изменятся, разделение бизнес-логики и связующего кода со временем облегчит поддержку.Как только вы изучите Camel API, вы сможете легко использовать его как швейцарский армейский нож и быстро применять в самых разных контекстах, чтобы сократить объем специального кода, который вам в противном случае пришлось бы писать.Вы можете изучить один вариант — например, Java DSL, гибкий API, который легко объединить в цепочку, — и легко освоить другие варианты.

В целом Camel отлично подходит, если вы пытаетесь создавать микросервисы.Я считаю, что это бесценно для эволюционной архитектуры, потому что вы можете отложить многие трудные, «легко ошибиться» решения о протоколах, транспортах и ​​других проблемах системной интеграции, пока не узнаете больше о своей проблемной области.Просто сосредоточьтесь на своих EIP и основной бизнес-логике и переключайтесь на новые маршруты с «правильными» компонентами по мере того, как вы узнаете больше.

Да, это, вероятно, немного поздно. Но одна вещь, которую можно добавить к комментариям всех остальных, это то, что Camel на самом деле является набором инструментов, а не полный набор функций. Вы должны помнить об этом при разработке и необходимости делать различные преобразования и преобразования протоколов.

Сам Camel опирается на другие рамки, и поэтому иногда вам нужно понимать их, чтобы понять, что лучше всего подходит для ваших потребностей. Например, есть несколько способов обработки отдыха. Сначала это может немного запутаться, но как только вы начнете использовать и тестируете, вы почувствуете себя непринужденно, и ваши знания о различных концепциях будут расти.

Apache Camel - это Java Framework для интеграции предприятия. Например:- Если вы создаете веб-приложение, которое взаимодействует со многими поставщиками API, мы можем использовать верблюд в качестве инструмента внешней интеграции. Мы можем сделать больше с этим в зависимости от использования. Верблюд в действии от Manning Publications - отличная книга для обучения Camel. Интеграции могут быть определены, как показано ниже.

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

Это просто создать конечную точку API REST, которая, в свою очередь, вызывает внешний API и отправляет запрос обратно

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>

Приходите к вашим вопросам

  1. Что именно это? ANS:- Это структура, которая реализует шаблоны интеграции предприятия
  2. Как это взаимодействует с приложением, написанным на Java? ANS:- Он может взаимодействовать с любыми доступными протоколами, такими как HTTP, FTP, AMQP и т. Д.
  3. Это что -то, что идет вместе с сервером? Ответ:- Его можно развернуть в таком контейнере, как Tomcat или может быть развернут независимо как процесс Java
  4. Это независимая программа? Ответ:- Это может быть.

Надеюсь, поможет

Предположим, вы создаете компанию электронной коммерции, такую ​​как Amazon, и хотите сосредоточиться только на стратегии/выборе продуктов для продажи.В отличие от парка доставки Amazon, вместо того, чтобы самостоятельно заниматься перемещением товаров от продавцов на склад, вносить в них изменения на складе, такие как упаковка и отправка в другой город и клиентам.Вы нанимаете компанию, которая делает все это, и просто предоставляете ей информацию обо всех ваших складах, типах транспортных средств, местах доставки и список того, когда и что делать.Затем они справятся с этим сами, это будет Apache Camel.Они позаботятся о перемещении вещей из одного конца в другой, как только вы им что-то передадите, чтобы вы могли сосредоточиться на других вещах.

Это как подключение трубопровода

From---->To

Между ними можно добавить столько каналов и труб. Смеситель может иметь любого типа автоматического или ручного для потока данных и маршрута для направления потока.

Он поддерживает и имеет реализацию для всех типов и видов обработки. И для той же обработки многие подходы, потому что он имеет много компонентов, и каждый компонент также может обеспечить желаемый выход, используя различные методы.

Например, передача файла может быть сделана в верблюде с перемещением или копированием файла типов, а также из папки, сервера или очереди.

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

От/до ---- Папка, Direct, SEDA, VM может быть чем угодно

Другая точка зрения (на основе более фундаментальных математических тем)

Самая общая вычислительная платформа - это [https://en.wikipedia.org/wiki/turing_machine

Есть проблема с машиной Тьюринга. Все данные ввода/вывода остаются внутри машины Тьюринга. В реальном мире существуют входные источники и выходные раковины, внешние по отношению к нашей машине Тьюринга, и в целом регулируются системами вне нашего контроля. То есть эта внешняя система будет отправлять/принять данные по желанию в любом формате с любым желаемым данных с данных.

Вопрос: Как нам удается заставить независимые туринг-машины говорить друг с другом самым общим способом, чтобы каждый махин Тьюринг рассматривал своих сверстников либо источником входных данных, либо раковины выходных данных?

Ответ: Используя что -то вроде верблюда, мула, Biztalk или любого другого ESB, которые абстрагируют обработку данных между выполнением различных «физических» (или виртуальных программных) машин.

Apache Camel - это легкая структура интеграции, которая реализует все шаблоны интеграции предприятия. Вы можете легко интегрировать различные приложения, используя необходимые шаблоны. Вы можете использовать Java, Spring XML, Scala или Groovy.

Apache Camel работает на виртуальной машине Java (JVM). ... Основная функциональность Apache Camel - его двигатель маршрутизации. Он выделяет сообщения на основе соответствующих маршрутов. Маршрут содержит логику потока и интеграции. Он реализован с использованием EIPS и конкретного DSL.

enter image description here

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top