incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Incubator Wiki] Update of "EtchProposal" by JamesDixson
Date Thu, 31 Jul 2008 17:11:45 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The following page has been changed by JamesDixson:

The comment on the change is:
update formatting and documentation references

- = Abstract
+ == Abstract ==
  Etch is a cross-platform, language- and transport-independent framework for building and
consuming network services.
- = Proposal
+ == Proposal ==
  Etch is a cross-platform, language- and transport-independent framework for building and
consuming network services. The Etch toolset includes a network service description language,
a compiler, and binding libraries for a variety of programming languages. Etch is also transport-independent,
allowing for a variety of different transports to used based on need and circumstance. The
goal of Etch is to make it simple to define small, focused services that can be easily accessed,
combined, and deployed in a similar manner. Ultimately with Etch, service development and
consumption becomes no more difficult than library development and consumption.
- = Background
+ == Background ==
  Etch was started because we wanted to have a way to write a concise, formal description
of the message exchange between a client and a server, with that message exchange supporting
a hefty set of requirements. The messaging technology should support one-way and two-way,
real-time communication. It should have high performance and scalability. I should support
clients and servers written in different languages. It should also support clients/servers
running in a wide range of contexts (such as thin web client, embedded device, PC application,
or server). It must support anyone adding new language bindings and new transports. It should
also be fast and small, while still being flexible enough to satisfy requirements. Finally,
it must be easy to use for developers both implementing and/or consuming the service.
- = Rationale
+ == Rationale ==
  Existing systems were either too slow, hard to use, bloated and/or proprietary. In any case,
none fit our matrix of requirements perfectly.
@@ -38, +38 @@

  It all comes down to this: developers should not have to care about the implementation language
or platform of the service nor what the transport is to get there, as long as basic semantics
are honored, and these should be no more or less than the semantics of your programming language
of choice. Further, a user requirement about specific protocols should not require rewriting
of application logic to make it fit into some arbitrary framework scheme or container.
- = Current Status
+ == Current Status ==
- == Meritocracy
+ === Meritocracy ===
  Etch was conceived by Scott Comer and Louis Marascio. As Scott finished the development
of the core compiler and first transport implementation, others have made various contributions
to the project: James Dixson and Shawn Dempsey have worked on the build environment; Manoj
Ganesan has worked on a Ruby binding; James Dixson on the Python binding; and James deCocq
on the C binding; Manoj Ganesan and Gaurav Sandhir did primary work on C# and maintenance
work all around. J.D. Liau has been instrumental in ideas and maintenance. Hung Nguyen has
created the Windows installer using NSIS and Seth Call is working on a JavaScript binding
with JSON transport for thin clients.
- == Community
+ === Community ===
  Etch solves problems lots of projects have. Any project that has a need to define multiple
services in a consistent way, or expose services on the network to a variety of languages
or platforms can benefit from Etch as technology.
- == Core Developers
+ === Core Developers ===
  The core developers are all listed in the initial committers list later in this proposal.
- == Alignment
+ === Alignment ===
  The compiler code is in Java, but the technology is language- and protocol-agnostic and
suitable for many different projects, including non-Java. The compiler makes use of Apache
Ant for orchestrating the build, and Apache Velocity for code generation.
- = Known Risks
+ == Known Risks ==
- == Orphaned Products
+ === Orphaned Products ===
  We are all quite committed to Etch and the development of an Etch community. Etch is a core
component of shipping Cisco products and will only grow over time.
@@ -66, +67 @@

  Etch being orphaned is unlikely.
- == Inexperience with Open Source
+ === Inexperience with Open Source ===
  The group of initial committers has had various levels of interaction with open-source communities.
Most of us came into Cisco through the acquisition of Metreos in 2006. While at Metreos, Louis
Marascio and several of us were active contributor’s to the OpenH323 project. We worked
through several bugs, submitted patches and even sponsored development. We have also made
contributions to other projects (some accepted, some not) on a much smaller scale over the
years, QDox, Maruku, Capistrano, OpenGatekeeper, and Mono.
- == Homogeneous Developers
+ === Homogeneous Developers ===
  Etch has been completely developed by Cisco employees, therefore all of the initial committers
to the project are affiliated with Cisco.
  Etch has just recently been made publicly available. First in binary form in May 2008 as
part of a Cisco product and in open source form in July 2008.
- == Reliance on Salaried Developers
+ === Reliance on Salaried Developers ===
  It is expected that Etch development will be done both on salaried time and volunteer time.
Cisco is committed as a corporate contributor to continue to allow Etch development, particularly
in light of Etch's key role as an enabling technology of Unified Communications products.
It is also expected that non-Cisco developers will become interested in Etch.
- == Relationships with Other Apache Products
+ === Relationships with Other Apache Products ===
  Etch currently depends upon these other Apache projects: Velocity, Maven and Ant.
  We expect that as Etch becomes available, it will be seen as a very compelling technology
and others will begin to depend upon it.
- == A Excessive Fascination with the Apache Brand
+ === A Excessive Fascination with the Apache Brand ===
  We believe Etch offers much to the Apache brand. We could easily, with the backing of Cisco,
take a more independent route and support Etch directly without the Apache foundation. But
after much consideration, we truly believe that would be the wrong approach for this technology.
@@ -94, +95 @@

  It is our view that Apache is simply the most appropriate community for the kind of technology
Etch represents.
- = Documentation
+ == Documentation ==
- No public documents are available yet. All documentation will be released with the publishing
of the source.
+ Public documents are available. All documentation can be found here
- = Initial Source
+ == Initial Source ==
  Etch has been in development at Cisco since Jan-2007. The system was designed from the beginning
to be open-sourced.  We consider Etch to be at release 1.0 and ready for production use.
@@ -109, +110 @@

  The language bindings for JavaScript, Python and C are in development.
  The Etch development home page is currently hosted a Cisco’s developer portal:
. Full source and binary distributions are available there including access to our public
subversion repository.
- = Source and Intellectual Property Submission Plan
+ == Source and Intellectual Property Submission Plan ==
  Apache would receive all source and documentation under the Apache Corporate Contributor
agreement. Cisco is the only license holder.
- = External Dependencies
+ == External Dependencies ==
  Java, JavaCC and Velocity are core dependencies of the compiler. The Java language binding
depends only on Java.
@@ -123, +124 @@

  C# - Microsoft .NET v2.0 (Mono compatibility coming soon)
- = Cryptography
+ == Cryptography ==
  Etch uses the native capabilities of Java and C# to support TLS as an option for the default
Etch binary transport protocol.
- = Required Resources
+ == Required Resources ==
- == Mailing Lists
+ === Mailing Lists ===
   * etch-private
   * etch-dev
   * etch-commits
   * etch-user
- == Subversion Directory
+ === Subversion Directory ===
- == Issue Tracking
+ === Issue Tracking ===
   JIRA : Etch (ETCH)
- == Other Resources
+ === Other Resources ===
- = Initial Committers
+ == Initial Committers ==
  Gaurav Sandhir      gsandhir at cisco dot com
@@ -166, +167 @@

  Shyamali Pease      shpease at cisco dot com
  Youngjin Park     youngjpa at cisco dot com
- == Affiliations
+ === Affiliations ===
  All the initial committers are Cisco employees.
- = Sponsors
+ == Sponsors ==
- == Champion
+ === Champion ===
  We need a hero!
- == Nominated Mentors
+ === Nominated Mentors ===
  Accepting Applications!
- == Sponsoring Entity
+ === Sponsoring Entity ===
  Accepting Applications!

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message