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