Я подозреваю, что все началось с проблем с брандмауэром: запросы CORBA являются двоичными, для нормальной работы требуется несколько случайных портов, поэтому запросы и ответы CORBA раньше блокировались брандмауэрами.HTTP и FTP также используют фантомные порты, но эти протоколы использовались гораздо шире, поэтому сразу стало очевидно, что брандмауэры должны быть настроены для их разрешения.В результате разработчики не могут полагаться на возможность иметь CORBA-соединение между сервером и ПК конечного пользователя и должны использовать более дружественный к брандмауэрам подход.
Брандмауэры кажутся гораздо менее серьезной проблемой при связи между специализированными серверами, чем могутиспользовать отдельные сети, фильтрацию IP / MAC, специализированные межсетевые экраны и тому подобное.Я думаю, что CORBA, как и JDBC, все еще используются для обмена данными между серверами.
Также может быть фактором, что сообщения CORBA используют выровненные поля (для сопоставления выравнивания границ, поскольку они используются в структурах данных C / C ++).Производные протоколы (например, буферы протокола Google ) не отправляют ненужные байты только для выравнивания.Следовательно, эти сообщения являются компактными, и эти протоколы могут быть предпочтительными, когда желательны двоичные сообщения и быстрые предварительно сгенерированные анализаторы сообщений.Буферы протоколов, которые кажутся мне похожими на CORBA по конструкции (IDL-подобный компилятор, заглушки и слуги, двоичные сообщения, языковая совместимость), действительно далеки от упадка, поскольку используются во многих службах Google для внутреннего использования.
Несмотря на то, что среда CORBA сложна, «правильно сделанный» стек веб-службы также не совсем тривиален, поэтому я не думаю, что сложность стандарта была проблемой.Точно так же, хотя исходные документы спецификаций OMG могут показаться ужасными, аналогичные спецификации SOAP / WDSL одинаково сложны, вероятно, трудно документировать стандарт в удобном для чтения виде.
Протоколы CORBA не являются проприетарными, они много раз были реализованы в Свободном программном обеспечении, включая JacORB , а также GNU / Classpath реализации (ну, теперь OpenJDK также бесплатен).