14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 1
Cisco Nexus
Application Programmatic
Interfaces
BRKDEV-1221
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 2
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 3
Why a Programmable
Interface?
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 4
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 5
Programmable Interface
Need for a Mechanism That Allows Semantics
Third Parties to Gain Programmable
Access to Network Services in a
More Effective and Consistent Way My Application
Than CLI/SNMP
XML is a free open standard XML Client Application
XML opens up the functionality on
the device
XML is simple and extensible Libraries
new applications can be built with a
short turnaround time
Syntax
SOAP/NetConf/XML
<note>
Benefits
<to>John</to>
An XML Message Example <from>Mary</from>
<heading>Reminder</heading>
<body>Don't forget the dry cleaning pick up!</body>
</note>
Technology Characteristic Customer Benefit
XML XML tags are written in clear text. It is reasonably simple for a person (software
XML documents are human engineer) to look at an XML document and
readable and self-describing. understand its purpose.
XML XML is interoperable, there is Creating an XML document can be done with a a
nothing about XML that ties it to simple text editor.
any particular operating system or Open source XML parsers are available. Several
underlying technology. types of XML parsers exist for virtually every
operating system in use today.
XML Tags can be created as needed. Changes to a document will not break the parser.
Tags can be added to data structures without
XML documents are hierarchical: it
breaking backward compatibility with earlier
is easy to add related data to an
versions of your application.
XML document.
NetConf/XML Defines standard operations Consistent and repeatable access to the device
SOAP/XML SOAP allows applications to Applications already developed in C, C++, Java,
(aka Web interoperate by exchanging XML Perl, .Net, CORBA etc can be SOAP/XML
Serices) message. enabled to communicate instead of being kept
in silos.
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 8
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 9
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 11
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 13
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 14
DCNM API
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 16
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 17
DCNM Application
Programming Interface
Easy to use and extensive set of API published by server
Server supports Java RMI API and Web Services API
Single implementation for Java RMI and Web Services Interface.
The Web Services API is a reflection of the Java API
DCNM GUI uses published API; full functionality parity between
the GUI and the API
Web Services API Java API
SOA: Componentization of DCNM Services
BRKDEV-1221
Transport Layer: XML, CLI over SSH
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 18
Delete Operation
This operation allows deleting an existing managed object, it is the opposite of the create
operation
Example: deleteVlansInNetwork(OpContext opContext, IntegerRange vlanIds,
List<InstanceNameId> neInstanceNameIds)
Modify Operation
This operation allows modifying an existing managed object
Example: modifyVlans(OpContext opContext, List<VlanExternal> modifiedVlanCol)
Add Operation
This operation allows associating one or more managed objects to an existing
managed object
Example: addAllowedVlansOnTrunks(OpContext opContext, List<InstanceNameId>
portNameIds, IntegerRange vlanRange)
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 19
Get Operation
This operation allows retrieving a single managed object or multiple managed
objects of the same type
Example: getVlans(OpContext opContext, List<InstanceNameId> vlanNameIds)
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 20
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 22
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 23
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 24
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 25
Collection Input
Collection Info
Name (Identifier)
Description
Collector Action (What to do with the collected data?)
Collector Status
Job Schedule (When to collect?)
Statistical Entries (What to collect?)
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 26
2 types of schedules
Periodical schedule: start time, end time, interval
StartTime = 07/02/2008 05:00:00
EndTime = 07/03/2008 05:00:00
Interval = 60 s
Cron schedule: complex expressions like
At 9:00am every Monday through Friday
At 2:30am every last Friday of the month
Interval
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 27
Statistical Entries
Statistical Entry
Config instance name
Statistical class
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 29
NetConf/XML Client
Device Level
Operations
NC/XML
NC/XML
SNMP
SNMP
CLI
CLI
Server
Storage
Nexus 7000 Nexus 7000
Network
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 30
IT Systems
NetConf/XML Client
NC/XML
SNMP
SNMP
CLI
CLI
Server Storage
A B
Nexus 7000 Nexus 7000
Network
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 31
Network Level
Operations
DCNM
NetConf/XML Client
NC/XML
NC/XML
SNMP
SNMP
CLI
CLI
Server
Storage
Nexus 7000 Nexus 7000
Network
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 32
IT Systems
Web Services Client
DCNM
DCNM generates the XML
requests on behalf of the NetConf/XML Client
upper layer application
NC/XML
NC/XML
SNMP
SNMP
CLI
CLI
Server Storage
A B
Nexus 7000 Nexus 7000
Network
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 34
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 35
Recommended Reading
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 36
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 37
BRKDEV-1221
14625_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 38