Changes between Version 12 and Version 13 of TopdlLibrary


Ignore:
Timestamp:
Oct 8, 2012 9:20:21 AM (12 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TopdlLibrary

    v12 v13  
    3333
    3434 * [TopdlLibrary#ComputerClass Computer]
    35   * CPU (0 or more)
    36     * Attribute (0 or more)
    37   * !OperatingSystem (0 or more)
    38     * Attribute
    39   * Software (0 or more)
    40     * Attribute (0 or more)
    41   * Storage
    42     * Attribute
    43   * Interface (0 or more)
    44     * Capacity (0 or 1)
    45     * Latency (0 or 1)
    46     * Attribute (0 or more)
    47   * Service (0 or more)
    48     * !ServiceParam (0 or more)
     35  * [TopdlLibrary#CPUClass CPU] (0 or more)
     36    * [TopdlLibrary#AttributeClass Attribute] (0 or more)
     37  * [TopdlLibrary#OperatingSystemClass !OperatingSystem] (0 or more)
     38    * [TopdlLibrary#AttributeClass Attribute] (0 or more)
     39  * [TopdlLibrary#SoftwareClass Software] (0 or more)
     40    * [TopdlLibrary#AttributeClass Attribute] (0 or more)
     41  * [TopdlLibrary#StorageClass Storage] (0 or more)
     42    * [TopdlLibrary#AttributeClass Attribute] (0 or more)
     43  * [TopdlLibrary#InterfaceClass Interface] (0 or more)
     44    * [TopdlLibrary#CapacutyClass Capacity] (0 or 1)
     45    * [TopdlLibrary#LatencyClass Latency] (0 or 1)
     46    * [TopdlLibrary#AttributeClass Attribute] (0 or more)
     47  * [TopdlLibrary#ServiceClass Service] (0 or more)
     48    * [TopdlLibrary#ServiceParamClass !ServiceParam] (0 or more)
    4949
    5050Most classes can have attributes attached to them that contain extention attributes that different applications make use of.  The presence or absence of an optional nested object does not mean the presence or absence of the thing it describes, but that the description is unbound.  As [TopDl#Representation we have seen] a Computer without a nested CPU object does not describe a computer without a CPU, but a computer with no constraints on the CPU.
    5151 
    52 == Adaptive Constructors ==
     52=== Adaptive Constructors ===
    5353
    5454The constructors of the various topdl classes will accept contained classes in several formats.  They will always accept an object of the relevant class.  They will also take a dict that maps constructor parameters to values for the given class.  Examples make this clearer than description.
     
    7777All topdl class constructors take the member names as parameters, and should be called using named parameters, as above.  The only exceptions to this is the [TopdlLibrary#SubstrateClass Substrate object]'s {{{interfaces}}} member and the [TopdlLibrary#InterfaceClass Interface object]'s {{{subs}}} member.  An Interface's {{{element}}} member can be specified, but generally is not.
    7878
    79 == Topdl Class Features ==
     79=== Topdl Class Features ===
    8080
    8181All topdl classes implement the following methods:
     
    9595   Return the XML encoding (from the topdl language) of this object (and nested objects)
    9696
    97 == Topology Class ==
     97=== Topology Class ===
    9898
    9999This class holds an enitre topology.  The utility functions that read and write files operate on it, and it is generally the unit of I/O for the library.
     
    122122{{{incorporate_elements()}}} is called by the {{{Topology}}} constructor as well and that constructor may throw the same exceptions.
    123123
    124 == Computer Class ==
     124=== Computer Class ===
    125125
    126126A Computer object is a programmable computer in a topology.  A webserver is well represented by a computer, as is a desktop. 
     
    158158A {{{Computer}}} should only be an element of one {{{Topology}}}.  Use {{{clone()}}} to avoid this.
    159159
    160 == Substrate Class ==
     160=== Substrate Class ===
    161161
    162162The {{{Substrate}}} object represents a communication substrate.  The elements that have interfaces connected to a substrate can communicate with one another.  A {{{Substrate}}} may include default parameters for the latency and capacity of the communication channel.
     
    193193Because the enclosing {{{Topology}}} object maintains the {{{interfaces}}} member, it is dangerous to have the same {{{Substrate}}} object in more than one {{{Topology}}}.  Use the {{{clone()}}} method to avoid this.
    194194
    195 == Interface Class ==
     195=== Interface Class ===
    196196
    197197This class defines the attachment of an entity, e.g., a [TopdlLibrary#ComputerClass Computer], to a [TopdlLibrary#SubstrateClass Substrate].  As with Substrates and entities, each Interface should be attached to only one entity and be unique across a [TopdlLibrary#Topology Topology].  An Interface has the following members:
     
    212212The constructor takes all the member names '''except subs''' as parameters.  Most programs will not need to use {{{element}}} as a parameter to the constructor, either.
    213213
    214 == Attribute Class ==
     214=== Attribute Class ===
    215215
    216216An attribute is a user-defined annotation of one of the other classes: a key/value pair.  An attribute has the following members:
     
    225225Should a program need to call the constructor, it takes the member names as named parameters.
    226226
    227 == CPU Class ==
     227=== CPU Class ===
    228228
    229229This represents a CPU on a computer.  It has the following members:
     
    236236The constructor takes the member names as named parameters.
    237237
    238 == !OperatingSystem Class ==
     238=== !OperatingSystem Class ===
    239239
    240240This class captures the operating system requirements of a computer.  It has the following members:
     
    254254The constructor takes the member names as parameters.  Note that all the members may be None, but an empty {{{!OperatingSystem}}} object is not very useful.  The flexibility is there to allow specifying an operating system version without a distribution or a distribution without a base version.
    255255
    256 == Storage Class ==
     256=== Storage Class ===
    257257
    258258The storage requirements or information for a system.  This class characterizes memory or permanent storage.  Its members are:
     
    269269The constructor takes the member names as named parameters.
    270270
    271 == Software Class ==
     271=== Software Class ===
    272272
    273273This indicates what software must be installed on a system.  Its members are:
     
    280280The constructor takes the member names as named parameters.
    281281
    282 == Service Class ==
     282=== Service Class ===
    283283
    284284A service class encapsulates the ideas of a [FeddAbout#ExperimentServices DETER federation service].  Such services can be available from or used by a variety of topology elements.  The Service class has the following members:
     
    303303The constructor will take the member names as named parameters.
    304304
    305 == !ServiceParam Class ==
     305=== !ServiceParam Class ===
    306306
    307307A description of the type of parameter to a [TopdlLibrary#ServiceClass Service] will accept.  It has the following members:
     
    317317The constructor will take the member names as named parameters.
    318318
    319 == Testbed Class ==
     319=== Testbed Class ===
    320320
    321321This class represents a testbed that has allocated resources or from which an allocation is requested.  While it is primarily used internally by the federation system, some other applications include a {{{Testbed}}} as a place to attach attributes that pertain to the whole topology.
     
    348348The constructor takes the member names as named parameters.
    349349
    350 == Segment Class ==
     350=== Segment Class ===
    351351
    352352This class represents a sub-experiment of a federated experiment about which the details are unknown except for its interfaces.  It is primarily used internally by teh federation system.
     
    363363   A list of [TopdlLibrary#AttributeClass Attribute objects] that are attached to the segment.  The list may be empty.
    364364
    365 == ID Class ==
     365=== ID Class ===
    366366
    367367This class represents a polymorphic identifier as used by the federation system.  At most one of its members is set.
     
    382382The constructor accepts the member names as named parameters.
    383383
    384 == Other Class ==
     384=== Other Class ===
    385385
    386386This class represents a topology element that is not captured above.  It is a set of interfaces and a place to hang attributes, for use encoding kinds of elements unknown when topdl was specified.