SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Web changesandasp4 upload
Web changesandasp4 uploadWeb changesandasp4 upload
Web changesandasp4 upload
READIFY
 
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, ReadifyASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
READIFY
 
Modern Architectures with Spring and JavaScript
Modern Architectures with Spring and JavaScriptModern Architectures with Spring and JavaScript
Modern Architectures with Spring and JavaScript
martinlippert
 
Asp.net presentation by gajanand bohra
Asp.net presentation by gajanand bohraAsp.net presentation by gajanand bohra
Asp.net presentation by gajanand bohra
Gajanand Bohra
 
Mike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEFMike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEF
ukdpe
 

Mais procurados (20)

Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]
 
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows AzureCloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
 
성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택
 
TS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in PracticeTS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in Practice
 
Web changesandasp4 upload
Web changesandasp4 uploadWeb changesandasp4 upload
Web changesandasp4 upload
 
Windows Azure AppFabric
Windows Azure AppFabricWindows Azure AppFabric
Windows Azure AppFabric
 
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, ReadifyASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
 
BizTalk Mapping Patterns and Best Practices
BizTalk Mapping Patterns and Best PracticesBizTalk Mapping Patterns and Best Practices
BizTalk Mapping Patterns and Best Practices
 
Chapter10 web
Chapter10 webChapter10 web
Chapter10 web
 
NServicebus WCF Integration 101
NServicebus WCF Integration 101NServicebus WCF Integration 101
NServicebus WCF Integration 101
 
Modern Architectures with Spring and JavaScript
Modern Architectures with Spring and JavaScriptModern Architectures with Spring and JavaScript
Modern Architectures with Spring and JavaScript
 
Windows Azure
Windows AzureWindows Azure
Windows Azure
 
Asp.net
Asp.netAsp.net
Asp.net
 
Azure in Developer Perspective
Azure in Developer PerspectiveAzure in Developer Perspective
Azure in Developer Perspective
 
ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
 
Asp.net presentation by gajanand bohra
Asp.net presentation by gajanand bohraAsp.net presentation by gajanand bohra
Asp.net presentation by gajanand bohra
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud Workflows
 
Building multi tenancy enterprise applications
Building multi tenancy enterprise applicationsBuilding multi tenancy enterprise applications
Building multi tenancy enterprise applications
 
Mike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEFMike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEF
 
ENOVIA 3Dcom Architecture
ENOVIA 3Dcom ArchitectureENOVIA 3Dcom Architecture
ENOVIA 3Dcom Architecture
 

Destaque

Pvc formulation perstorp_eng 2014
Pvc formulation perstorp_eng 2014Pvc formulation perstorp_eng 2014
Pvc formulation perstorp_eng 2014
Perstorp Group
 
Additives in plastics
Additives in plasticsAdditives in plastics
Additives in plastics
Vasudev Singh
 
Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0
Cloudera, Inc.
 

Destaque (15)

ApacheCon09: Avro
ApacheCon09: AvroApacheCon09: Avro
ApacheCon09: Avro
 
Apply etch
Apply etchApply etch
Apply etch
 
Schemaless Databases
Schemaless DatabasesSchemaless Databases
Schemaless Databases
 
PVC Compounding Ingredients Part 1
PVC Compounding Ingredients Part 1PVC Compounding Ingredients Part 1
PVC Compounding Ingredients Part 1
 
PVC volume cost, How to use Fillers judicously
PVC volume cost, How to use Fillers judicouslyPVC volume cost, How to use Fillers judicously
PVC volume cost, How to use Fillers judicously
 
Pvc formulation perstorp_eng 2014
Pvc formulation perstorp_eng 2014Pvc formulation perstorp_eng 2014
Pvc formulation perstorp_eng 2014
 
Curling in multilayer films
Curling in multilayer filmsCurling in multilayer films
Curling in multilayer films
 
Etching
EtchingEtching
Etching
 
Additives in plastics
Additives in plasticsAdditives in plastics
Additives in plastics
 
Pvc compounding ingredients, The essential Ingredients
Pvc compounding ingredients, The essential IngredientsPvc compounding ingredients, The essential Ingredients
Pvc compounding ingredients, The essential Ingredients
 
Database Schema Evolution
Database Schema EvolutionDatabase Schema Evolution
Database Schema Evolution
 
Wet and Dry Etching
Wet and Dry EtchingWet and Dry Etching
Wet and Dry Etching
 
Parquet Strata/Hadoop World, New York 2013
Parquet Strata/Hadoop World, New York 2013Parquet Strata/Hadoop World, New York 2013
Parquet Strata/Hadoop World, New York 2013
 
Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0
 
Scada and power system automation
Scada and power system automationScada and power system automation
Scada and power system automation
 

Semelhante a Apache Etch Introduction @ FOSDEM 2011

The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKX
Mike Willbanks
 
SignalR Intro + WPDev
SignalR Intro + WPDevSignalR Intro + WPDev
SignalR Intro + WPDev
Sam Basu
 
Cloud Computing Best Practices
Cloud Computing Best PracticesCloud Computing Best Practices
Cloud Computing Best Practices
Armor
 
Oem Lead Disposition Vendor Certification V3
Oem Lead Disposition   Vendor Certification V3Oem Lead Disposition   Vendor Certification V3
Oem Lead Disposition Vendor Certification V3
Social Media Marketing
 
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfQConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
SimranjyotSuri
 

Semelhante a Apache Etch Introduction @ FOSDEM 2011 (20)

respond_to :voice - the convergence of voice and web interfaces with Rails an...
respond_to :voice - the convergence of voice and web interfaces with Rails an...respond_to :voice - the convergence of voice and web interfaces with Rails an...
respond_to :voice - the convergence of voice and web interfaces with Rails an...
 
GeeCON Microservices 2015 scaling micro services at gilt
GeeCON Microservices 2015   scaling micro services at giltGeeCON Microservices 2015   scaling micro services at gilt
GeeCON Microservices 2015 scaling micro services at gilt
 
Active network
Active networkActive network
Active network
 
Life on the Edge with ESI
Life on the Edge with ESILife on the Edge with ESI
Life on the Edge with ESI
 
Windows Azure Interoperability
Windows Azure InteroperabilityWindows Azure Interoperability
Windows Azure Interoperability
 
Adhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework PresentationAdhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework Presentation
 
Kaazing
KaazingKaazing
Kaazing
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKX
 
SignalR Intro + WPDev
SignalR Intro + WPDevSignalR Intro + WPDev
SignalR Intro + WPDev
 
Introduction To Cloud Computing
Introduction To Cloud ComputingIntroduction To Cloud Computing
Introduction To Cloud Computing
 
Riding with camel
Riding with camelRiding with camel
Riding with camel
 
Cloud Computing Best Practices
Cloud Computing Best PracticesCloud Computing Best Practices
Cloud Computing Best Practices
 
InduSoft Web Studio and DCS Conversion and Integration Webinar
InduSoft Web Studio and DCS Conversion and Integration WebinarInduSoft Web Studio and DCS Conversion and Integration Webinar
InduSoft Web Studio and DCS Conversion and Integration Webinar
 
Oem Lead Disposition Vendor Certification V3
Oem Lead Disposition   Vendor Certification V3Oem Lead Disposition   Vendor Certification V3
Oem Lead Disposition Vendor Certification V3
 
Amdatu - ApacheCon NA 2011
Amdatu - ApacheCon NA 2011Amdatu - ApacheCon NA 2011
Amdatu - ApacheCon NA 2011
 
Will Web 2.0 applications break the cloud?
Will Web 2.0 applications break the cloud?Will Web 2.0 applications break the cloud?
Will Web 2.0 applications break the cloud?
 
SOA patterns
SOA patterns SOA patterns
SOA patterns
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to Microservices
 
Working with Data and Web Services in Microsoft Silverlight 2
Working with Data and Web Services in Microsoft Silverlight 2Working with Data and Web Services in Microsoft Silverlight 2
Working with Data and Web Services in Microsoft Silverlight 2
 
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfQConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
 

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 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