by James Turner

Cisco Systems’ New Client/Server Messaging Protocol Announced

May 22, 20084 mins
DeveloperOpen SourceWeb Development

Are your developers using SOAP, CORBA or EJBs? You might want to take a look at Etch. It's language-, platform- and transport-agnostic, and Cisco is planning to release it as open source.

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.


Navigating a Sea of SOA Standards

WS-I Publishes Basic Security Profile 1.0 (2007)

The Battle for Web Services Standards (2003 but remarkaly relevant)

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.

The Etch integration into Visual Studio and Eclipse will be very familiar to anyone who has used SOAP integration tools. After authoring the IDL definition, the developer tells the IDE to generate either a client stub or a server skeleton. The client stub is usable immediately; the developer needs only to configure the transport and endpoint, and to code the message calls.

On the server, the developer takes the skeleton and implements the business logic that lives inside the message handlers. The server runs as an independent process, rather than living inside a container. The fact that the endpoint and transport are defined at run-time rather than in the service definition is a dramatic contrast to SOAP, where both must be hardwired into the WSDL. The Etch framework also automatically creates build scripts for the C# or Java environment.

Projects implementing their communications using Etch aren’t out of luck if they need to interoperate with SOAP, JSON, REST or other existing protocols. Cisco has already demonstrated the capability to easily create bridges between Etch and SOAP, according to Marascio. He said that turnkey bridges to SOAP and REST should be available six to nine months after the release of Etch.

Cisco also is examining the possibility of establishing Etch as a standard. Marascio pointed out that Cisco is well represented in the IETF, the main standards body for Internet protocols. Alternatively, Cisco might attempt to promote Etch as an industry standard, an effort that would be aided by Etch’s open source nature.

Cisco plans to make Etch available this summer, with a beta release as soon as the middle of July.