Для тех, кто приступает к реализации новых проектов, Etch может стать интересной альтернативой технологиям SOAP, CORBA, EJB и ряду других протоколов обработки сообщений. Механизмы Etch обещают избавить разработчиков от трудностей проектирования многоплатформенных приложений на основе SOAP, а также обеспечить производительность, позволяющую выполнять прикладные программы практически в режиме реального времени. Таким образом, обмен информацией будет осуществляться быстрее, чем это позволяет традиционная инфраструктура SOA (Service-Oriented Architecture).
Конечно, SOAP -- очень зрелый стандарт. Однако руководитель проекта разработки платформы CUAE Луи Марасьо отметил, что набор функций, реализованных в существующих платформах SOAP, выглядит далеко не так впечатляюще. По словам Марасьо, Cisco добивается стопроцентной функциональной совместимости всех компонентов протокола для всех поддерживаемых языков и платформ.
Хотя главная цель разработки Etch заключается в поддержке новой функциональности CUAE 2.5, новый протокол вполне подходит и для обычных приложений клиент-серверной архитектуры.
"Одна из основных наших целей заключалась в создании технологии обмена данными между приложениями без присущей протоколу SOAP сложности и характерных для него издержек, -- пояснил Марасьо. -- Если функционирование SOAP строится на основе очень сложного файла спецификации WSDL, в котором определяется интерфейс между клиентом и сервером, то протокол Etch использует файл, написанный на собственном языке определения интерфейса Cisco, который имеет много общего с файлом интерфейса Java», - пояснил Марасьо.
Помимо упрощения конфигурации, Etch в значительно меньшей степени по сравнению с SOAP загружает каналы передачи данных. Если протокол SOAP в ходе испытаний осуществлял управление 900 вызовами в секунду, то Etch генерировал более 50 тыс. сообщений в однонаправленном режиме и 15 тыс. транзакций при организации полноценной двусторонней связи.
Технология Etch не имеет жесткой привязки к какому-то языку, платформе или транспортному протоколу. Первая версия будет поддерживать языки C# и Java, включая механизмы интеграции в среду Visual Studio и Eclipse. Кроме того, в самое ближайшее время должны появиться версии для Ruby, Python и Си.
Cisco намерена распространять технологию Etch на условиях Open Source. В настоящее время решается вопрос о том, какая лицензия при этом будет использоваться. Предпочтение планируется отдать менее жесткой по сравнению с GPL лицензии, возможно, это будет аналог Apache или Mozilla. В результате разработчики получат возможность интегрировать Etch в свои продукты без каких-либо лицензионных ограничений. Окончательное утверждение лицензионной модели, по словам представителей Cisco, должно состояться в июне.
Еще одной особенностью Etch, отличающей этот протокол от SOAP, является способность сервера инициировать трафик сообщений, направляемых клиенту, после установки соединения. Кроме того, Etch поддерживает сообщения типа событий, не требующих ответа. Указанные возможности позволят Etch предоставлять услуги уведомления, а клиент сможет самостоятельно определять, уведомления о каких событиях ему хотелось бы получать. Таким образом, появится возможность выстраивания приложений поверх протокола Etch, который мог бы взять на себя некоторые функции, выполняемые обычно корпоративной сервисной шиной (Enterprise Service Bus, ESB).
Процедура интеграции Etch в среду Visual Studio и Eclipse покажется знакомой любому, кто имел дело с инструментами интеграции SOAP. Создав определение на языке IDL, разработчик дает интегрированной среде IDE указание сгенерировать либо клиентскую заглушку, либо скелет сервера. Клиентскую заглушку можно использовать немедленно; разработчику необходимо только сконфигурировать транспорт и конечную точку, а также написать код вызова сообщения.
На серверной стороне разработчик берет скелет и реализует бизнес-логику в обработчиках сообщений. Сервер существует не внутри контейнера, а работает в качестве независимого процесса. Конечная точка и транспорт определяются на этапе выполнения, а не при определении сервиса. В этом заключается принципиальное отличие от SOAP, где и конечная точка, и транспорт жестко встраиваются в WSDL. Структура Etch автоматически формирует сценарии для среды C# и Java.
Проекты, в которых в качестве средства связи используется протокол Etch, могут поддерживать взаимодействие с технологиями SOAP, JSON, REST или другими существующими протоколами. В Cisco уже продемонстрировали, как просто создается мост между Etch и SOAP. По словам Марасьо, готовые мосты к SOAP и REST должны быть готовы через шесть - девять месяцев после появления Etch.
Представители Cisco изучают и возможность придания протоколу Etch статуса стандарта. Марасьо подчеркнул, что Cisco хорошо представлена в IETF -- ведущей организации по стандартизации протоколов Internet. Согласно другому сценарию, Cisco может попытаться продвигать Etch в качестве отраслевого стандарта, используя преимущества открытого кода Etch.
Cisco планирует выпустить готовый вариант Etch летом текущего года, а бета-версия должна появиться уже в середине июля.