source: xssim/trunk/src/test/rewolucja/schemas/XSSimResSchema.xsd @ 343

Revision 343, 18.0 KB checked in by wojtekp, 13 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3        elementFormDefault="qualified" attributeFormDefault="unqualified">
4               
5                <xs:complexType name="pluginType">
6                <xs:annotation>
7                        <xs:documentation>Base plugin type.
8                        Plugins allow a researcher to configure and adapt the simulation framework to his/her experiment
9                        starting from modeling job performance, through method of calculating energy estimation up to implementation of scheduling policies
10                        Name of the plugin specifies the JAVA class that implements dedicated interface.</xs:documentation>
11                </xs:annotation>
12                <xs:sequence>
13                        <xs:element name="name" type="xs:string"></xs:element>
14                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
15                </xs:sequence>
16        </xs:complexType>
17       
18        <xs:complexType name="timeEstimationPluginType">
19                <xs:annotation>
20                        <xs:documentation>TimeEstimationPlugin derived from Plugin.
21                        Time estimation plugin provides means to include specific application performance models during simulations
22                        and allows researchers to introduce specific ways of calculating task execution time.</xs:documentation>
23                </xs:annotation>
24                <xs:complexContent>
25                        <xs:restriction base="pluginType">
26                                <xs:sequence>
27                                        <xs:element name="name" type="xs:string" default="ExecTimeEstimationPlugin"></xs:element>
28                                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
29                                </xs:sequence>
30                        </xs:restriction>
31                </xs:complexContent>   
32        </xs:complexType>
33       
34        <xs:complexType name="resourceType">
35                <xs:annotation>
36                        <xs:documentation>Base resource type.
37                        It allows to define simulation entities like computing resources, devices, schedulers.
38                        Attributes: class - determines the component of the architecture i.e. rack, processor, memory, storage etc.
39                        type - type of resource; for instance, continuous for memory, bandwidth, etc. and discrete for processors
40                        name - unique resource identifier, if not specified it will be generated by the simulator in the following manner: class + "_" + subsequent_natural_number
41                        </xs:documentation>
42                </xs:annotation>
43                <xs:sequence>
44                        <xs:element name="description" type="xs:string" minOccurs="0"></xs:element>
45                </xs:sequence>
46                <xs:attribute name="class" type="xs:string" use="required"/>
47                <xs:attribute name="type" type="xs:string" use="optional"/>
48                <xs:attribute name="name" type="xs:ID" use="optional"/>
49        </xs:complexType>
50
51        <xs:complexType name="computingResourceType">
52                <xs:annotation>
53                        <xs:documentation> ComputingResource derived from Resource
54                        Computing resource specifies resources that are able to perform computing operations.
55                        From the simulator point of view computing resource is everything that is/contains processing element.
56                        Hence, all entities like core, processor, computing node, as well as those which aggregate them (like shelf, rack, container etc.)
57                        should be define using this type. This way of description provides flexibility in defining system architecture
58                        and allows to build hierarchy of resources that corresponds to real world.
59                        Attributes: groupId - allows to group resources of the given class in the logical structures that can be used during binding them with schedulers
60                        count - defines number of resources of the given class</xs:documentation>
61                </xs:annotation>
62                <xs:complexContent>
63                        <xs:extension base="resourceType">
64                                <xs:sequence>
65                                        <xs:choice>
66                                                <xs:sequence>
67                                                        <xs:element name="resourceUnit" type="resourceUnitType" minOccurs="0" maxOccurs="unbounded"></xs:element>
68                                                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
69                                                        <xs:element name="profile" type="profileType" minOccurs="0" maxOccurs="1"></xs:element>
70                                                        <xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
71                                                        <xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
72                                                </xs:sequence>
73                                                <xs:sequence>
74                                                        <xs:element name="templateId" type="xs:IDREF"/>
75                                                        <xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
76                                                </xs:sequence>
77                                        </xs:choice>
78                                </xs:sequence>
79                                <xs:attribute name="groupId" type="xs:integer" use="optional"/>                 
80                                <xs:attribute name="count" type="xs:integer" use="optional"/>
81                        </xs:extension>
82                </xs:complexContent>
83        </xs:complexType>
84       
85        <xs:complexType name="computingResourceTemplateType">
86                <xs:annotation>
87                        <xs:documentation>ComputingResourceTemplate derived from Resource.
88                        It allows user to define model of computing resource component that may constitute other computing resources
89                        Computing resource templates can be then referred in computing resource definition</xs:documentation>
90                </xs:annotation>
91                <xs:complexContent>
92                        <xs:extension base="resourceType">
93                                <xs:sequence>
94                                        <xs:element name="resourceUnit" type="resourceUnitType" minOccurs="0" maxOccurs="unbounded"></xs:element>
95                                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
96                                        <xs:element name="energyEstimationPlugin" type="energyEstimationPluginType" minOccurs="0" maxOccurs="1"></xs:element>
97                                        <xs:element name="profile" type="profileType" minOccurs="0" maxOccurs="1"></xs:element>
98                                        <xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
99                                </xs:sequence>
100                        </xs:extension>
101                </xs:complexContent>
102        </xs:complexType>
103
104        <xs:complexType name="schedulerType">
105                <xs:annotation>
106                        <xs:documentation>Scheduler derived from Resource.
107                        It allows to model scheduling entity responsible for managing resources.</xs:documentation>
108                </xs:annotation>
109                <xs:complexContent>
110                        <xs:extension base="resourceType">
111                                <xs:sequence>
112                                        <xs:element name="schedulingPlugin" type="schedulingPluginType" minOccurs="0" maxOccurs="1"></xs:element>
113                                        <xs:choice minOccurs="1" maxOccurs="unbounded">
114                                                <xs:element name="scheduler" type="schedulerType"></xs:element>
115                                                <xs:element name="managedComputingResources" type="managedComputingResourcesType"></xs:element>
116                                        </xs:choice>
117                                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
118                                </xs:sequence>
119                        </xs:extension>
120                </xs:complexContent>
121        </xs:complexType>
122       
123        <xs:complexType name="schedulingPluginType">
124                <xs:annotation>
125                        <xs:documentation>SchedulingPlugin derived from Plugin. Scheduling plugins allow plugging scheduling algorithms into the simulated environment.
126                        Elements: frequency - is used to enable scheduling periodically; it specifies the time interval (in seconds by default) between subsequent scheduling invocations
127                        </xs:documentation>
128                </xs:annotation>
129                <xs:complexContent>
130                        <xs:extension base="pluginType">
131                                <xs:sequence>
132                                        <xs:element name="frequency" type="doubleValueWithUnitType" minOccurs="0" maxOccurs="1"></xs:element>
133                                </xs:sequence>
134                        </xs:extension>
135                </xs:complexContent>
136        </xs:complexType>
137       
138        <xs:complexType name="resourceUnitType">
139                <xs:annotation>
140                        <xs:documentation>Resource unit is used to define non-computing resource like memory, storage etc.
141                        Elements: amount - represents concrete amount (values) of specific resource unit</xs:documentation>
142                </xs:annotation>
143                <xs:complexContent>
144                        <xs:extension base="resourceType">
145                                <xs:sequence>
146                                        <xs:element name="amount" type="doubleValueWithUnitType"/>
147                                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
148                                </xs:sequence>
149                        </xs:extension>
150                </xs:complexContent>
151        </xs:complexType>
152
153        <xs:complexType name="doubleValueWithUnitType">
154                <xs:annotation>
155                        <xs:documentation>DoubleValueWitUnit derived from double. Allows providing units in which a given value is expressed
156                        Attributes: unit - indicate appropriate units, for instance: seconds, watts, bytes etc. </xs:documentation>
157                </xs:annotation>
158                <xs:simpleContent>
159                        <xs:extension base="xs:double">
160                                <xs:attribute name="unit" type="xs:string" use="optional"/>
161                        </xs:extension>
162                </xs:simpleContent>     
163        </xs:complexType>
164       
165        <xs:complexType name="stringValueWithUnitType">
166                <xs:annotation>
167                        <xs:documentation>StringValueWitUnit derived from string. Allows providing units in which a given value is expressed
168                        Attributes: unit - indicate appropriate units. </xs:documentation>
169                </xs:annotation>
170                <xs:simpleContent>
171                        <xs:extension base="xs:string">
172                                <xs:attribute name="unit" type="xs:string" use="optional"/>
173                        </xs:extension>
174                </xs:simpleContent>     
175        </xs:complexType>
176       
177        <xs:complexType name="managedComputingResourcesType">
178                <xs:annotation>
179                        <xs:documentation>ManagedComputingResource type specifies controlled (by scheduler) computing resources.
180                        They can be provided either by listing their names or listing the group ids for which they belong
181                        Attributes: include - specifies whether scheduler should be built on top of given resources or should also include them.
182                        In other words, false (default) value indicates that scheduler manner only subcomponents of the listed resources;
183                        true value determines that also listed resources will be under the control of the defined scheduler</xs:documentation>
184                </xs:annotation>
185                <xs:choice>
186                        <xs:element name="resourceName" type="xs:string" minOccurs="1" maxOccurs="unbounded"></xs:element>
187                        <xs:element name="resourceGroupId" type="xs:string" minOccurs="1" maxOccurs="unbounded"></xs:element>
188                </xs:choice>
189                <xs:attribute name="include" type="xs:boolean" default="false"/>
190        </xs:complexType>
191
192        <xs:complexType name="energyEstimationPluginType">
193                <xs:annotation>
194                        <xs:documentation>EnergyEstimationPlugin derived from Plugin.
195                        Energy estimation plugin is used to customize estimation of energy consumptions of the given computing resource
196                        to specific applications and hardware. It has access to the detailed resource description including power and air throughput profiles
197                        and application characteristics running on a given resource</xs:documentation>
198                </xs:annotation>
199                <xs:complexContent>
200                        <xs:extension base="pluginType"/>
201                </xs:complexContent>
202        </xs:complexType>
203       
204        <xs:complexType name="profileType">
205                <xs:annotation>
206                        <xs:documentation>Profile acts as a container for resource profiles: power and air throughput</xs:documentation>
207                </xs:annotation>
208                <xs:sequence>
209                        <xs:element name="powerProfile" type="powerProfileType" minOccurs="0"></xs:element>
210                        <xs:element name="airThroughputProfile" type="airThroughputProfileType" minOccurs="0"></xs:element>
211                </xs:sequence>
212        </xs:complexType>
213       
214        <xs:complexType name="powerProfileType">
215                <xs:annotation>
216                        <xs:documentation>Power profile provides energyEstimation plugin, powerStates and other power-related parameters definition</xs:documentation>
217                </xs:annotation>
218                <xs:sequence>
219                        <xs:element name="energyEstimationPlugin" type="energyEstimationPluginType" minOccurs="0" maxOccurs="1"></xs:element>
220                        <xs:element name="powerStates" type="powerStatesType" minOccurs="0"></xs:element>
221                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
222                </xs:sequence>
223        </xs:complexType>
224       
225        <xs:complexType name="powerStatesType">
226                <xs:annotation>
227                        <xs:documentation>PowerState type act as a container for power states. It contains energy-related characteristics of the computing resource</xs:documentation>
228                </xs:annotation>
229                <xs:sequence>
230                        <xs:element name="powerState" type="powerStateType" minOccurs="1" maxOccurs="unbounded"></xs:element>
231                </xs:sequence>
232        </xs:complexType>
233       
234        <xs:complexType name="powerStateType">
235                <xs:annotation>
236                        <xs:documentation>Power state defines available (for computing resource) power states.
237                        Elements: name - denotes name of the given power state
238                        powerUsage - defines power consumption in the given state
239                        transition - specifies possible power states transitions form the given power state</xs:documentation>
240                </xs:annotation>
241                <xs:sequence>
242                        <xs:element name="name" type="xs:string"></xs:element>
243                        <xs:element name="powerUsage" type="doubleValueWithUnitType" minOccurs="0" maxOccurs="1"></xs:element>
244                        <xs:element name="transition" type="powerStatesTransitionType" minOccurs="0" maxOccurs="unbounded"></xs:element>
245                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
246                </xs:sequence>
247        </xs:complexType>
248       
249        <xs:complexType name="powerStatesTransitionType">
250                <xs:annotation>
251                        <xs:documentation>Description of power states transtition
252                        Elements: to - denotes name of target power state
253                        powerUsage - defines transition cost in the form of power consumption
254                        time - specifies transition time</xs:documentation>
255                </xs:annotation>
256                <xs:sequence>
257                        <xs:element name="to" type="xs:string"></xs:element>
258                        <xs:element name="powerUsage" type="doubleValueWithUnitType"></xs:element>
259                        <xs:element name="time" type="doubleValueWithUnitType"></xs:element>
260                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
261                </xs:sequence>
262        </xs:complexType>
263       
264        <xs:complexType name="airThroughputEstimationPluginType">
265                <xs:annotation>
266                        <xs:documentation>AirThroughputEstimationPlugin derived from Plugin.
267                        Air Throughput plugin is used to estimate air flow value based on the defined air throughput states</xs:documentation>
268                </xs:annotation>
269                <xs:complexContent>
270                        <xs:extension base="pluginType"/>
271                </xs:complexContent>
272        </xs:complexType>
273       
274        <xs:complexType name="airThroughputProfileType">
275                <xs:annotation>
276                        <xs:documentation>AirThrouhputProfile provides airThroughputEstimation plugin, airThroughputStates and other airThroughput-related parameters definition</xs:documentation>
277                </xs:annotation>
278                <xs:sequence>
279                        <xs:element name="airThroughputEstimationPlugin" type="airThroughputEstimationPluginType" minOccurs="0" maxOccurs="1"></xs:element>
280                        <xs:element name="airThroughputStates" type="airThroughputStatesType" minOccurs="1" maxOccurs="unbounded"></xs:element>
281                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
282                </xs:sequence>
283        </xs:complexType>
284       
285                <xs:complexType name="airThroughputStatesType">
286                <xs:annotation>
287                        <xs:documentation>AirThroughputState type act as a container for air throughput states.</xs:documentation>
288                </xs:annotation>
289                <xs:sequence>
290                        <xs:element name="airThroughputState" type="airThroughputStateType" minOccurs="1" maxOccurs="unbounded"></xs:element>
291                </xs:sequence>
292        </xs:complexType>
293       
294        <xs:complexType name="airThroughputStateType">
295                <xs:annotation>
296                        <xs:documentation>Air througput state provides means to define air flow level.
297                        It can represent, for instance, a fan working state</xs:documentation>
298                </xs:annotation>
299                <xs:sequence>
300                        <xs:element name="name" type="xs:string"></xs:element>
301                        <xs:element name="value" type="doubleValueWithUnitType"></xs:element>
302                        <xs:element name="powerUsage" type="doubleValueWithUnitType" minOccurs="0"></xs:element>
303                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
304                </xs:sequence>
305        </xs:complexType>
306       
307        <xs:complexType name="locationType">
308                <xs:annotation>
309                        <xs:documentation>The location type describes placement of the computing resource in the 3D coordinate system</xs:documentation>
310                </xs:annotation>
311                <xs:sequence>
312                        <xs:element name="horizontal" type="xs:long"/>
313                        <xs:element name="vertical" type="xs:long"/>
314                        <xs:element name="depth" type="xs:long"/>
315                        <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
316                </xs:sequence>
317        </xs:complexType>
318       
319        <xs:complexType name="parameterType">
320                <xs:annotation>
321                        <xs:documentation>Parameter of resource. Allows defining additional resource parameters.
322                        Contains a list of parameter values or a list of key-value pairs.
323                        Attribute : name - denotes parameter name</xs:documentation>
324                </xs:annotation>
325                <xs:choice>
326                        <xs:element name="value" type="stringValueWithUnitType" minOccurs="0" maxOccurs="unbounded"/>
327                        <xs:sequence>
328                                <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
329                                        <xs:complexType>
330                                                <xs:annotation>
331                                                        <xs:documentation>Property of parameter. Allows defining additional properties of parameter as a list of values.
332                                                        Attribute : name - denotes property name</xs:documentation>
333                                                </xs:annotation>
334                                                <xs:sequence>
335                                                        <xs:element name="value" type="stringValueWithUnitType" minOccurs="0" maxOccurs="unbounded"/>
336                                                </xs:sequence>
337                                                <xs:attribute name="name" type="xs:string" use="required"/>
338                                        </xs:complexType>
339                                </xs:element>
340                        </xs:sequence>
341                </xs:choice>
342                <xs:attribute name="name" type="xs:string" use="required"/>
343        </xs:complexType>
344       
345        <xs:element name="environment">
346                <xs:annotation>
347                        <xs:documentation>Schema describing simulation environment</xs:documentation>
348                </xs:annotation>
349                <xs:complexType>
350                        <xs:sequence>
351                                <xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
352                                <xs:element name="timeEstimationPlugin" type="timeEstimationPluginType" minOccurs="0" maxOccurs="1"></xs:element>
353                                <xs:element name="resources">
354                                        <xs:annotation>
355                                                <xs:documentation>Description of resources</xs:documentation>
356                                        </xs:annotation>
357                                        <xs:complexType>
358                                                <xs:sequence>
359                                                        <xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
360                                                        <xs:element name="computingResource" type="computingResourceType" maxOccurs="unbounded"/>
361                                                        <xs:element name="scheduler" type="schedulerType" maxOccurs="unbounded"/>
362                                                </xs:sequence>
363                                        </xs:complexType>
364                                </xs:element>
365                                <xs:element name="templates" minOccurs="0">
366                                        <xs:annotation>
367                                                <xs:documentation>Definition of computing resource templates that can/will be used in resource description section </xs:documentation>
368                                        </xs:annotation>
369                                        <xs:complexType>
370                                                <xs:sequence>
371                                                        <xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
372                                                        <xs:element name="computingResourceTemplate" type="computingResourceTemplateType" maxOccurs="unbounded"/>
373                                                </xs:sequence>
374                                        </xs:complexType>
375                                </xs:element>
376                        </xs:sequence>
377                </xs:complexType>
378        </xs:element>
379
380</xs:schema>
Note: See TracBrowser for help on using the repository browser.