SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Applying REST to Network Management;
An Implementor’s View
Carl Moberg, VP Technology
calle@tail-f.com
   @cmoberg




Confidential Information | December 18, 2012
Agenda

•    Background and Overview of REST
•    REST in a Network Management Context
•    Introducing Data Models
•    Putting it all Together
•    A Short Demo




Confidential Information | December 18, 2012   1
A Brief History of REST

•  Fielding, R. T. (2000) Architectural Styles and the Design of
   Network-based Software Architectures
•  Many called, few are chosen
•  An architectural style... but we digress




Confidential Information | December 18, 2012                   2
Which Way to Slice This?

•  The REST Architectural Style describes six constraints:
       –  Uniform interface, Stateless, Cacheable, Client-server, Layered
          System, Code on demand (optional)
•  Guiding principles for of a REST interface (the Uniform
   Interface constraints):
       –    Resources have unique identifiers (e.g. URIs)
       –    Manipulations of resources through representations
       –    Self-descriptive Messages
       –    Hypermedia as the engines of application state (HATEOAS)




Confidential Information | December 18, 2012                                3
Resources Have Unique Identifiers (e.g. URIs)


GET /api/running/interfaces/interface/eth0/ipv4 HTTP/1.1!
!
<ipv4 y:self="/api/running/interfaces/interface/eth0/ip:ipv4”>!
  <address y:self=”[...]">!
     <ip>192.168.0.1</ip>!
...!
!

•  Individual resources are identified in requests using URIs
•  Resources are conceptually separate from the
   representations
•  Resource representations depend on query and server
   support (e.g. XML and JSON)


Confidential Information | December 18, 2012                      4
Manipulation of Representations


  < Content-Type: application/vnd.yang.data+xml!
  !
  <ipv4 y:self="/api/running/interfaces/interface/eth0/ip:ipv4”>!
    <address y:self=”[...]">!
      <ip>192.168.0.1</ip>!
    </address>!
  </ipv4>!

•  Representations (including metadata) contain enough
   information to be modified or deleted
•  Provided that the client has permission to do so




Confidential Information | December 18, 2012                        5
Self-descriptive Messages


 <   HTTP/1.1 200 OK!
 <   Server: ConfD!
 <   Cache-control: private, no-cache, must-revalidate, proxy-revalidate
                                                                       !
 <   Date: Tue, 18 Dec 2012 15:53:12 GMT!
 <   Content-Type: application/vnd.yang.data+xml!
 <   Transfer-Encoding: chunked!



•  Each message includes enough information to describe
   how to process the message
•  Foundation for stateless processing
•  Standard methods and media types are used to indicate
   semantics and exchange information


Confidential Information | December 18, 2012                          6
Hypermedia as the Engines of Application State


 <running y:self="/api/running"/>!
 !
 <interface y:self="/api/running/interfaces/interface/eth0">!
 !
 <lock y:self="/api/running/_lock">!       A REST API must not define fixed
 !                                         resource names or hierarchies
                                               - (angry) Fielding on his blog

•  Most profound (and abused) criteria
•  Clients deliver state via contents, query-string parameters,
   request headers and the URI
•  Servers deliver state to clients via content, response codes,
   and response headers
•  ...just like the web works
Confidential Information | December 18, 2012                                    7
REST vs Other Protocols

                                      REST       SNMP       NETCONF       SOAP


    Data models                                SNMP MIBs     YANG
                                                             Models
    Data                                          SMI         YANG        WSDL
    Modeling
    Language
    Management                  HTTP Verbs      SNMP        NETCONF         N/A
    Operations                                 Operations   Operations
    RPC Protocol                 HTTP/XML/       BER          XML          XML
    Encoding                       JSON
    Transport                    SSL/HTTP/       UDP        SSH/TCP      SSL/HTTP/
    Stack                          TCP                                     TCP


Confidential Information | December 18, 2012                                         8
REST in a Network Management Context

•  We will focus on using REST to read and write data to
   network elements
•  Most applications we’ve come across expect to use
   RESTful HTTP to extract data using simple scripts
       –  curl(1), wget(1)
•  As mentioned, we manipulate resources, one at a time
•  But we know people will try and use it to peek and poke




Recommended reading: RFC 3535 Overview of the 2002 IAB Network
Management Workshop
Confidential Information | December 18, 2012                     9
Information Models and Data Models

•  Information Models are conceptual, implementation
   independent
•  Data Models are detailed, intended for implementations

                                 Information                Examples: UML, Entity
                                    Model                   Relations (ER)


                                                            Examples: SMI, WSDL,
    Data Model                    Data Model   Data Model   YANG


Recommended reading: RFC 3444 On the difference between Information
Models and Data Models
Confidential Information | December 18, 2012                                        10
Data Models in Network Management

•  So, what is the data model of a router or a switch?
       –  For OpenFlow people, it’s the switch pipeline
       –  For I2RS people, it’s the FIB and RIB
       –  For most implementations in the field, it’s what’s in the CLI
•  Well used CLIs exhibit the inherited characteristics of all
   use cases it’s been exposed to
•  We’ll assume (and it’s relatively well founded) that REST
   APIs want to be on the same abstraction level as the CLI
       –  Also, reality (code base) prohibits much else
       –  REST on a network level is very interesting, but different




Confidential Information | December 18, 2012                              11
The YANG Data Modeling Language

•  IETF RFC 6020, Standards Track
•  A Language designed to write data
   models for the NETCONF protocol.
   It provides features including:
   –    Human readable
   –    Hierarchical
   –    Reusable types and groupings
   –    Extensibility
   –    Formal constraints for validation
•  Proven to be useful for other
   applications (CLI, Web UI, etc)


                                            12
Example Data Model in YANG


  interfaces
                                               •  We’ll be looking at
                                                  –  ietf-interface.yang!
           interface                              –  ietf-ip.yang!
           key: name
                                               •  Developed in the IETF
                   statistics                     NETMOD WG
                   ipv4                        •  More models in the
                         address
                          address
                                                  making
                   ipv6

                          address
                           address



Confidential Information | December 18, 2012                                13
Mapping YANG to REST Resources

•  YANG data nodes are mapped to REST resources
•  YANG rpc statements are mapped to HTTP POST
   operations
•  HTTP Verbs:
       –    GET to fetch resources
       –    POST to create resources
       –    PUT to replace a resource
       –    PATCH to modify existing resources
       –    DELETE to remove resources




Confidential Information | December 18, 2012      14
An Example Query (An Ethernet Interface)
                                                       1
> GET /api/running/interfaces/interface/eth0 HTTP/1.1!
> Authorization: Basic YWRtaW46YWRtaW4=!
> User-Agent: curl/7.28.!
> Host: 127.0.0.1:8008!
> Accept: */*!
> !
< HTTP/1.1 200 OK!
< Server: ConfD!
< Date: Mon, 17 Dec 2012 16:08:33 GMT!
                                               2
< Content-Type: application/vnd.yang.data+xml!
< Transfer-Encoding: chunked!
< !
!
<interface y:self="/api/running/interfaces/interface/eth0”>!
  <name>eth0</name>!
  <type>ethernetCsmacd</type>!
  <location>0</location>!                                                                3
  <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">!
    <address y:self="/api/running/interfaces/interface/eth0/ip:ipv4/address/192.168.0.1">!
      <ip>192.168.0.1</ip>!
    </address>!
  </ipv4>!
  <ethernet xmlns="http://example.com/ethernet">!
  </ethernet>!
</interface>!
!




Confidential Information | December 18, 2012                                                 15
Introducing ConfD and it's REST Interface



                             REST
                                               NETCONF   NETCONF        SNMP     Web UI



                            ConfD Core Engine
                            •  Transactions
                            •  AAA/User Sessions
                            •  Logs and audit trails
                                                                   YANG
                                                                   Module      CDB


                                                  Managed Objects API

                    Managed                                    Managed
                     Object                                     Object               Managed
                                               Managed                                Object
                                                Object


Confidential Information | December 18, 2012                                                   16
How Does REST Work in a ConfD Context

•  Just another northbound interface, shared everything
•  RESTful API over HTTP
       –  for accessing data defined in YANG, stored in CDB
       –  using the datastores as defined in NETCONF
•  Configuration data and state data are exposed to GET
•  Configuration data also accept DELETE PATCH POST and
   PUT




Confidential Information | December 18, 2012                  17
REST Resources (Top Level)

•  Top level resource application/vnd.yang.api
       –    Well known /api location
       –    version string
       –    running - the running datastore
       –    operational - the representation of all operational data




Confidential Information | December 18, 2012                           18
REST Resources (Datastores)

•  Datastores application/vnd.yang.datastore
       –  running - The running configuration of the device
       –  startup - The startup configuration of the device




Confidential Information | December 18, 2012                  19
Rest Resources (Model Resources)

•  Model Resources application/vnd.yang.data
       –  All resources has y:path and y:self in representation
       –  All subresources has y:self reference




Confidential Information | December 18, 2012                      20
(Finally) Time for Demo

•  Queries
       –  Top-level
       –  Datastores
       –  Operations
•  Interface configuration
       –  Look at interfaces
       –  Change IP address




Confidential Information | December 18, 2012   21
Conclusions and Things to Ponder

•  REST allows for easy scripting with existing tools
       –  Many command line tools available and default on Linux and Mac
       –  Many, many language bindings
•  REST does not provide sessions:
       –  Impact on error management
       –  How about transactions
•  Rest allows for changing a single resource at a time:
       –  How does this scale in multi-parameter, complex environment




Confidential Information | December 18, 2012                               22
Wrap up and Questions

•  Suggested reading list:
       –    Fielding Dissertation
       –    RFC 3535
       –    RFC 3444
       –    YANG-API Protocol Draft (draft-bierman-netconf-yang-api-01)


•  Discuss!
       –  @cmoberg
       –  calle@tail-f.com




Confidential Information | December 18, 2012                              23

Weitere ähnliche Inhalte

Was ist angesagt?

Migrating from Oracle to Postgres
Migrating from Oracle to PostgresMigrating from Oracle to Postgres
Migrating from Oracle to PostgresEDB
 
Relational vs Non Relational Databases
Relational vs Non Relational DatabasesRelational vs Non Relational Databases
Relational vs Non Relational DatabasesAngelica Lo Duca
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDBCésar Trigo
 
REST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseREST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseJeff Smith
 
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개철민 권
 
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS stylesCreating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS stylesGeoSolutions
 
PräSentation Zu Datenbanken
PräSentation Zu DatenbankenPräSentation Zu Datenbanken
PräSentation Zu DatenbankenGoetheschule
 
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOLinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOChris Mungall
 
스택 분석 활용 사례 (송재진)
스택 분석 활용 사례 (송재진)스택 분석 활용 사례 (송재진)
스택 분석 활용 사례 (송재진)WhaTap Labs
 
GeoServer on steroids
GeoServer on steroidsGeoServer on steroids
GeoServer on steroidsGeoSolutions
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기Jaewoo Ahn
 
Django REST Framework
Django REST FrameworkDjango REST Framework
Django REST FrameworkLoad Impact
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionKelum Senanayake
 

Was ist angesagt? (20)

Mongo db dhruba
Mongo db dhrubaMongo db dhruba
Mongo db dhruba
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Migrating from Oracle to Postgres
Migrating from Oracle to PostgresMigrating from Oracle to Postgres
Migrating from Oracle to Postgres
 
Relational vs Non Relational Databases
Relational vs Non Relational DatabasesRelational vs Non Relational Databases
Relational vs Non Relational Databases
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDB
 
Nosql databases
Nosql databasesNosql databases
Nosql databases
 
REST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseREST Enabling Your Oracle Database
REST Enabling Your Oracle Database
 
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
 
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS stylesCreating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
 
PräSentation Zu Datenbanken
PräSentation Zu DatenbankenPräSentation Zu Datenbanken
PräSentation Zu Datenbanken
 
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOLinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
 
스택 분석 활용 사례 (송재진)
스택 분석 활용 사례 (송재진)스택 분석 활용 사례 (송재진)
스택 분석 활용 사례 (송재진)
 
Introdução ao Hive
Introdução ao HiveIntrodução ao Hive
Introdução ao Hive
 
GeoServer on steroids
GeoServer on steroidsGeoServer on steroids
GeoServer on steroids
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기
 
DDS vs AMQP
DDS vs AMQPDDS vs AMQP
DDS vs AMQP
 
Django REST Framework
Django REST FrameworkDjango REST Framework
Django REST Framework
 
Data sharding
Data shardingData sharding
Data sharding
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another Introduction
 
RDF data model
RDF data modelRDF data model
RDF data model
 

Andere mochten auch

Module 10: CDB Subscribers
Module 10: CDB SubscribersModule 10: CDB Subscribers
Module 10: CDB SubscribersTail-f Systems
 
Module 8: C Data Types
Module 8: C Data TypesModule 8: C Data Types
Module 8: C Data TypesTail-f Systems
 
Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Tail-f Systems
 
Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Tail-f Systems
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Tail-f Systems
 
Module 12: NETCONF Northbound Interface
Module 12: NETCONF Northbound InterfaceModule 12: NETCONF Northbound Interface
Module 12: NETCONF Northbound InterfaceTail-f Systems
 
Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16Kentaro Ebisawa
 
Module 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsTail-f Systems
 
Module 11: Operational Data Providers
Module 11: Operational Data ProvidersModule 11: Operational Data Providers
Module 11: Operational Data ProvidersTail-f Systems
 
Module 9: CDB Technical Intro
 Module 9: CDB Technical Intro Module 9: CDB Technical Intro
Module 9: CDB Technical IntroTail-f Systems
 
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANGTail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANGTail-f Systems
 
Dynamic Service Chaining
Dynamic Service Chaining Dynamic Service Chaining
Dynamic Service Chaining Tail-f Systems
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGTail-f Systems
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionTail-f Systems
 
Module 7: Installation and Getting Started
Module 7: Installation and Getting StartedModule 7: Installation and Getting Started
Module 7: Installation and Getting StartedTail-f Systems
 

Andere mochten auch (18)

Module 10: CDB Subscribers
Module 10: CDB SubscribersModule 10: CDB Subscribers
Module 10: CDB Subscribers
 
Module 8: C Data Types
Module 8: C Data TypesModule 8: C Data Types
Module 8: C Data Types
 
Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2
 
Tail-f - Why NETCONF
Tail-f - Why NETCONFTail-f - Why NETCONF
Tail-f - Why NETCONF
 
Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial
 
Tail f - Why ConfD
Tail f - Why ConfDTail f - Why ConfD
Tail f - Why ConfD
 
Module 12: NETCONF Northbound Interface
Module 12: NETCONF Northbound InterfaceModule 12: NETCONF Northbound Interface
Module 12: NETCONF Northbound Interface
 
Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16
 
Module 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG Concepts
 
Module 11: Operational Data Providers
Module 11: Operational Data ProvidersModule 11: Operational Data Providers
Module 11: Operational Data Providers
 
Module 9: CDB Technical Intro
 Module 9: CDB Technical Intro Module 9: CDB Technical Intro
Module 9: CDB Technical Intro
 
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANGTail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
 
Dynamic Service Chaining
Dynamic Service Chaining Dynamic Service Chaining
Dynamic Service Chaining
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANG
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical Introduction
 
NETCONF YANG tutorial
NETCONF YANG tutorialNETCONF YANG tutorial
NETCONF YANG tutorial
 
Module 7: Installation and Getting Started
Module 7: Installation and Getting StartedModule 7: Installation and Getting Started
Module 7: Installation and Getting Started
 

Ähnlich wie Webinar: Applying REST to Network Management – An Implementor’s View

REST and REST-fulness
REST and REST-fulnessREST and REST-fulness
REST and REST-fulnessDavid Waite
 
2. RINA overview - TF workshop
2. RINA overview - TF workshop2. RINA overview - TF workshop
2. RINA overview - TF workshopARCFIRE ICT
 
Open source identity management 20121106 - apache con eu
Open source identity management   20121106 - apache con euOpen source identity management   20121106 - apache con eu
Open source identity management 20121106 - apache con euFrancesco Chicchiriccò
 
Webinar: How Banks Manage Reference Data with MongoDB
 Webinar: How Banks Manage Reference Data with MongoDB Webinar: How Banks Manage Reference Data with MongoDB
Webinar: How Banks Manage Reference Data with MongoDBMongoDB
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB
 
Introduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overviewIntroduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overviewCisco DevNet
 
Under the hood, fighting fires with realtime semantic web technology
Under the hood, fighting fires with realtime semantic web technologyUnder the hood, fighting fires with realtime semantic web technology
Under the hood, fighting fires with realtime semantic web technologyBart van Leeuwen
 
Post-relational databases: What's wrong with web development?
Post-relational databases: What's wrong with web development?Post-relational databases: What's wrong with web development?
Post-relational databases: What's wrong with web development?Dobrica Pavlinušić
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentationpbridges
 
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...gogo6
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecturedrewz lin
 
Facebook的架构
Facebook的架构Facebook的架构
Facebook的架构yiditushe
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecturemysqlops
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01jgregory1234
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglotTugdual Grall
 
Splunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gxSplunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gxDamien Dallimore
 
Mobile Development Meets Semantic Technology
Mobile Development Meets Semantic TechnologyMobile Development Meets Semantic Technology
Mobile Development Meets Semantic TechnologyBlue Slate Solutions
 

Ähnlich wie Webinar: Applying REST to Network Management – An Implementor’s View (20)

REST and REST-fulness
REST and REST-fulnessREST and REST-fulness
REST and REST-fulness
 
2. RINA overview - TF workshop
2. RINA overview - TF workshop2. RINA overview - TF workshop
2. RINA overview - TF workshop
 
Open source identity management 20121106 - apache con eu
Open source identity management   20121106 - apache con euOpen source identity management   20121106 - apache con eu
Open source identity management 20121106 - apache con eu
 
Webinar: How Banks Manage Reference Data with MongoDB
 Webinar: How Banks Manage Reference Data with MongoDB Webinar: How Banks Manage Reference Data with MongoDB
Webinar: How Banks Manage Reference Data with MongoDB
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
 
Introduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overviewIntroduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overview
 
SDN and metrics from the SDOs
SDN and metrics from the SDOsSDN and metrics from the SDOs
SDN and metrics from the SDOs
 
Under the hood, fighting fires with realtime semantic web technology
Under the hood, fighting fires with realtime semantic web technologyUnder the hood, fighting fires with realtime semantic web technology
Under the hood, fighting fires with realtime semantic web technology
 
Post-relational databases: What's wrong with web development?
Post-relational databases: What's wrong with web development?Post-relational databases: What's wrong with web development?
Post-relational databases: What's wrong with web development?
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentation
 
Samba management Console
Samba management ConsoleSamba management Console
Samba management Console
 
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecture
 
Facebook的架构
Facebook的架构Facebook的架构
Facebook的架构
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecture
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglot
 
"Vision for All?," a Presentation from Intel
"Vision for All?," a Presentation from Intel"Vision for All?," a Presentation from Intel
"Vision for All?," a Presentation from Intel
 
Splunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gxSplunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gx
 
Mobile Development Meets Semantic Technology
Mobile Development Meets Semantic TechnologyMobile Development Meets Semantic Technology
Mobile Development Meets Semantic Technology
 

Kürzlich hochgeladen

Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 

Kürzlich hochgeladen (20)

20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 

Webinar: Applying REST to Network Management – An Implementor’s View

  • 1. Applying REST to Network Management; An Implementor’s View Carl Moberg, VP Technology calle@tail-f.com @cmoberg Confidential Information | December 18, 2012
  • 2. Agenda •  Background and Overview of REST •  REST in a Network Management Context •  Introducing Data Models •  Putting it all Together •  A Short Demo Confidential Information | December 18, 2012 1
  • 3. A Brief History of REST •  Fielding, R. T. (2000) Architectural Styles and the Design of Network-based Software Architectures •  Many called, few are chosen •  An architectural style... but we digress Confidential Information | December 18, 2012 2
  • 4. Which Way to Slice This? •  The REST Architectural Style describes six constraints: –  Uniform interface, Stateless, Cacheable, Client-server, Layered System, Code on demand (optional) •  Guiding principles for of a REST interface (the Uniform Interface constraints): –  Resources have unique identifiers (e.g. URIs) –  Manipulations of resources through representations –  Self-descriptive Messages –  Hypermedia as the engines of application state (HATEOAS) Confidential Information | December 18, 2012 3
  • 5. Resources Have Unique Identifiers (e.g. URIs) GET /api/running/interfaces/interface/eth0/ipv4 HTTP/1.1! ! <ipv4 y:self="/api/running/interfaces/interface/eth0/ip:ipv4”>! <address y:self=”[...]">! <ip>192.168.0.1</ip>! ...! ! •  Individual resources are identified in requests using URIs •  Resources are conceptually separate from the representations •  Resource representations depend on query and server support (e.g. XML and JSON) Confidential Information | December 18, 2012 4
  • 6. Manipulation of Representations < Content-Type: application/vnd.yang.data+xml! ! <ipv4 y:self="/api/running/interfaces/interface/eth0/ip:ipv4”>! <address y:self=”[...]">! <ip>192.168.0.1</ip>! </address>! </ipv4>! •  Representations (including metadata) contain enough information to be modified or deleted •  Provided that the client has permission to do so Confidential Information | December 18, 2012 5
  • 7. Self-descriptive Messages < HTTP/1.1 200 OK! < Server: ConfD! < Cache-control: private, no-cache, must-revalidate, proxy-revalidate ! < Date: Tue, 18 Dec 2012 15:53:12 GMT! < Content-Type: application/vnd.yang.data+xml! < Transfer-Encoding: chunked! •  Each message includes enough information to describe how to process the message •  Foundation for stateless processing •  Standard methods and media types are used to indicate semantics and exchange information Confidential Information | December 18, 2012 6
  • 8. Hypermedia as the Engines of Application State <running y:self="/api/running"/>! ! <interface y:self="/api/running/interfaces/interface/eth0">! ! <lock y:self="/api/running/_lock">! A REST API must not define fixed ! resource names or hierarchies - (angry) Fielding on his blog •  Most profound (and abused) criteria •  Clients deliver state via contents, query-string parameters, request headers and the URI •  Servers deliver state to clients via content, response codes, and response headers •  ...just like the web works Confidential Information | December 18, 2012 7
  • 9. REST vs Other Protocols REST SNMP NETCONF SOAP Data models SNMP MIBs YANG Models Data SMI YANG WSDL Modeling Language Management HTTP Verbs SNMP NETCONF N/A Operations Operations Operations RPC Protocol HTTP/XML/ BER XML XML Encoding JSON Transport SSL/HTTP/ UDP SSH/TCP SSL/HTTP/ Stack TCP TCP Confidential Information | December 18, 2012 8
  • 10. REST in a Network Management Context •  We will focus on using REST to read and write data to network elements •  Most applications we’ve come across expect to use RESTful HTTP to extract data using simple scripts –  curl(1), wget(1) •  As mentioned, we manipulate resources, one at a time •  But we know people will try and use it to peek and poke Recommended reading: RFC 3535 Overview of the 2002 IAB Network Management Workshop Confidential Information | December 18, 2012 9
  • 11. Information Models and Data Models •  Information Models are conceptual, implementation independent •  Data Models are detailed, intended for implementations Information Examples: UML, Entity Model Relations (ER) Examples: SMI, WSDL, Data Model Data Model Data Model YANG Recommended reading: RFC 3444 On the difference between Information Models and Data Models Confidential Information | December 18, 2012 10
  • 12. Data Models in Network Management •  So, what is the data model of a router or a switch? –  For OpenFlow people, it’s the switch pipeline –  For I2RS people, it’s the FIB and RIB –  For most implementations in the field, it’s what’s in the CLI •  Well used CLIs exhibit the inherited characteristics of all use cases it’s been exposed to •  We’ll assume (and it’s relatively well founded) that REST APIs want to be on the same abstraction level as the CLI –  Also, reality (code base) prohibits much else –  REST on a network level is very interesting, but different Confidential Information | December 18, 2012 11
  • 13. The YANG Data Modeling Language •  IETF RFC 6020, Standards Track •  A Language designed to write data models for the NETCONF protocol. It provides features including: –  Human readable –  Hierarchical –  Reusable types and groupings –  Extensibility –  Formal constraints for validation •  Proven to be useful for other applications (CLI, Web UI, etc) 12
  • 14. Example Data Model in YANG interfaces •  We’ll be looking at –  ietf-interface.yang! interface –  ietf-ip.yang! key: name •  Developed in the IETF statistics NETMOD WG ipv4 •  More models in the address address making ipv6 address address Confidential Information | December 18, 2012 13
  • 15. Mapping YANG to REST Resources •  YANG data nodes are mapped to REST resources •  YANG rpc statements are mapped to HTTP POST operations •  HTTP Verbs: –  GET to fetch resources –  POST to create resources –  PUT to replace a resource –  PATCH to modify existing resources –  DELETE to remove resources Confidential Information | December 18, 2012 14
  • 16. An Example Query (An Ethernet Interface) 1 > GET /api/running/interfaces/interface/eth0 HTTP/1.1! > Authorization: Basic YWRtaW46YWRtaW4=! > User-Agent: curl/7.28.! > Host: 127.0.0.1:8008! > Accept: */*! > ! < HTTP/1.1 200 OK! < Server: ConfD! < Date: Mon, 17 Dec 2012 16:08:33 GMT! 2 < Content-Type: application/vnd.yang.data+xml! < Transfer-Encoding: chunked! < ! ! <interface y:self="/api/running/interfaces/interface/eth0”>! <name>eth0</name>! <type>ethernetCsmacd</type>! <location>0</location>! 3 <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">! <address y:self="/api/running/interfaces/interface/eth0/ip:ipv4/address/192.168.0.1">! <ip>192.168.0.1</ip>! </address>! </ipv4>! <ethernet xmlns="http://example.com/ethernet">! </ethernet>! </interface>! ! Confidential Information | December 18, 2012 15
  • 17. Introducing ConfD and it's REST Interface REST NETCONF NETCONF SNMP Web UI ConfD Core Engine •  Transactions •  AAA/User Sessions •  Logs and audit trails YANG Module CDB Managed Objects API Managed Managed Object Object Managed Managed Object Object Confidential Information | December 18, 2012 16
  • 18. How Does REST Work in a ConfD Context •  Just another northbound interface, shared everything •  RESTful API over HTTP –  for accessing data defined in YANG, stored in CDB –  using the datastores as defined in NETCONF •  Configuration data and state data are exposed to GET •  Configuration data also accept DELETE PATCH POST and PUT Confidential Information | December 18, 2012 17
  • 19. REST Resources (Top Level) •  Top level resource application/vnd.yang.api –  Well known /api location –  version string –  running - the running datastore –  operational - the representation of all operational data Confidential Information | December 18, 2012 18
  • 20. REST Resources (Datastores) •  Datastores application/vnd.yang.datastore –  running - The running configuration of the device –  startup - The startup configuration of the device Confidential Information | December 18, 2012 19
  • 21. Rest Resources (Model Resources) •  Model Resources application/vnd.yang.data –  All resources has y:path and y:self in representation –  All subresources has y:self reference Confidential Information | December 18, 2012 20
  • 22. (Finally) Time for Demo •  Queries –  Top-level –  Datastores –  Operations •  Interface configuration –  Look at interfaces –  Change IP address Confidential Information | December 18, 2012 21
  • 23. Conclusions and Things to Ponder •  REST allows for easy scripting with existing tools –  Many command line tools available and default on Linux and Mac –  Many, many language bindings •  REST does not provide sessions: –  Impact on error management –  How about transactions •  Rest allows for changing a single resource at a time: –  How does this scale in multi-parameter, complex environment Confidential Information | December 18, 2012 22
  • 24. Wrap up and Questions •  Suggested reading list: –  Fielding Dissertation –  RFC 3535 –  RFC 3444 –  YANG-API Protocol Draft (draft-bierman-netconf-yang-api-01) •  Discuss! –  @cmoberg –  calle@tail-f.com Confidential Information | December 18, 2012 23