Компания Cisco Systems анонсировала новый протокол передачи сообщений, который позволит разработчикам выполнять интеграцию клиент-серверных приложений без непроизводительных издержек, связанных с использованием традиционных для сервис-ориентированных сред протоколов типа SOAP. Протокол Etch поддерживает новую версию среды Cisco Unified Application Environment (CUAE) 2.5. Для тех, кто приступает к реализации новых проектов, 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).
Cisco планирует выпустить готовый вариант Etch летом текущего года, а бета-версия должна появиться уже в середине июля.