Logo CitForum CITForum на CD Форумы Газета Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

21.05.2012

Google
WWW CITForum.ru
2007 г.

Corba: ушла, но (будем надеяться) не забыта

Терри Коатта
Перевод: Сергей Кузнецов
Оригинал: Terry Coatta. Corba: Gone But (Hopefully) Not Forgotten, ACM Queue, Volume 5, Number 4, May/June 2007.

Чудес не бывает, и уроки прошлого применимы и сегодня

В июньском номере Queue за 2006 г. Мичи Хеннинг (Michi Henning) представил очень хорошую концентрированную историю CORBA и привел обсуждение того, как некоторые технические ограничения этой технологии способствовали ее краху. Хотя эти ограничения, несомненно, содействовали закату CORBA, имеется широко распространенное мнение, что основной причиной явилось доминирующее влияние Web-сервисов. Это мнение подкрепляется верой в то, что доминирующее положение Web-сервисов в области распределенного компьютинга свидетельствует о техническом превосходстве этой технологии над предшествовавшими ей технологиями, такими как CORBA и DCOM.

Проработав в области распределенных систем довольно много лет – начиная с того времени, когда построение распределенной системы в действительности означало упаковку бит в пакеты UDP с использованием любовно сделанного вручную кода на языке C, – я считаю это предположение безосновательным. Хуже того, оно свидетельствует о нежелании по достоинству оценивать те аспекты предшествующих систем, которые были хорошо продуманы и разработаны. Это является симптомом менталитета «серебряной пути», когда технология Web-сервисов рассматривается как радикальный отказ от прошлого, позволяющий окончательно устранить сложность разработки и построения распределенных систем.

На самом ли деле Web-сервисы отличаются от предшествующих систем? Одним из значительных преимуществ, приписываемых технологии Web-сервисов, является то, что она нацеливается на поддержку сервис-ориентированной архитектуры (Service Oriented Architectures, SOA). Близость этих понятий подчеркивает наличие слова «сервис» в названиях их обоих. «Ориентация на сервисы» часто противопоставляется стилю «мелкоструктурных» (fine-grain) распределенных объектов, который считается определяющей характеристикой систем, основанных на CORBA. Конечно, верно, что в CORBA обеспечивается распределенный доступ на уровне индивидуальных объектов. Однако следует заметить, что в CORBA также поддерживаются рекурсивно определяемые структуры данных, которые позволяют достаточно просто обмениваться сложными структурами данных, передаваемыми по значению.

В середине 1990-х я работал в составе группы, которая проектировала и разрабатывала основанную на CORBA систему, обеспечивающую с использованием этой возможности обмен информацией об управлении разработкой и сопровождением программного обеспечения. Мы спроектировали структуру данных CORBA, представляющую дерево узлов. У каждого узла имелось имя, значение и некоторые другие атрибуты. В нем также содержались дочерние узлы, каждый из которых обладал такой же структурой. Конечно, у листовых узлов потомки отсутствовали. Эту структуру было относительно просто представить на языке CORBA IDL с использованием конструкций struct, union и array. Любое дерево, состоящее из таких узлов, можно было легко передать посредством вызова метода в CORBA – подсистема поддержки времени выполнения производила сериализацию дерева и передавала его массовым образом получателю. Кроме того, такое дерево вообще не содержало ссылок на объекты и использовалось исключительно для обмена информацией по значению. Наконец, можно заметить, что структура и содержимое этого дерева не случайно напоминают DOM-представление XML-документа.

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

И в этом состоит суть проблемы. Когда мы создавали упоминавшуюся выше систему, мы могли выбрать подход с определением множества объектных интерфейсов и передачей между ними ссылок. Но мы знали, что к информации об управлении, в основном, будет требоваться массивный доступ, и это лишало всякого смысла передачу информации по кусочкам путем многократного вызова методов. Вместо того чтобы понадеяться на то, что эту нашу проблему каким-то образом решит CORBA, мы решили сами выбрать те элементы CORBA, которые обеспечивали требуемое нам поведение. Мы создали «сервис-ориентированное» решение, потому что это имело смысл.

Применение Web-сервисов не гарантирует построение хорошей распределенной системы, а использование CORBA не обязательно приводит к созданию плохой системы. Web-сервисы не могут волшебным образом предоставить системе возможность эффективно справиться с ограничениями пропускной способности и задержки. Эта технология не может устранить трудности, возникающие из-за частичных отказов и зависимостей в системах, которые могут становиться временно недоступными. К счастью, люди проектируют и создают распределенные системы на протяжении многих лет, часто используя технологии, подобные CORBA, DCOM, и более ранние технологии. Не надо думать, что вся эта работа вытесняется волшебством Web-сервисов, поскольку чудес на свете не бывает, а уроки прошлого применимы и сегодня.

Терри Коатта (Terry Coatta) является членом редакционного совета ACM Queue. Он работает менеджером по продукции компании Vitrium Systems Inc., которая производит программное обеспечение для отслеживания и контроля доступа к PDF-документам. В прошлом он занимал должности вице-президента по разработкам в компании Silicon Chalk, создававшей программное обеспечение реального времени для использования в высшей школе, и директором по разработке распределенных систем в Open Text Corporation. Он получил степень PhD в области компьютерных наук в University of British Columbia.

Подписка на новости CITForum.ru

Новые публикации:

19 мая

  • Прозрачный механизм удаленного обслуживания системных вызовов

  • Система моделирования Grid: реализация и возможности применения

    Газета:

    Майкл Стоунбрейкер:

  • Ошибки в системах баз данных, согласованность "в конечном счете" и теорема CAP

  • Дискуссия по поводу "NoSQL" не имеет никакого отношения к SQL

    29 апреля

  • Материалы конференции "Корпоративные Базы Данных-2010"

  • Разные облики технологии баз данных (отчет о конференции)

    14 апреля

  • MapReduce: внутри, снаружи или сбоку от параллельных СУБД?

  • Научные вызовы технологиям СУБД

    Обзоры журнала Computer:

    31 марта

  • Рационализация согласованности в "облаках": не платите за то, что вам не требуется

  • Взаимные блокировки в Oracle

  • Архитектура среды тестирования на основе моделей, построенная на базе компонентных технологий

  • Объектное представление XML-документов

    Газета:

  • Microsoft для российских разработчиков: практика с элементами фундаментальности

    10 марта

  • HadoopDB: архитектурный гибрид технологий MapReduce и СУБД для аналитических рабочих нагрузок

  • Классификация OLAP-систем вида xOLAP

  • BGP. Три внешних канала. Балансировка исходящего и входящего трафиков

    Газета:

  • Что мы знаем об iPhone 4G?

    17 февраля

  • MapReduce и параллельные СУБД: друзья или враги?

  • Объектно-ориентированное программирование в ограничениях: новый подход на основе декларативных языков моделирования данных

  • Системологический подход к декомпозиции в объектно-ориентированном анализе и проектировании программного обеспечения

    Газета:

  • Эволюция Wine

    3 февраля

  • Дом на песке

  • Реальное переосмысление "формальных методов"

  • Интервью с Найджелом Пендзом

    Газета:

  • iPad. Первый взгляд на долгожданный планшет от Apple

  • Я не верю в iPad

    20 января

  • SQL/MapReduce: практический подход к поддержке самоописываемых, полиморфных и параллелизуемых функций, определяемых пользователями

  • Данные на лету: как технология потокового SQL помогает преодолеть кризис

    Обзоры журнала Computer:

    2 декабря

  • Сергей Кузнецов. Год эпохи перемен в технологии баз данных

    18 ноября

  • Генерация тестовых программ для подсистемы управления памятью микропроцессора

  • Сравнительный анализ современных технологий разработки тестов для моделей аппаратного обеспечения

    Все публикации >>>


  • IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей PR-акции, размещение рекламы — тел. +7 495 6608306, ICQ 232284597 Пресс-релизы — pr@citforum.ru
    Послать комментарий
    Информация для авторов

    Редакция раздаёт котят!

    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2009 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...