Является ли наследие CORBA?

Для проекта распределенных вычислений, начинающегося сегодня, с 0 устаревшими компонентами, есть ли веские причины для изучения CORBA?

Ответ 1

Есть еще ситуации, когда CORBA может быть хорошим ответом:

  • когда вы создаете распределенный система, включающая множественное программирование языки и несколько платформ,
  • когда ваша система влечет за собой отправку сложные структуры данных... и SOAP не режет его,
  • когда у вас высокий уровень обмена сообщениями ... и HTTP не сокращает его, или
  • когда вам нужно взаимодействовать с существующих клиентов CORBA и/или услуги.

Но, сказав это, есть альтернативы, которые делают то, что делает CORBA, только лучше... или так они утверждают. Например ZeroC ICE

EDIT @fnieto позволяет говорить (или подразумевать), что ICE не является бесплатным, но TAO есть.

Это неточно и вводит в заблуждение.

  • ICE - это программное обеспечение GPL и доступно для бесплатной загрузки. Вам нужно было заплатить за ICE, если вы/ваша компания не готовы жить с условиями GPL. (Или если вам нужна поддержка.)
  • Я использовал ICE в качестве примера альтернативного для CORBA. TAO - CORBA. Авторы ICE делают убедительный аргумент в пользу того, почему они могут получить лучшую производительность, не будучи совместимыми с CORBA.
  • TAO ни в коем случае не является единственной версией CORBA с открытым/открытым кодом. Я могу думать о 3 других, с верхней части головы.

В нижней части ICE отсутствует функциональная совместимость со стеками промежуточного программного обеспечения CORBA, но, по моему опыту, интероперабельность различных реализаций CORBA также может быть проблематичной. (Вещи, возможно, улучшились в этой области... но я не делал никакой работы CORBA с ~ 2002 года, поэтому я немного опечален.)

Ответ 2

Из существующих ответов это становится почти религиозной темой. Можно взглянуть на CORBA так же, как полупустое/полузаполненное стекло: с одной стороны, CORBA датируется унаследованным кругом, а с другой стороны, он относительно стабилен с несколькими доступными реализациями и "черт вы знаете".

В моей работе я вижу, что CORBA развертывается во встроенных системах, системах реального времени (CORBA имеет расширения RT) и тому подобное. Существует не так много альтернатив AFAIK.

Другим "преимуществом" CORBA является наличие нескольких высококачественных реализаций с открытым исходным кодом, например TAO, MICO, JacORB и т.д., с различными моделями лицензирования и поддержки. Существуют также доступные коммерческие издания.

Что касается "большинства" приложений CORBA, внедряемых на Java, это не так, как в моем опыте. Хотя сопоставление языков для CORBA на Java является одним из самых приятных (что может и не сказать много), у Java уже есть очень хорошая распределенная вычислительная модель, которая предлагает богатство за пределами CORBA, а все приложения Java используют это больше, чем CORBA. Подавляющее большинство разработок CORBA, которые я видел, находится на С++ (что также является худшим языковым отображением).

Наконец, CORBA предлагает стандартные асинхронные вызовы на стороне клиента в виде AMI, но никогда не предлагал асинхронную обработку на стороне сервера. TAO предлагает нестандартную серверную реализацию под названием AMH.

Ответ 3

Я считаю, что Corba был как бы возрожден по оригинальной спецификации EJB, так как EJB можно легко превратить в CORBA beans с некоторой конфигурацией. Я подозреваю, что большинство развертываний Corba фактически реализованы на Java.

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

Есть очень много очень сексуальных способов сделать то же самое (кроме высокого конца, упомянутого выше).

  • Облачные вычисления (веб-службы, масштабируемые вычисления, свободное соединение, очередность).
  • Услуги REST (веб-службы lite).
  • Службы SOAP (тяжелые веб-сервисы).
  • Вычисление сетки/кластера (очередь, уменьшение карты и т.д.)

Но, конечно, ваше Милосердие Май Вар.

Ответ 4

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

Наше приложение уже более 10 лет использовало CORBA (Orbix), так что теперь это наследие. И для того, как написано, CORBA - хорошая технология. Однако, если бы я начинал, я бы, вероятно, не использовал CORBA:

  • Это сложно, и лишь небольшое количество людей в моей организации это хорошо знают, в результате все трудные проблемы ложатся на них, чтобы их решить.
  • Рекрутинг персонала может быть проблемой. CORBA просто уже не круто и не становится круче. Хотя в Ирландии разработчики С++ немного тонкие на земле.
  • Большинство консалтинговых фирм хотят использовать веб-сервисы для интеграции, поэтому, если вы хотите, чтобы третьи стороны выполняли интеграцию, вам, вероятно, понадобится веб-службы api.

Теперь, в зависимости от типа сообщения, которое я хотел, я бы, вероятно, подумал:

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

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

Ответ 5

CORBA, безусловно, старомодна, но также предоставляет некоторые функции высокого уровня из коробки (см. здесь). Эта функциональность может быть выполнена с использованием современных веб-сервисов, но, вероятно, не в стандартной форме, и не без большой дополнительной работы.

Для 99% распределенных сервисов, CORBA нежелательно. Это уродливое, сложное и сложное в использовании.

Ответ 6

Одна вещь, о которой никто не упоминал, ОТКРЫТ, ОТКРЫТЫЕ СТАНДАРТЫ. Из всех существующих технологий (за исключением SOAP) это единственный истинный стандарт открытого белого текста. Стандарт не зависит от каких-либо технологий организации. RMI (Sun/Oracle), DCOM (теперь не функционирует - Microsoft). Он полностью нейтрален поставщику и языку. За исключением SOAP, ни одна из других технологий DOS (технология распределенных объектов) не является

Я архитектор программного обеспечения и регулярно должен сделать выбор, какой DOS следует использовать в дизайне системы. Если бы не религиозная война, с которой я сталкиваюсь каждый раз, это была бы мама или КОРБА.

Посмотрите на это так, если бы это было так, ни одна из сетей 3/4G не сработает. 3GPP полностью соответствует CORBA. Европейская спутниковая система соответствует всем требованиям CORBA. Спросите себя, почему? Это потому, что они должны основываться на нейтральных архитектурах поставщиков и языков!

Ответ 7

Я бы сказал, что текущий уровень зрелости веб-сервисов (включая REST) ​​и в Java EJB (который может даже использовать CORBA под обложками) охватывает то, что необходимо для распределенных корпоративных систем.

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

Это не противоречит использованию WebServices (или, действительно, CORBA), но указывает на аспект вашего выбора продукта, который можно упустить из виду при первоначальном возбуждении получения распределенной обработки.