Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.

Similar presentations


Presentation on theme: "1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott."— Presentation transcript:

1 1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott Comer Technical Leader sccomer@cisco.com

2 2 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Welcome  Introduction to Etch – what it is – how to use it to build a network service – where it is going

3 3 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public What is a network service?  Messages and formats  Action: query or control; Event  Definitions / abstractions / rules  Players / authorization / transports

4 4 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public What is Etch?  Network service description language  Compiler  Runtime

5 5 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Why Etch?  Language independence  Transport independence  Small and quick – high performance  Symmetric

6 6 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Relationship to Cisco Unified Application Environment  Application environment is a federation of services  Formalized APIs  Programmable and extensible  Enhances the Developer Experience

7 7 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Demos Hello World

8 8 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Hello World Example Overview

9 9 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Hello World C# Demo  Create etch interface  Generate server and client code  Implement the hello message in the server  Call the hello message from the client  Build the server and client  Run the server and client

10 10 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Sequence Diagram ClientListenerServer Listen

11 11 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Sequence Diagram ClientListenerServer Connect Listen

12 12 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Sequence Diagram ClientListenerServer Create Server Session Connect Listen

13 13 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Sequence Diagram ClientListenerServer Create Server Session Connect Listen Sends Hello To Server

14 14 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Sequence Diagram ClientListenerServer Create Server Session Disconnect Connect Listen Sends Hello To Server

15 15 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Summary Hello World C# Demo  Etch generated most of code.  Generated code does all of the plumbing.  Developer only needs to be concerned with implementing and using the interfaces.  Less than 5 minutes to build a simple client / server application.

16 16 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Hello World Java Demo  Show using Etch in Eclipse  Start with existing demo  Add client callback

17 17 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Summary Hello World Demo  Java has similar experience to C#  Message sending looks just like procedure calls  Generated codes may be easily integrated

18 18 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Language

19 19 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Language  Messages int add( int x, int y )  Native types boolean, byte, short, int, long, float, double, string, object, List, Map, Set, arrays of those things  Structured data types struct Point( double x, double y, double z )  External data types @Extern( java, “com.company.User”, … ) extern User

20 20 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Language, part 2  Constants const int ZERO = 0  Enumerations enum PrimaryColor ( RED, GREEN, BLUE )  Exceptions exception LoginFailed( int code, string msg )

21 21 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Language, part 3  Attributes @Direction( which ) – server, client, both @Oneway @Timeout( millis ) @Authorize( method, args … )

22 22 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Language, part 4  Formal Comments /** * Adds two numbers together. * @param x the first number. * @param y the second number. * @return the sum of the arguments. */ int add( int x, int y )

23 23 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Language, part 5  Mixins service Foo { mixin Bar mixin Baz }

24 24 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Language Example module com.acme service GeoFun { const double DEFAULT_HOW_FAR = 10 // miles const int DEFAULT_NUM_LANDMARKS = 20 struct Point( double latitude, double longitude ) struct Landmark( Point where, string description ) void addLandmark( Landmark landmark ) void removeLandmark( Landmark landmark ) Landmark[] searchLandmarks( Point where, double how_far, int count ) }

25 25 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Nitty Gritty Details Compiler, architecture

26 26 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Compiler  Written in Java (runs anywhere)  Uses Templates (easier to port)  Bindings (java, csharp, …)

27 27 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Process Etch Source Etch Compiler Interface StubRemote ValueFactory Helper Base Main Impl

28 28 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Inheritance Interface RemoteBase Impl

29 29 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Architecture Stub Remote Transport Impl Main Stub Remote Transport Impl Main

30 30 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Architecture Stub Remote Transport Impl Main Stub Remote Transport Impl Main

31 31 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Architecture Stub Remote Transport Impl Main Stub Remote Transport Impl Main

32 32 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Architecture Stub Remote Transport Impl Main Stub Remote Transport Impl Main

33 33 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Architecture Stub Remote Transport Impl Main Stub Remote Transport Impl Main

34 34 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Runtime  Message model  Compiler support  Transport  Utilities

35 35 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Message Model  Representation (type, fields & values)  Meta data  Generated code is transport independent

36 36 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Transport  URI specification  Manages session  Moves messages  Message format is generic or transport specific (binary, xml, soap, …)

37 37 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Transport, part 2  Transport services and properties Authentication, session, logging, rate control, filtering  Protocols Now: TCP, TLS Planned: JSON, UDP, AES, SOAP  Extensible JMS, REST, …

38 38 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Transport, part 3 Value Factory StubRemote Messagizer Mailbox Manager Packetizer Stream Security Filter Chain auth log session keep alive

39 39 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public More Demos Distributed Map

40 40 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Distributed Map Demo  Provides access to a shared Map  Add notification when values change  Example of session management

41 41 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Roadmap  JSON, Python, C, Ruby bindings  More transports and transport modes  Web Services Gateway  Better Integration with IDEs, Maven

42 42 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch will be Open Source!!! is

43 43 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Where from here?  Distribution: http://developer.cisco.com/web/cuae/etch  Source https://etchproj.svn.sourceforge.net

44 44 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Summary  Etch is a powerful tool that formalizes APIs used to access and extend Cisco Unified Application Environment  Etch automates many tedious and distracting tasks  Etch may be used in your own projects, and embedded in your own systems.

45 45 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Q and A

46 46 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public


Download ppt "1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott."

Similar presentations


Ads by Google