Resource Representations in GENI
220 likes | 363 Vues
This presentation covers the integration of Semantic Resource Descriptions in ORCA, emphasizing the use of NDL-OWL for enhanced resource representations across various network layers. We will recap previous discussions on RDF and OWL, delve into how NDL-OWL is utilized within ORCA for resource specification, and discuss its application in multi-layered network path computation. Key topics include lifecycle management, visualization tools, and interoperability in network resource descriptions. We will also explore the GLEEN extension for SPARQL, enabling efficient network pathfinding.
Resource Representations in GENI
E N D
Presentation Transcript
Resource Representations in GENI • Rob Sherwood, OpenFlow • Hongwei Zhang, Wireless sensor network description language • Ilia Baldine, YufengXin, Semantic Resource Descriptions in ORCA • BACK at 10:45 • ibaldin@renci.org Presentation title goes here
Semantic Resource Descriptions in ORCA (Part 2) YufengXin and Ilia Baldine
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
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 NDL-OWL in ORCA
Why NDL(-OWL)? Application layer Network/routing layer Cross-Layer Information Exchange Optical/physical layer
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
XML vs. RDF Presentation title goes here
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 { {?srcndl: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. ?srcndl:hasInterface ?intf1. ?dstndl: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:typendl:Interface. ?crdf:typendl:Interface. } • Return: a list of intermediate links/connections between two connected resources in the RDF graph. • Not necessarily in-order!
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, … } Presentation title goes here
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:Descriptionrdf:about="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Domain"> <domain:hasServicerdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Domain/NetworkService/1"/> <rdfs:labelxml:lang="en">http://geni-orca.renci.org/owl/nlr.rdf</rdfs:label> <ndl:hasSwitchMatrixrdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Domain/SwitchingMatrix"/> <ndl:hasInterfacerdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/StarLight/Cisco/6509/TenGigabitEthernet/1/3/fiber"/> <rdf:typerdf:resource="http://geni-orca.renci.org/owl/topology.owl#Device"/> <rdf:typerdf:resource="http://geni-orca.renci.org/owl/topology.owl#NetworkDomain"/> <layer:isLabelProducerrdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</layer:isLabelProducer> <ndl:hasInterfacerdf: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.
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 Renci Net RENCI VMs BEN NLR StarLight Duke Net Duke VMs Umass Vise
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