Your SlideShare is downloading. ×
0
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apache Etch Introduction @ FOSDEM 2011

12,564

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
12,564
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
85
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Apache Etch.Apache EtchGrandy/FitznerBMW Car IT GmbHFeb. 2011Page 1 Efficient and feature-rich network services. BMW Car IT GmbH
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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?
  • 10. 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

×