Presentation title goes here 1
Resource Representations in GENI
• Rob Sherwood, OpenFlow• Hongwei Zhang, Wireless sensor network
description language• Ilia Baldine, Yufeng Xin, Semantic Resource
Descriptions in ORCA
• BACK at 10:45• [email protected]
Semantic Resource Descriptions in ORCA (Part 2)
Yufeng Xin and Ilia Baldine
3
NDL-OWL in ORCA
– Last time (GEC7):• Introduction RDF and OWL• Example of NDL-OWL descriptions
– Today:• Short recap• How we use NDL-OWL in ORCA
NDL-OWL in ORCA 4
Resource representations in GENI
• Used by elements of control frameworks• Used by experimenter tools• Visualizations, performance measurements etc.
etc.• Have a lifecycle
– Current state of the substrate– Request specification– Slice specification– ‘As-built’ manifest
5
Why NDL(-OWL)?
Application layer
Network/routing layer
Optical/physical layer
Cross-Layer Information
Exchange
6
Using G.805 model in BEN
• BEN Layers– Fiber– OCG/DWDM– Lambda– Ethernet– IP
• Detailed information about layers and adaptations is required– Optimized management– Cross-layer
measurements
Presentation title goes here 7
XML vs. RDF
8
SPARQL/GLEEN
• SPARQL – SQL-like query language for RDF graphs
SELECT ?pop1 ?lat ?lon
WHERE {
?pop1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://geni-orca.renci.org/owl/collections.owl#Set> .
?pop1 <http://geni-orca.renci.org/owl/location.owl#locatedAt> ?loc .
?loc <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?lat .
?loc <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?lon . }
• GLEEN – extension to SPARQL for network path finding
Retrieve all connected resources
• Retrieve all edges in the topology
SELECT DISTINCT ?src ?dst ?connection ?bw WHERE {{?src ndl:connectedTo ?dst} UNION {?connection a ndl:NetworkConnection. ?connection ndl:hasInterface ?src. ?connection ndl:hasInterface ?dst.?connection layer:bandwidth ?bw.FILTER(?src != ?dst)
} UNION {?connection a ndl:NetworkConnection. ?connection ndl:hasInterface ?intf1. ?connection ndl:hasInterface ?intf2.?src ndl:hasInterface ?intf1. ?dst ndl:hasInterface ?intf2.?src a compute:Server. ?dst a compute:Server.?connection layer:bandwidth ?bw.FILTER(?src != ?dst)
}}
• Produces a list of <src, dst, edge, bandwidth> tuples• Very verbose!
Gleen:OnPath example
SELECT ?object WHERE {
<http://some/resource> gleen:OnPath ('[ndl:hasInterface]*/([ndl:connectedTo] | [ndl:switchedTo] | [ndl:linkTo])+/[ndl:interfaceOf]*’ ?object).
FILTER(?object != <http://some/resource>)
}
• Return: a list of neighboring devices or interfaces of resource http://some/resource in the RDF graph
Gleen:SubGraph
SELECT ?a ?b ?c WHERE {
(<http://some/resource> gleen:OnPath ('[ndl:hasInterface]+/([ndl:connectedTo]|[ndl:switchedTo]|[ndl:linkTo])*/[ndl:interfaceOf]' <http://some/other/resource>)
gleen:Subgraph (?a ?b ?c). ?a rdf:type ndl:Interface.
?c rdf:type ndl:Interface.
}
• Return: a list of intermediate links/connections between two connected resources in the RDF graph.
• Not necessarily in-order!
Presentation title goes here 12
Using NDL-OWL resource descriptions in ORCA
• Initial substrate descriptions used by ‘authority’ actors• Transit authorities use NDL for internal (intra-domain)
multi-layered path computation• Abstracted descriptions advertized by brokers for inter-
domain path finding– Full and abstract site NDL-OWL descriptions available through
registry
• User requests expressed as desired topology descriptions with specific resources
• FormatX -> NDL-OWL conversions– FormatX = {NS2, PG RSpec, PL RSpec, … }
13
ORCA inter-actor NDL passing
Authority actor NDL Operations
• Initial substrate NDL created by the operator• Abstract domain NDL model computed by the
authority actor based on the initial description:– DomainService class
• Topology abstraction advertisement – Border interfaces and available resources (for bandwidth accounting)– Switching capability
• Delegated resource and units• Access method (ORCAActor, etc.)• Label producer?
– To assist stitching precedence computation
Abstraction Domain NDL<rdf:Description rdf:about="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Domain">
<domain:hasService rdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Domain/NetworkService/1"/>
<rdfs:label xml:lang="en">http://geni-orca.renci.org/owl/nlr.rdf</rdfs:label>
<ndl:hasSwitchMatrix rdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Domain/SwitchingMatrix"/>
<ndl:hasInterface rdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/StarLight/Cisco/6509/TenGigabitEthernet/1/3/fiber"/>
<rdf:type rdf:resource="http://geni-orca.renci.org/owl/topology.owl#Device"/>
<rdf:type rdf:resource="http://geni-orca.renci.org/owl/topology.owl#NetworkDomain"/>
<layer:isLabelProducer rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</layer:isLabelProducer>
<ndl:hasInterface rdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Renci/Cisco/6509/TenGigabitEthernet/1/2/fiber"/>
</rdf:Description>
Broker: Resource allocation
• Consumes the abstract NDL from all the sites– Keeping track of resource allocation and domain
interface resources (e.g. bandwidth on border interfaces)
• Passes the abstract NDL to the service manager upon query
Service Manager controller policy
• Assemble the abstract descriptions into a Inter-domain NDL-OWL model
• Accept user allocation request the request in NDL-OWL format
• Perform the inter-domain path computation– Which domains will need to provide resources to
create this path
• Compute the dependency tree of domains to determine what order the resources will be requested in
• Form the reservations and DomainRequest(s) for authorities in NDL-OWL
• Redeem the DomainRequest(s) to sites.
19
Converting to NDL-OWL
• Emulab NS2 -> NDL-OWL converter (many thanks to Rob Ricci for his help)– For testing: web page (.jsp)– For production use: XMLRPC service
• http://geni-test.renci.org/ndl-conversion/convert.jsp
• PG and PL RSpec coming– To be used in conjunction with ORCA XMLRPC
controller offering PG interface
Label Stitching Problem
• Multiple domains on the path need to create a seamless connection• Label negotiation is required at domain peering points
– E.g. VLAN tag can be generated, translated, accepted or tunneled
• Sites or devices inside domains have various capabilities:– Switching capability (Layer-specific: VLAN, Lambda, ..)– Label producer vs. consumer (or both)– Label translation capability– Available label set (constraint)
• Multiple domain label assignment and stitching solutions possible:– Fully centralized – single point of failure– Distributed (RSVP) – slow, hard to optimize– Coordinated – for a given connection an entity coordinates the order/sequence in
which domains stitch/connect to one another
Example of a path dependency
NLR
BEN
RenciNet RENCI
VMs
DukeVMs
DukeNet
UmassVise
StarLight
ORCA redeem dependency tree• Neighbor relationship
– Peer relationship • Both are label producers or pre-configured
– Provider-customer relationship (NRL-BEN)• Translating at the customer
– Master-Slave relationship (Access network - VM sites)• Slaves wait and use the same label from the master
• Redeem dependency tree– Determines the order in which controller policy ‘redeems’
resources given by the broker from domains.– Domains pass back relevant information needed by their
neighbors to perform the stitching.
Future work
• Add expressivity to– NDL-OWL requests– Edge resource descriptions and IP layer– Measurement resources
• Topology mapping and multi-point support• Persistent RDF/OWL storage• More advanced reasoning and rule based
implementation– Using inference and various logics
• Slice manifest NDL
Top Related