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

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

Importing and Calling Web Services from your CA Plex Applications Session Code: Lab13 Rob Layzell.
General introduction to Web services and an implementation example
1 CGICGI Common Gateway Interface Server-side Programming Lecture.
SOAP.
RPC Robert Grimm New York University Remote Procedure Calls.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
Comparison of the RMI and the socket APIs
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
CSE331: Introduction to Networks and Security Lecture 11 Fall 2002.
Introduction to Remote Method Invocation (RMI)
II. Middleware for Distributed Systems
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Common Object Request Broker Architecture (CORBA) CS-328.
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
Data Formats CMSC 491 Hadoop-Based Distributed Computing Spring 2015 Adam Shook.
Avro Apache Course: Distributed class Student ID: AM Name: Azzaya Galbazar
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
CORBA Celsina Bignoli Enterprise Computing Corporation have similar computing environments: –mixed set of HW platforms –a mixed set.
Enabling Embedded Systems to access Internet Resources.
Web Services Week 2 Aims: Getting started with creating simple C# applications within Visual Studio.NET Objectives: –An introduction to the syntax of C#.NET.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
Remote Procedure Call Andrew Whitaker CSE451. Remote Procedure Call RPC exposes a programming interface across machines: interface PriceService { Price.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Distributed Programming CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
Java Programming: Advanced Topics 1 Networking Programming Chapter 11.
Remote Procedure Calls CS587x Lecture Department of Computer Science Iowa State University.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Advanced Java Session 4 New York University School of Continuing and Professional Studies.
A Quick CCM Example. Tutorial on CCM Introduction A Simple Sender&Receiver Scenario Sender sends out the click-out event to inform the Receiver. Receiver.
Copyright © 2012 Kendall Electric, Inc. All rights reserved.
Developing Web Services with the Eclipse Web Tools Platform David Gallardo.
Martin Kruliš by Martin Kruliš (v1.1)1.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
.NET Mobile Application Development XML Web Services.
1 Distributed Programming low level: sending data among distributed computations higher level: supporting invocations among distributed computations network.
WP3 Implementing R-GMA grid services in GT3 Abdeslem Djaoui & WP3 Grid Services Task Force 7 th EU Datagrid meeting 26/09/2003
CCA Distributed Framework Interoperability. Goals Assume you have two (or more) framework instances. –Assume it contains a network of component instances.
SOAP, Web Service, WSDL Week 14 Web site:
Apache Avro CMSC 491 Hadoop-Based Distributed Computing Spring 2016 Adam Shook.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
Chapter 5 Remote Procedure Call
WEB SERVICES.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
WEB API.
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Units with – James tedder
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Introduction to Web Services
Distributed System using Web Services
WEB SERVICES From Chapter 19, Distributed Systems
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Distributed System using Web Services
Last Class: Communication in Distributed Systems
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

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

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 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 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 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 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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Demos Hello World

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

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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Sequence Diagram ClientListenerServer Listen

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

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 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 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 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 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 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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Language

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 java, “com.company.User”, … ) extern User

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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Language, part 3  which ) – server, millis method, args … )

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. x the first number. y the second number. the sum of the arguments. */ int add( int x, int y )

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 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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Nitty Gritty Details Compiler, architecture

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 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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch Inheritance Interface RemoteBase Impl

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 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 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 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 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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Runtime  Message model  Compiler support  Transport  Utilities

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 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 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 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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public More Demos Distributed Map

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 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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Etch will be Open Source!!! is

43 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Where from here?  Distribution:  Source

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 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Q and A

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