Apache Etch Introduction @ FOSDEM 2011
Upcoming SlideShare
Loading in...5
×
 

Apache Etch Introduction @ FOSDEM 2011

on

  • 9,490 views

 

Statistics

Views

Total Views
9,490
Views on SlideShare
9,490
Embed Views
0

Actions

Likes
0
Downloads
74
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Apache Etch Introduction @ FOSDEM 2011 Apache Etch Introduction @ FOSDEM 2011 Presentation Transcript

  • Apache Etch.Apache EtchGrandy/FitznerBMW Car IT GmbHFeb. 2011Page 1 Efficient and feature-rich network services. BMW Car IT GmbH
  • Apache EtchGrandy/FitznerBMW Car IT GmbH Apache Etch.Feb. 2011Page 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 EtchGrandy/FitznerBMW Car IT GmbH Apache Etch.Feb. 2011Page 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 EtchGrandy/FitznerBMW Car IT GmbH Apache Etch.Feb. 2011Page 4 Symmetric two-way communication. service helloworld{ @Direction(server) string hello(string msg) @Direction(client) string askSomething(string question) } Client Server process
  • Apache EtchGrandy/FitznerBMW Car IT GmbH Apache Etch.Feb. 2011Page 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 EtchGrandy/FitznerBMW Car IT GmbH Apache Etch.Feb. 2011Page 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 EtchGrandy/FitznerBMW Car IT GmbH Apache Etch.Feb. 2011Page 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 EtchGrandy/FitznerBMW Car IT GmbH Apache Etch.Feb. 2011Page 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 EtchGrandy/FitznerBMW Car IT GmbH Apache Etch.Feb. 2011Page 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 EtchGrandy/FitznerBMW Car IT GmbH Apache Etch.Feb. 2011Page 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