This week Cisco Systems announced a new messaging protocol intended to allow developers to integrate client/server applications without the overhead of traditional protocols such as SOAP. The new protocol, Etch, was introduced at a developer's conference covering the new 2.5 release of the Cisco Unified Application Environment (CUAE). Etch is slated to go into beta release this summer.
For project managers starting new work, Etch may offer an attractive alternative to SOAP, CORBA, EJB and other established messaging protocols. Etch promises a distributed application development without the cross-platform headaches that SOAP entails, and with a degree of performance that makes it practical for real-time applications that are chattier than traditional SOA infrastructures are set up for.
SOAP is a very robust standard, certainly. But as Louis Marascio, Director of Engineering for the CUAE platform at Cisco explained, when you whittle it down to the intersection of features that are compatibly implemented by the available SOAP platforms, the feature set shrinks considerably. Marascio says that Cisco is committed to having 100 percent functional compatibility of all features on all supported languages and platforms.
Although Etch's main goal was to enable new functionality in CUAE 2.5, the protocol is intended to have general applicability to generic client/server applications. One of its design goals was to create an inter-application communications technology without SOAP's complexity and overhead, explained Marascio. While SOAP relies on a very complicated WSDL file to define the interface between the client and server, Etch uses a file in Cisco's own interface definition language that shares many similarities to a Java interface file.
In addition to a simplified configuration, Etch also promises less overhead over the wire, compared to SOAP. In a testbed environment where SOAP was managing around 900 calls a second, Etch generated more than 50,000 messages in a one-way mode, and 15,000 transactions with a full round-trip, company officials stated.
Etch is also language- platform- and transport-agnostic. The initial release will support C# and Java, said the presenters, including integration into Visual Studio and Eclipse. Implementations for Ruby, Python and C are planned for the near future.
Cisco intends to release Etch as open source, and is in the process of deciding what license to use. The intent is to use a less restrictive license than GPL, perhaps Apache or Mozilla. This is to allow commercial developers to incorporate Etch into products without licensing issues. A final announcement on the licensing decision will be available in the next month, said Cisco staff.
Another Etch feature that differentiates it from SOAP is the ability for the server to initiate message traffic to the client once a connection is established. Etch also supports event-type messages: messages that don't require a response. These capabilities allow Etch to implement notification-style services, where a client can register to be notified of interesting events. As a result, applications can be designed on top of Etch that could also assume some responsibilities normally handled by an enterprise service bus.