SlideShare a Scribd company logo
Apache Etch.
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
Feb. 2011
Page 1


                  Efficient and feature-rich
                  network services.




                  BMW Car IT GmbH
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
                  Apache Etch.
Feb. 2011
Page 2            What is Etch?

                  framework for building network services

                  Key facts:

                    symmetric
                    sychronous, two-way and
                    asynchronous, one-way
                    error handling
                    timing constraints
                    convenient service description
                    fast & efficient
                    scalable: from phones to backend servers
                    modular architecture
                    language & transport independent
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
                  Apache Etch.
Feb. 2011
Page 3            Network Service Description.
                  module org.apache.etch.demo

                  service helloworld{
                         string hello(string msg)
                  }




                           Node                     Node


                      process

                                                       spawn thread

                         wait                          process request

                                                       terminate thread

                      process
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
                  Apache Etch.
Feb. 2011
Page 4            Symmetric two-way communication.
                  service helloworld{
                         @Direction(server)
                         string hello(string msg)

                        @Direction(client)
                        string askSomething(string question)
                  }



                        Client                      Server




                                 process
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
                  Apache Etch.
Feb. 2011
Page 5            Asynchronous one-way Communication.
                  service helloworld{
                         @Direction(server)
                         @Oneway
                         void hello(string msg)

                           @Direction(client)
                           @Oneway
                           void howdy(string msg)
                  }

                           Client                   Server



                      process

                                                        process




                                       process
                                    asynchronous
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
                  Apache Etch.
Feb. 2011
Page 6            Error handling & user data.
                  service helloworld{
                         struct User ( string name )

                        exception UserUnknownException ( string message )

                        @Timeout(500)
                        void hello(User user, string msg)
                             throws UserUnknownException
                  }
                         Node                     Node
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
                  Apache Etch.
Feb. 2011
Page 7            Non-functional aspects.

                  Programming language independent:
                  Bindings are currently available for
                  - Java
                  - C#
                  - C
                  - Google Go (alpha version), Javascript (alpha version)

                  Transport independent:
                  - default transport is TCP using a binary encoding
                  - adding new transports is simple
                  - XML available e.g. for C#,JavaScript binding

                  Tooling:
                  - Wireshark support
                  - basic Maven integration
                  - Eclipse plugins are underway

                  Efficiency (measured on a desktop system):
                  - ~ 40.000 asynchronous one-way calls per second
                  - ~ 15.000 blocking two-way calls per second
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
                   Apache Etch.
Feb. 2011
Page 8             Architecture.

                   fully symmetric, flexible protocol stack for client and server

                               Application                                                   Application

                        Stub                 Remote           generated               Stub                 Remote

                            DeliveryService           call stubs / forward requests      DeliveryService
            Mailbox                                                                                           Mailbox
              Mailbox       MailboxManager            manage requests / responses        MailboxManager         Mailbox
                  Mailbox                                                                                           Mailbox

                               Messagizer                    serialization                   Messagizer

                               Packetizer                  byte[]    Packets                 Packetizer

                               Transport                    e.g. TCP, SSL                    Transport




                                                          Implemented the same way for Java, C#, C, Go
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
                  Apache Etch.
Feb. 2011
Page 9            Roadmap.

                  -   more transports (e.g. UDP, Serial, ...)
                  -   more languages (first steps for JavaScript, Python exist)
                  -   naming service
                  -   discovery
                  -   web service gateway
                  -   more security
                  -   better IDE support
                  -   better maven integration
                  -   message routing, broker
                  -   ...
                               Where do you want to go?
Apache Etch
Grandy/Fitzner
BMW Car IT GmbH
                  Apache Etch.
Feb. 2011
Page 10           Find out more.

                  Website
                  www.incubator.apache.org/etch

                  Mailing Lists
                  etch-dev@incubator.apache.org
                  etch-user@incubator.apache.org

                  Contributors: (initial development done @ Cisco)
                  Rene Barrazza, Seth Call, Scott Comer, James
                  DeCocq, James Dixson, Michael Fitzner, Holger Grandy,
                  J.D. Liau, Youngjin Park, Gaurav Sandhir

                  Speaker contact:
                  Holger.Grandy@bmw-carit.de

More Related Content

What's hot (19)

PPTX
성공적인 서비스로의 플랫폼 선택
uEngine Solutions
 
PDF
TS 4839 - Enterprise Integration Patterns in Practice
aegloff
 
PPTX
Web changesandasp4 upload
READIFY
 
PPTX
Windows Azure AppFabric
David Chou
 
PPTX
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
READIFY
 
PPTX
BizTalk Mapping Patterns and Best Practices
BizTalk360
 
PDF
Chapter10 web
READIFY
 
PPT
NServicebus WCF Integration 101
Rich Helton
 
PDF
Modern Architectures with Spring and JavaScript
martinlippert
 
PPTX
Windows Azure
Murali Krishna Alluri
 
PPT
Asp.net
Naveen Sihag
 
PPTX
Azure in Developer Perspective
rizaon
 
PPTX
ASP.NET Presentation
dimuthu22
 
PPTX
Asp.net presentation by gajanand bohra
Gajanand Bohra
 
PDF
Serverless orchestration and automation with Cloud Workflows
Márton Kodok
 
PDF
Building multi tenancy enterprise applications
uEngine Solutions
 
PDF
Mike Taulty DevDays 2010 Silverlight MEF
ukdpe
 
PPT
ENOVIA 3Dcom Architecture
PalmV
 
PDF
Hibernate 6.0 - What's new.pdf
Christian Beikov
 
성공적인 서비스로의 플랫폼 선택
uEngine Solutions
 
TS 4839 - Enterprise Integration Patterns in Practice
aegloff
 
Web changesandasp4 upload
READIFY
 
Windows Azure AppFabric
David Chou
 
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
READIFY
 
BizTalk Mapping Patterns and Best Practices
BizTalk360
 
Chapter10 web
READIFY
 
NServicebus WCF Integration 101
Rich Helton
 
Modern Architectures with Spring and JavaScript
martinlippert
 
Windows Azure
Murali Krishna Alluri
 
Asp.net
Naveen Sihag
 
Azure in Developer Perspective
rizaon
 
ASP.NET Presentation
dimuthu22
 
Asp.net presentation by gajanand bohra
Gajanand Bohra
 
Serverless orchestration and automation with Cloud Workflows
Márton Kodok
 
Building multi tenancy enterprise applications
uEngine Solutions
 
Mike Taulty DevDays 2010 Silverlight MEF
ukdpe
 
ENOVIA 3Dcom Architecture
PalmV
 
Hibernate 6.0 - What's new.pdf
Christian Beikov
 

Viewers also liked (15)

PDF
ApacheCon09: Avro
Cloudera, Inc.
 
PPTX
Apply etch
Hparisotto
 
PPT
Schemaless Databases
Dan Gunter
 
PDF
PVC Compounding Ingredients Part 1
Siddhartha Roy
 
PDF
PVC volume cost, How to use Fillers judicously
Siddhartha Roy
 
PDF
Pvc formulation perstorp_eng 2014
Perstorp Group
 
PDF
Curling in multilayer films
Ted Brink
 
PPT
Etching
Stephanie Morris
 
PPT
Additives in plastics
Vasudev Singh
 
PDF
Pvc compounding ingredients, The essential Ingredients
Siddhartha Roy
 
PDF
Database Schema Evolution
Lars Thorup
 
PPT
Wet and Dry Etching
Dr. Ghanshyam Singh
 
PDF
Parquet Strata/Hadoop World, New York 2013
Julien Le Dem
 
PDF
Efficient Data Storage for Analytics with Apache Parquet 2.0
Cloudera, Inc.
 
PPTX
Scada and power system automation
Shubham Kapoor
 
ApacheCon09: Avro
Cloudera, Inc.
 
Apply etch
Hparisotto
 
Schemaless Databases
Dan Gunter
 
PVC Compounding Ingredients Part 1
Siddhartha Roy
 
PVC volume cost, How to use Fillers judicously
Siddhartha Roy
 
Pvc formulation perstorp_eng 2014
Perstorp Group
 
Curling in multilayer films
Ted Brink
 
Additives in plastics
Vasudev Singh
 
Pvc compounding ingredients, The essential Ingredients
Siddhartha Roy
 
Database Schema Evolution
Lars Thorup
 
Wet and Dry Etching
Dr. Ghanshyam Singh
 
Parquet Strata/Hadoop World, New York 2013
Julien Le Dem
 
Efficient Data Storage for Analytics with Apache Parquet 2.0
Cloudera, Inc.
 
Scada and power system automation
Shubham Kapoor
 
Ad

Similar to Apache Etch Introduction @ FOSDEM 2011 (20)

PDF
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Benjamin Cabé
 
PDF
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Benjamin Cabé
 
PDF
Open source building blocks for the Internet of Things - Jfokus 2013
Benjamin Cabé
 
PDF
Vii 2 Z Final Slides Os Gi Iess 2010
IESS
 
PDF
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
PDF
Java EE 7 - Overview and Status
Java Usergroup Berlin-Brandenburg
 
PDF
Oop2008 RESTful services with GWT and Apache CXF
Adrian Trenaman
 
PDF
Http front-ends
Theo Schlossnagle
 
PDF
Building high traffic http front-ends. theo schlossnagle. зал 1
rit2011
 
PDF
Websocket 1.0
Arun Gupta
 
PDF
HTML5 Websockets and Java - Arun Gupta
JAX London
 
PDF
Eclipse Paho - MQTT and the Internet of Things
Andy Piper
 
ZIP
Performance and Fault Tolerance for the Netflix API
Ben Christensen
 
PDF
OSGi tech session
Bram de Kruijff
 
PDF
Project Zero Php Quebec
Robert Nicholson
 
PDF
Open End To End Js Stack
Skills Matter
 
PDF
Business-friendly library for inter-service communication
Pivorak MeetUp
 
PDF
Cpp In Soa
WSO2
 
PDF
Building an Open M2M community one step at a time
Benjamin Cabé
 
PDF
OWF12/Java Building an Open M2M community
Paris Open Source Summit
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Benjamin Cabé
 
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Benjamin Cabé
 
Open source building blocks for the Internet of Things - Jfokus 2013
Benjamin Cabé
 
Vii 2 Z Final Slides Os Gi Iess 2010
IESS
 
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
Java EE 7 - Overview and Status
Java Usergroup Berlin-Brandenburg
 
Oop2008 RESTful services with GWT and Apache CXF
Adrian Trenaman
 
Http front-ends
Theo Schlossnagle
 
Building high traffic http front-ends. theo schlossnagle. зал 1
rit2011
 
Websocket 1.0
Arun Gupta
 
HTML5 Websockets and Java - Arun Gupta
JAX London
 
Eclipse Paho - MQTT and the Internet of Things
Andy Piper
 
Performance and Fault Tolerance for the Netflix API
Ben Christensen
 
OSGi tech session
Bram de Kruijff
 
Project Zero Php Quebec
Robert Nicholson
 
Open End To End Js Stack
Skills Matter
 
Business-friendly library for inter-service communication
Pivorak MeetUp
 
Cpp In Soa
WSO2
 
Building an Open M2M community one step at a time
Benjamin Cabé
 
OWF12/Java Building an Open M2M community
Paris Open Source Summit
 
Ad

Apache Etch Introduction @ FOSDEM 2011

  • 1. Apache Etch. Apache Etch Grandy/Fitzner BMW Car IT GmbH Feb. 2011 Page 1 Efficient and feature-rich network services. BMW Car IT GmbH
  • 2. Apache Etch Grandy/Fitzner BMW Car IT GmbH Apache Etch. Feb. 2011 Page 2 What is Etch? framework for building network services Key facts: symmetric sychronous, two-way and asynchronous, one-way error handling timing constraints convenient service description fast & efficient scalable: from phones to backend servers modular architecture language & transport independent
  • 3. Apache Etch Grandy/Fitzner BMW Car IT GmbH Apache Etch. Feb. 2011 Page 3 Network Service Description. module org.apache.etch.demo service helloworld{ string hello(string msg) } Node Node process spawn thread wait process request terminate thread process
  • 4. Apache Etch Grandy/Fitzner BMW Car IT GmbH Apache Etch. Feb. 2011 Page 4 Symmetric two-way communication. service helloworld{ @Direction(server) string hello(string msg) @Direction(client) string askSomething(string question) } Client Server process
  • 5. Apache Etch Grandy/Fitzner BMW Car IT GmbH Apache Etch. Feb. 2011 Page 5 Asynchronous one-way Communication. service helloworld{ @Direction(server) @Oneway void hello(string msg) @Direction(client) @Oneway void howdy(string msg) } Client Server process process process asynchronous
  • 6. Apache Etch Grandy/Fitzner BMW Car IT GmbH Apache Etch. Feb. 2011 Page 6 Error handling & user data. service helloworld{ struct User ( string name ) exception UserUnknownException ( string message ) @Timeout(500) void hello(User user, string msg) throws UserUnknownException } Node Node
  • 7. Apache Etch Grandy/Fitzner BMW Car IT GmbH Apache Etch. Feb. 2011 Page 7 Non-functional aspects. Programming language independent: Bindings are currently available for - Java - C# - C - Google Go (alpha version), Javascript (alpha version) Transport independent: - default transport is TCP using a binary encoding - adding new transports is simple - XML available e.g. for C#,JavaScript binding Tooling: - Wireshark support - basic Maven integration - Eclipse plugins are underway Efficiency (measured on a desktop system): - ~ 40.000 asynchronous one-way calls per second - ~ 15.000 blocking two-way calls per second
  • 8. Apache Etch Grandy/Fitzner BMW Car IT GmbH Apache Etch. Feb. 2011 Page 8 Architecture. fully symmetric, flexible protocol stack for client and server Application Application Stub Remote generated Stub Remote DeliveryService call stubs / forward requests DeliveryService Mailbox Mailbox Mailbox MailboxManager manage requests / responses MailboxManager Mailbox Mailbox Mailbox Messagizer serialization Messagizer Packetizer byte[] Packets Packetizer Transport e.g. TCP, SSL Transport Implemented the same way for Java, C#, C, Go
  • 9. Apache Etch Grandy/Fitzner BMW Car IT GmbH Apache Etch. Feb. 2011 Page 9 Roadmap. - more transports (e.g. UDP, Serial, ...) - more languages (first steps for JavaScript, Python exist) - naming service - discovery - web service gateway - more security - better IDE support - better maven integration - message routing, broker - ... Where do you want to go?
  • 10. Apache Etch Grandy/Fitzner BMW Car IT GmbH Apache Etch. Feb. 2011 Page 10 Find out more. Website www.incubator.apache.org/etch Mailing Lists [email protected] [email protected] Contributors: (initial development done @ Cisco) Rene Barrazza, Seth Call, Scott Comer, James DeCocq, James Dixson, Michael Fitzner, Holger Grandy, J.D. Liau, Youngjin Park, Gaurav Sandhir Speaker contact: [email protected]