Как работает оркестровочный движок
У меня есть несколько вопросов на эту тему. Например, я нашел много статей, таких как "На пути к динамической оркестрации семантических веб-сервисов", "Децентрализованная оркестровка составных веб-сервисов" и т. Д., Но на практике я нашел только оркестровку, связанную с Bitztalk или ESB (я имею ввиду большие программисты)
Можно ли развивать язык и оркестровку самостоятельно? Как лучше всего разработать движок оркестровки?
1 ответ
Возможно, лучшим источником информации о цели и применении оркестровки являются сами газеты, которые вы цитировали.
Фон
Мы бродим по сети в Firefox, набираем документ в Microsoft Office. Это централизованные приложения. Эти типы программного обеспечения сидят и работают из одного места. Они работают на вашем компьютере, они работают на моем компьютере.
Вы идете в супермаркет, забираете товар и выписываетесь из одной из многочисленных касс. Каждый клерк за каждым столом имеет свой собственный сканер штрих-кода и свое устройство считывания карт. Каждый из кассовых аппаратов на этих счетчиках связан с одним сервером в подсобном помещении. При такой настройке программное обеспечение для выставления счетов распределяется по счетчикам клерка, но все приложение по-прежнему централизовано. Сервер управляет запасом и записывает продажи. Это центр централизации.
Затем вы пишете письмо и отправляете его. Предположим, вы отправили письмо со своей учетной записи Gmail на мою учетную запись Hotmail. Есть сервер Gmail и сервер Hotmail. Есть два центра, а не только один. Теперь все больше не централизовано - у нас распределенная система. Здесь отказ одного центра не наносит вред всей системе. Если Hotmail отключается, Gmail все еще выживает.
Вместо того, чтобы покупать в местном супермаркете, купите что-нибудь в интернет-магазине. Скажите eBay или Amazon. В этом примере есть сервер eBay, и есть поставщики для eBay. Поставщики сами управляют своими запасами на своих серверах, а не на сервере eBay. Также есть курьерская компания, которая доставляет посылку покупателю. У покупателей также есть свои собственные серверы. Покупатель совершил онлайн-платеж через MasterCard, еще один отдельный сервер. Сейчас мы говорим о действительно большой распределенной системе.
Цель
Теперь, когда вы совершаете онлайн-покупку, происходит очень много вещей, для которых потребуется больше, чем просто куча серверов. Должен быть мастер-кукловод, который синхронизирует действия между этими серверами. Аккаунт должен быть вычтен. Письмо должно быть отправлено. Склад должен быть уведомлен. Курьер должен быть организован. кто контролирует этот запутанный танец? Это твой оркестратор.
заявка
В большинстве случаев существует много разных и независимых серверов, каждый из которых принадлежит разным организациям. Тем не менее, когда все эти объекты должны работать вместе, чтобы создать бизнес-поток, "сеанс взаимодействия с пользователем", нам необходима оркестровка.
Управление действиями среди набора серверов достигается через сервер мастер-кукловод. На самом деле оркестратор представляет собой набор серверов. Таким образом, один набор серверов направляет другой набор серверов. Этот второй набор серверов - то, где фактически выполняется работа. Электронные письма отправляются. Изображения сжимаются. Адреса сортируются и тд. Первый набор серверов (оркестратор) гарантирует, что все происходит в том порядке, в котором они должны происходить.
Реализация
Один ответ: очереди. Единственное занятие, которое положило начало всей этой истории, было попыткой совершить онлайн-покупку. Оттуда все клики, которые вы сделали, команды, которые вы отправили, были поставлены в очередь на этих серверах оркестровки. Команда как purchase-this-item
или же make-a-payment
а потом payment-received
все в очереди, а затем обрабатываются один за другим.
Система оркестровки принимает эти команды в одном потоке, а в другом потоке сервер оркестровки асинхронно отправляет их соответствующим рабочим серверам. Итак purchase-this-item
команда отправляется на сервер eBay, в то время как make-a-payment
команда отправляется на сервер MasterCard.
Рабочие серверы могут выдавать дополнительные команды. Сервер MasterCard после проверки номера вашей карты может принять решение отправить вам SMS. так что добавьте send-sms
Команда в очередь. Эта команда отправляется, скажем, на сервер Vodaphone.
Эта логика очередей и диспетчеризации называется "механизмом оркестровки". Оттуда все может осложниться. Сервер Vodaphone может быть отключен. MasterCard может отклонить карту. Сервер хранилища данных может вернуть out-of-stock
ответ. Затем этот ответ нужно будет направить на сервер eBay, который может purchase
Команда на другой склад. Есть сбои сервера. Дисковые сбои. Перебои с питанием и тд.
в заключение
Оркестровка должна гарантировать, что так много разнообразных компонентов, распределенных географически, в разные моменты времени, некоторые параллельны, некоторые неисправны, некоторые медленны, некоторые злонамерены, некоторые незаконны,... все работают вместе, чтобы вы получили проклятый наушники, которые вы приобрели через интернет.