Apache Etch Introduction @ FOSDEM 2011

  • 10,161 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
10,161
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
80
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