Download presentation
Presentation is loading. Please wait.
Published byJob Mitchell Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.