source: wsdl/topdl.xsd @ cb0aafb

compt_changesinfo-ops
Last change on this file since cb0aafb was cb0aafb, checked in by Ted Faber <faber@…>, 12 years ago

Initial wsdl changes for new info.

  • Property mode set to 100644
File size: 11.9 KB
Line 
1<?xml version="1.0"?>
2<xsd:schema targetNamespace="http://www.isi.edu/topdl"
3  xmlns:tns="http://www.isi.edu/topdl"
4  xmlns:fns="http://www.isi.edu/fedd_types"
5  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
6  xmlns="http://www.w3.org/2000/10/XMLSchema">
7
8  <xsd:complexType name="attributeType">
9    <xsd:annotation>
10      <xsd:documentation>
11        A simple extension mechanism.  Most entities can have locally
12        understood attributes attached.
13      </xsd:documentation>
14    </xsd:annotation>
15    <xsd:sequence>
16      <xsd:element name="attribute" type="xsd:string"/>
17      <xsd:element name="value" type="xsd:string"/>
18    </xsd:sequence>
19  </xsd:complexType>
20
21  <xsd:simpleType name="kindType">
22    <xsd:annotation>
23      <xsd:documentation>
24        An indication of how requested networking capacity is measured.
25        This will undoubtably expand.
26      </xsd:documentation>
27    </xsd:annotation>
28    <xsd:restriction base="xsd:string">
29      <xsd:enumeration value="max"/>
30      <xsd:enumeration value="average"/>
31    </xsd:restriction>
32  </xsd:simpleType>
33
34  <xsd:complexType name="capacityType">
35    <xsd:annotation>
36      <xsd:documentation>
37        A strawman network capacity description for access negotiation.
38        This will come to include more and more interesting parameters.
39        Rate in kb/s.
40      </xsd:documentation>
41    </xsd:annotation>
42    <xsd:sequence>
43      <xsd:element name="rate" type="xsd:double"/>
44      <xsd:element name="kind" type="tns:kindType"/>
45    </xsd:sequence>
46  </xsd:complexType>
47
48  <xsd:complexType name="latencyType">
49    <xsd:annotation>
50      <xsd:documentation>
51        A strawman network latency description for access negotiation.
52        This will come to include more and more interesting parameters.  Time
53        is in msec.
54      </xsd:documentation>
55    </xsd:annotation>
56    <xsd:sequence>
57      <xsd:element name="time" type="xsd:double"/>
58      <xsd:element name="kind" type="tns:kindType"/>
59    </xsd:sequence>
60  </xsd:complexType>
61
62  <xsd:simpleType name="serviceParamTypeType">
63    <xsd:annotation>
64      <xsd:documentation>
65        The set of valid types for a service parameter
66      </xsd:documentation>
67    </xsd:annotation>
68    <xsd:restriction base="xsd:string">
69      <xsd:enumeration value="string"/>
70      <xsd:enumeration value="int"/>
71      <xsd:enumeration value="float"/>
72    </xsd:restriction>
73  </xsd:simpleType>
74
75  <xsd:complexType name="serviceParamType">
76    <xsd:annotation>
77      <xsd:documentation>
78        A parameter type for a service, gives the name and parameter type
79      </xsd:documentation>
80    </xsd:annotation>
81    <xsd:sequence>
82      <xsd:element name="name" type="xsd:string"/>
83      <xsd:element name="type" type="tns:serviceParamTypeType"/>
84    </xsd:sequence>
85  </xsd:complexType>
86
87  <xsd:complexType name="serviceType">
88    <xsd:annotation>
89      <xsd:documentation>
90        Description of a service exported from an element
91      </xsd:documentation>
92    </xsd:annotation>
93    <xsd:sequence>
94      <xsd:element name="name" type="xsd:string" />
95      <xsd:element name="importer" type="xsd:string" 
96        minOccurs="0" maxOccurs="unbounded"/>
97      <xsd:element name="param" type="tns:serviceParamTypeType" 
98        minOccurs="0" maxOccurs="unbounded"/>
99      <xsd:element name="description" type="xsd:string" 
100        minOccurs="0" maxOccurs="1"/>
101      <xsd:element name="status" type="fns:statusType"/>
102    </xsd:sequence>
103  </xsd:complexType>
104
105  <xsd:complexType name="substrateType">
106    <xsd:annotation>
107      <xsd:documentation>
108        Description of media through which elements can communicate
109      </xsd:documentation>
110    </xsd:annotation>
111    <xsd:sequence>
112      <xsd:element name="name" type="xsd:string"/>
113      <xsd:element name="capacity" type="tns:capacityType" 
114        minOccurs="0" maxOccurs="1"/>
115      <xsd:element name="latency" type="tns:latencyType" 
116        minOccurs="0" maxOccurs="1"/>
117      <xsd:element name="attribute" type="tns:attributeType" 
118        minOccurs="0" maxOccurs="unbounded"/>
119      <xsd:element name="localname" type="xsd:string"
120        minOccurs="0" maxOccurs="unbounded"/>
121      <xsd:element name="status" type="fns:statusType"
122        minOccurs="0" maxOccurs="1"/>
123      <xsd:element name="service" type="tns:serviceType" 
124        minOccurs="0" maxOccurs="unbounded"/>
125      <xsd:element name="operation" type="xsd:string" 
126        minOccurs="0" maxOccurs="unbounded"/>
127    </xsd:sequence>
128  </xsd:complexType>
129 
130  <xsd:complexType name="cpuType">
131    <xsd:annotation>
132      <xsd:documentation>
133        The CPU requirements of a computer or other entity.  The type is a
134        string for simplicity.  We may make this more complex later.
135      </xsd:documentation>
136    </xsd:annotation>
137    <xsd:sequence>
138      <xsd:element name="type" type="xsd:string"/>
139      <xsd:element name="attribute" type="tns:attributeType" 
140        minOccurs="0" maxOccurs="unbounded"/>
141    </xsd:sequence>
142    <xsd:attribute name="count" type="xsd:int" use="optional"/>
143  </xsd:complexType>
144
145  <xsd:simpleType name="persistenceType">
146    <xsd:annotation>
147      <xsd:documentation>
148        Description of how long storage is available
149      </xsd:documentation>
150    </xsd:annotation>
151    <xsd:restriction base="xsd:string">
152      <xsd:enumeration value="temporary"/>
153      <xsd:enumeration value="persistent"/>
154    </xsd:restriction>
155  </xsd:simpleType>
156
157  <xsd:complexType name="storageType">
158    <xsd:annotation>
159      <xsd:documentation>
160        The storage requirements of a computer or other entity.  The amount and
161        its persistance.  Amounts are in megabytes.  Should media be requires,
162        an attribute can be used.
163      </xsd:documentation>
164    </xsd:annotation>
165    <xsd:sequence>
166      <xsd:element name="amount" type="xsd:double"/>
167      <xsd:element name="persistence" type="tns:persistenceType"/>
168      <xsd:element name="attribute" type="tns:attributeType" 
169        minOccurs="0" maxOccurs="unbounded"/>
170    </xsd:sequence>
171  </xsd:complexType>
172
173  <xsd:complexType name="operatingsystemType">
174    <xsd:annotation>
175      <xsd:documentation>
176        The OS requirements of a computer or other element with an OS.
177      </xsd:documentation>
178    </xsd:annotation>
179    <xsd:sequence>
180      <xsd:element name="name" type="xsd:string"
181        minOccurs="0" maxOccurs="1"/>
182      <xsd:element name="version" type="xsd:string"
183        minOccurs="0" maxOccurs="1"/>
184      <xsd:element name="distribution" type="xsd:string"
185        minOccurs="0" maxOccurs="1"/>
186      <xsd:element name="distributionversion" type="xsd:string"
187        minOccurs="0" maxOccurs="1"/>
188      <xsd:element name="attribute" type="tns:attributeType" 
189        minOccurs="0" maxOccurs="unbounded"/>
190    </xsd:sequence>
191  </xsd:complexType>
192
193  <xsd:complexType name="softwareType">
194    <xsd:annotation>
195      <xsd:documentation>
196        An piece of software  and where to install it on an element.  Some
197        distribution types have the install location embedded in the format,
198        and for them the installation location is empty.
199      </xsd:documentation>
200    </xsd:annotation>
201    <xsd:sequence>
202      <xsd:element name="location" type="xsd:string"/>
203      <xsd:element name="install" type="xsd:string"
204        minOccurs="0" maxOccurs="1"/>
205      <xsd:element name="attribute" type="tns:attributeType" 
206        minOccurs="0" maxOccurs="unbounded"/>
207    </xsd:sequence>
208  </xsd:complexType>
209
210  <xsd:complexType name="interfaceType">
211    <xsd:annotation>
212      <xsd:documentation>
213        An interface to at least one communication substrate.  Details like
214        address assignement are in attributes.
215      </xsd:documentation>
216    </xsd:annotation>
217    <xsd:sequence>
218      <xsd:element name="substrate" type="xsd:string" minOccurs="1" 
219        maxOccurs="unbounded"/>
220      <xsd:element name="name" type="xsd:string" />
221      <xsd:element name="capacity" type="tns:capacityType" 
222        minOccurs="0" maxOccurs="1"/>
223      <xsd:element name="latency" type="tns:latencyType" 
224        minOccurs="0" maxOccurs="1"/>
225      <xsd:element name="attribute" type="tns:attributeType" 
226        minOccurs="0" maxOccurs="unbounded"/>
227    </xsd:sequence>
228  </xsd:complexType>
229
230  <xsd:complexType name="computerType">
231    <xsd:annotation>
232      <xsd:documentation>
233        A general purpose computer as part of a topology.
234      </xsd:documentation>
235    </xsd:annotation>
236    <xsd:sequence>
237      <xsd:element name="name" type="xsd:string"/>
238      <xsd:element name="cpu" type="tns:cpuType"
239        minOccurs="0" maxOccurs="unbounded"/>
240      <xsd:element name="os" type="tns:operatingsystemType"
241        minOccurs="0" maxOccurs="unbounded"/>
242      <xsd:element name="software" type="tns:softwareType"
243        minOccurs="0" maxOccurs="unbounded"/>
244      <xsd:element name="storage" type="tns:storageType"
245        minOccurs="0" maxOccurs="unbounded"/>
246      <xsd:element name="interface" type="tns:interfaceType"
247        minOccurs="0" maxOccurs="unbounded"/>
248      <xsd:element name="attribute" type="tns:attributeType" 
249        minOccurs="0" maxOccurs="unbounded"/>
250      <xsd:element name="localname" type="xsd:string"
251        minOccurs="0" maxOccurs="unbounded"/>
252      <xsd:element name="status" type="fns:statusType"
253        minOccurs="0" maxOccurs="1"/>
254      <xsd:element name="service" type="tns:serviceType" 
255        minOccurs="0" maxOccurs="unbounded"/>
256      <xsd:element name="operation" type="xsd:string" 
257        minOccurs="0" maxOccurs="unbounded"/>
258    </xsd:sequence>
259  </xsd:complexType>
260
261  <xsd:complexType name="testbedType">
262    <xsd:annotation>
263      <xsd:documentation>
264        A testbed is an abstract resource collection.
265      </xsd:documentation>
266    </xsd:annotation>
267    <xsd:sequence>
268      <xsd:element name="uri" type="xsd:string"/>
269      <xsd:element name="type" type="xsd:string"/>
270      <xsd:element name="interface" type="tns:interfaceType"
271        minOccurs="0" maxOccurs="unbounded"/>
272      <xsd:element name="attribute" type="tns:attributeType" 
273        minOccurs="0" maxOccurs="unbounded"/>
274      <xsd:element name="localname" type="xsd:string"
275        minOccurs="0" maxOccurs="unbounded"/>
276      <xsd:element name="status" type="fns:statusType"
277        minOccurs="0" maxOccurs="1"/>
278      <xsd:element name="service" type="tns:serviceType" 
279        minOccurs="0" maxOccurs="unbounded"/>
280      <xsd:element name="operation" type="xsd:string" 
281        minOccurs="0" maxOccurs="unbounded"/>
282    </xsd:sequence>
283  </xsd:complexType>
284
285  <xsd:complexType name="segmentType">
286    <xsd:annotation>
287      <xsd:documentation>
288        A collection of resources instantiated on a testbed
289      </xsd:documentation>
290    </xsd:annotation>
291    <xsd:sequence>
292      <xsd:element name="id" type="fns:IDType"/>
293      <xsd:element name="type" type="xsd:string"/>
294      <xsd:element name="uri" type="xsd:string"/>
295      <xsd:element name="interface" type="tns:interfaceType"
296        minOccurs="0" maxOccurs="unbounded"/>
297      <xsd:element name="attribute" type="tns:attributeType" 
298        minOccurs="0" maxOccurs="unbounded"/>
299    </xsd:sequence>
300  </xsd:complexType>
301
302
303  <xsd:complexType name="otherType">
304    <xsd:annotation>
305      <xsd:documentation>
306        An element described only by attributes.
307      </xsd:documentation>
308    </xsd:annotation>
309    <xsd:sequence>
310      <xsd:element name="interface" type="tns:interfaceType"
311        minOccurs="0" maxOccurs="unbounded"/>
312      <xsd:element name="attribute" type="tns:attributeType" minOccurs="0"
313        maxOccurs="unbounded"/>
314    </xsd:sequence>
315  </xsd:complexType>
316
317  <xsd:complexType name="elementType">
318    <xsd:annotation>
319      <xsd:documentation>
320        An element in the topology to be created.
321      </xsd:documentation>
322    </xsd:annotation>
323    <xsd:choice>
324      <xsd:element name="computer" type="tns:computerType"/>
325      <xsd:element name="testbed" type="tns:testbedType"/>
326      <xsd:element name="segment" type="tns:segmentType"/>
327      <xsd:element name="other" type="tns:otherType"/>
328    </xsd:choice>
329  </xsd:complexType>
330
331  <xsd:complexType name="topologyType">
332    <xsd:annotation>
333      <xsd:documentation>
334        Description of an experimental topology for the federant to create.
335      </xsd:documentation>
336    </xsd:annotation>
337    <xsd:sequence>
338      <xsd:element name="version" type="xsd:string"/>
339      <xsd:element name="substrates" type="tns:substrateType" 
340        minOccurs="0" maxOccurs="unbounded" />
341      <xsd:element name="elements" type="tns:elementType" 
342        minOccurs="0" maxOccurs="unbounded" />
343      <xsd:element name="attribute" type="tns:attributeType" minOccurs="0"
344        maxOccurs="unbounded"/>
345    </xsd:sequence>
346  </xsd:complexType>
347</xsd:schema>
Note: See TracBrowser for help on using the repository browser.