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

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

Сегодня наиболее распространенным средством обеспечения взаимодействия распределенных систем является механизм вызова удаленных процедур (Remote Procedure Call — RPC), однако возможности разнесения отдельных частей приложений в многозвенной, компонентной архитектуре по-прежнему остаются ограниченными.

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

Инициатива Microsoft.NET, подкрепленная протоколом SOAP (Simple Object Access Protocol), призвана упростить реализацию вызова удаленных процедур и ускорить приведение приложений к виду, обеспечивающему интероперабельность.

Технология CORBA, предложенная консорциумом Object Management Group, является стандартом в части обеспечения интероперабельности программного обеспечения промежуточного слоя для корпоративных распределенных вычислительных сред, особенно на базе Unix-систем и мэйнфреймов.

За прошедшие годы специалистами OMG проделан очень большой объем работы по адаптации архитектуры CORBA к потребностям реальных систем, но, несмотря на это, расслабляться разработчикам некогда. Ведь современные технологии должны соответствовать спецификациям самых последних стандартов. А заказчики уже сами определят, сможет ли SOAP стать полноправным преемником CORBA в качестве корпоративной модели распределенной обработки.

Сравнивать CORBA с SOAP все равно что сравнивать яблоко с апельсином. В отличие от SOAP, архитектура CORBA не является языком разметки. Эта технология представляет собой промежуточное звено, упрощающее связь распределенных объектно-ориентированных приложений и обеспечивающее их нормальное взаимодействие независимо от платформы, для которой они написаны.

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

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

Microsoft устанавливает свой порядок

Технология SOAP является составной частью стратегии Microsoft .NET и усиливает конкурентоспособность компонентной объектной модели COM+ в противостоянии с архитектурой CORBA и средствами Java.

С выпуском программного обеспечения BizTalk Server 2000, ориентированного на XML, корпорация Microsoft начала предлагать средства для объединения программ, написанных для различных платформ, и заполнила брешь в своих предложениях в разряде программного обеспечения класса business-to-business. Встроив поддержку SOAP в BizTalk Server, Microsoft добилась достаточно высокого уровня интероперабельности, благодаря чему ее парусник стал потихоньку обгонять корабль CORBA. Стоит признать, что Microsoft поймала ветер, ведь технология SOAP не связана с ограничениями Windows, Java или какой-то иной конкретной среды.

Инициатива Microsoft .NET упростила программистам использование интерфейсов SOAP. Любой разработчик программ на Visual Basic, даже не будучи экспертом в области XML/SOAP, способен разместить объекты своих приложений в Internet.

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

Простота SOAP влечет за собой дополнительные накладные расходы. Данные XML должны быть извлечены из конверта SOAP и проанализированы, а это снижает производительность. В отличие от двоичных данных CORBA текстовым сообщениям SOAP нужна гораздо более высокая пропускная способность.

Стандарты, лежащие в основе CORBA, достаточно устоялись — однако SOAP и XML все еще эволюционируют, и консорциуму World Wide Web Consortium еще предстоит окончательно закрепить их. Энтузиастам, которые взяли на вооружение ранние версии SOAP и XML, возможно, еще придется потратить силы и время на переработку некоторых компонентов своего кода.

Принимая вызов

В ближайшее время разработчики вряд ли откажутся от CORBA. Группа OMG предприняла целый ряд шагов, для того чтобы обеспечить совместимость CORBA с новыми протоколами. В результате появились связующие звенья (в том числе и проекты с открытым кодом), позволяющие преобразовать запросы SOAP в вызовы CORBA. В области Web-служб CORBA обладает даже определенными преимуществами перед средствами связывания языков программирования и API-интерфейсов. Язык CORBA IDL (Interface Definition Language) представляет собой механизм описания синтаксиса интерфейса. Впрочем, аналогичную роль выполняет язык WSDL (Web Services Description Language), используемый при построении модели Web-служб.

Еще более важно то, что CORBA поддерживает компонентную разработку и интеграцию приложений предприятия (enterprise application integration — EAI), обеспечивая потребности во взаимодействии в естественных терминах объектов.

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

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


Карта отличий

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

SOAPCORBA
Для реализации механизма обработки сообщений и вызова удаленных процедур требуется интеграция дополнительного программного обеспечения промежуточного слояСпецификации CORBA представляют собой хорошо интегрированные интерфейс и набор протоколов, которые поддерживают сложные схемы взаимодействия и унаследованные интерфейсы.
Простая в освоении и применении технология SOAP доступна программистам на Visual Basic, прошедшим небольшую переподготовкуАрхитектура CORBA требует гораздо более серьезных затрат при изучении и программировании. Ее область применения, как правило, ограничена крупномасштабными проектами
Доступ к компонентам SOAP осуществляется по протоколу HTTP через межсетевые экраны и Web-серверы. Таким образом упрощается интеграция приложений, предназначенных для организации взаимодействий категории business-to-businessАрхитектура CORBA требует открытых подключений к сети. Возможны осложнения, связанные с использованием межсетевых экранов. Полнофункциональная реализация подобной технологии может быть осуществлена лишь на выделенных серверах
Текстовому протоколу SOAP для эффективной передачи информации требуется более высокая пропускная способность. На клиентской стороне производится синтаксический разбор языковых конструкцийДвоичный протокол CORBA отличается повышенной скоростью пересылки и обработки данных
Поскольку SOAP построен на базе XML, решение вопросов интероперабельности ПО, предназначенного для различных платформ, упрощаетсяАрхитектура CORBA также базируется на открытых спецификациях, но она требует согласования конфигураций различных брокеров объектных запросов
Спецификации SOAP еще не являются окончательным вариантом стандарта, и разработчикам, выбравшим эту технологию, впоследствии придется вносить изменения в свои программыАрхитектуре CORBA недостает ориентации на Internet, но постепенно она становится все более адаптированной к совместной работе с SOAP и Web-службами
Спецификации компонентов безопасности SOAP находятся в стадии рассмотрения, но пока не утвержденыСпецификации службы безопасности CORBA уже существуют