Changes between Version 2 and Version 3 of LayoutAspect


Ignore:
Timestamp:
Oct 14, 2013 4:50:04 PM (9 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LayoutAspect

    v2 v3  
     1[[TOC]]
     2
    13= Describing And Manipulating Experiment Topologies in DETER =
    24
     
    1315== Model ==
    1416
     17=== The Basic Model ===
     18
    1519A DETER topology is a collection of experimental elements that can communicate with one another.  The topology model consists of ''elements'' that represent those experimental entities and ''substrates'' which indicate the valid commuincations scopes. An element may be specialized depending on the capabilities supplied or required.  A substrate includes limits on how the communication rate and delay when communicating through it.
    1620
    1721The topology is represented as a bipartite graph where vertices are either substrates or elements.  Edges are ''interfaces''.  Each interface connects an element to a substrate, indicating that the element can communicate on the substrate.  An element may have additional communication constraints encoded in it as well.
     22
     23Each element and each substrate has a unique name in the topology.  Each interface also has a name, scoped by the element it connects to.
    1824
    1925We stress that these are logical descriptions.  Within DETERlab a substrate is usually realized as a virtual LAN (VLAN), but a substrate in general may capture a VLAN, a shared WDM frequency, a microwave line-of-sight or an open window across an alley.  Similarly, an interface may represent a single card in a computer or a specific radio configuration.  The mapping of interfaces or substrates to physical items is not always one-to-one.  Similarly elements are logical communicating entities.  They are specialized by the basic role they play in the experiment.  Currently the most commonly encountered element is a computer, which may be a physical machine, a virtual machine instance, or even a process.
     
    2127Element specialization is a fairly heavyweight extensbility mechanism.  A simpler one is the ability to attach attributes to elements, substrates, interfaces, and the various sub components of specialized elements.  Attributes are named strings where the names are scoped by the thing they are attached to.  This allows tools that construct or manipulate topologies to annotate the topologies even if the core testbed does not use the information.
    2228
     29[[Image(Simple_topo.png)]]
     30
     31The image shows a simple topology encoded in our topology model.  Computers 1,2, and 3 can communicate directly because they each have an interface on Substrate A.  We omit the interface names.  Computers 2 and 3 can send as fast as 1 Gb/s but experience a 10 ms delay before the first bit transmitted arrives at the receiver.  Computer 1 is further constrained by its interface to a rate of 100 Mb/s, but sees the same delay.
     32
     33Computers 3 & 4 can also communicate directly over Substrate B.
     34
     35Computers 1 & 2 cannot communicate with Computer 4 unless Computer 3 forwards messages.
     36
     37This also shows the bipartite nature of the graph.  Substrates (blue ellipses) are only connected to computers/elements (green rounded rectangles).  All interfaces connect an element to a substrate.
     38
     39=== Scaling Using Regions and Fragments ===
     40
     41The basic model specifies communication networks at a fairly high degree of abstraction while maintaining mechanisms for specialization.  However, large topologies present several problems:
     42
     43 * Storing and transferring the entire topology can be wasteful if the researcher is only interested in manipulating or viewing parts of it
     44 * There is no effective way to annotate subgraphs of the topology, though this is a natural way for researchers to specify and manipulate complex topologies
     45 * There is no way to specify subgraphs of a topology beyond enumerating them
     46
     47The ''region'' element addresses these shortcomings.  A region is a placeholder in a topology that stands in for a subgraph, called a ''fragment''.  The region includes a natural language description of the missing subgraph and provides enough detail on how to generate the missing fragment.  Note that fragments may also contain regions.
     48
     49Fragments are specified outside the topology description.  In fact, a fragment is exactly a topology description, so fragments can be combined easily. 
     50
     51A region specifies the fragment that it is standing in for by name. That name may be a pointer into a larger data structure that includes a fragment pool or a pointer to a service that can provide the fragment.  Each region contains rules mapping the region's  interfaces to elements in the fragment (of course the region's interfaces cannot be mapped to substrates in the fragment, because that would violate the bipartite rules of the graph).
     52
     53In order to keep the names unique in the fully expanded topology, each region also contains rules used to rename the fragment elements and substrates when the region is expanded.  There is some complexity to this that we expand on below.
     54
     55Here is a small topology with several regions defined: