Etch — новый протокол обмена сообщениями, анонсированный Cisco Systems. Как предполагается, он будет лишен недостатков ныне существующих сетевых протокола SOAP и стандарта CORBA, и вполне сможет составить им конкуренцию.
Напомним, что, несмотря на использование в SOAP стандартизованного формата обмена сообщениями на базе XML, различные реализации SOAP могут быть взаимно несовместимыми. При этом само по себе использование текстового языка сообщений на базе XML отрицательно сказывается на производительности.
Предполагается, что Etch избежит этих недостатков, предоставив стандартизованные средства для разработчиков на Java, C# и, в перспективе, на Python, Ruby и C. Помимо этого, для облегчения работы программистов, планируется интеграция компонент Etch в интегрированные среды разработки Eclipse и Visual Studio с обеспечением максимальной совместимости в приемах разработки с существующими компонентами для SOAP.
Объявлено, что Etch будет обеспечивать унифицированное поведение на любых платформах. При этом в перспективе планируется совместимость Etch с существующими протоколами (SOAP, JSON, REST).
В отличие от SOAP, использующего громоздкий язык описания веб-сервисов WSDL, Etch базируется на собственном, более простом языке определения интерфейсов, похожем по синтаксису на Java.
Второй, а, возможно, и первой по важности особенностью Etch, станет более высокая в сравнении с SOAP производительность, обеспечивающая, по заявлению Cisco, до 50 тыс. однонаправленных сообщений в секунду, либо до 15 тыс. двухсторонних транзакций на тестовом оборудовании, при этом SOAP на этой конфигурации показал результат в 900 сообщений.
Помимо этого, Etch будет поддерживать сообщения-уведомления (events), не требующие ответа. Это позволит реализовывать сервисы с «подпиской» клиента на определенные типы сообщений. Также будет реализована возможность инициировать обмен трафиком с серверной стороны после установки соединения.
Отличается Etch от SOAP еще и тем, что в первом случае у сервера есть возможность инициировать соединение с клиентом. Помимо этого, новая разработка поддерживает разные типы сообщений, которые различаются по событиям. Например, в случае реализации Etch, у разработчиков есть возможность разворачивать сервисы-нотификаторы, при помощи которых клиент регистрирует лишь те сообщения, которые его интересуют. В результате такого подхода у приложений, работающих поверх Etch, есть возможность фильтровать трафик без применения сложных маршрутизаторов и фильтров.
Хотя основная цель разработки протокола — это расширение возможностей новой версии платформы Cisco Unified Application Environment 2.5, Cisco собирается предоставить и сам протокол, и средства разработки для использования новых возможностей клиент-серверного взаимодействия под открытой лицензией на всех платформах.
Для этого, видимо, будет выбрана какая-либо из лицензий семейства BSD, допускающая, в отличие от GPL, использование кода в закрытых разработках. Ожидается, что выбор лицензии и окончательные сведения о разработке Cisco доведет до общественности в июне этого года. Помимо этого, Cisco рассматривает возможность стандартизации Etch в IETF (Internet Engineering Task Force), группе, отвечающей за интернет-стандарты. Бета-версию Etch предполагается выпустить в середине июля 2008 г.