[Globus Packages] / playground / java / glue / schema / base / glue / ce.xsd Repository:
ViewVC logotype

Annotation of /playground/java/glue/schema/base/glue/ce.xsd

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.6 - (view) (download) (as text)

1 : benc 1.1 <?xml version="1.0" encoding="UTF-8"?>
2 :    
3 : benc 1.2 <!-- TODO: insert globus license -->
4 :    
5 : benc 1.6 <!-- $Id: ce.xsd,v 1.5 2003/04/16 00:54:20 benc Exp $ -->
6 : benc 1.2
7 : benc 1.4 <schema targetNamespace="http://glue.base.ogsa.globus.org/ce/1.1"
8 :     xmlns:ce="http://glue.base.ogsa.globus.org/ce/1.1"
9 : benc 1.2 attributeFormDefault="qualified"
10 :     elementFormDefault="qualified"
11 :     xmlns="http://www.w3.org/2001/XMLSchema"
12 :     xml:lang="en" >
13 :    
14 :     <annotation><documentation>
15 : benc 1.1 This document is a translation of the CE component of the GLUE schema
16 :     into XML.
17 :    
18 : benc 1.2 Converted by benc@isi.edu of the Globus Project.
19 : benc 1.1
20 :     Method of attack:
21 :    
22 :     Each class in the CE UML diagram is converted to an XSD type. If the UML
23 :     class is called "Foo", then the XSD type is called "FooType".
24 :    
25 :     The UML schema splits nicely into two trees, one rooted at
26 :     ComputeElement, the other rooted at Cluster. These trees are
27 :     formed in the XSD by placing child elements within parents element
28 :     in the same was in the XSD as in the UML diagram.
29 :    
30 :     Elements that represent a class have the same name as that class.
31 :     So, if the UML class is called "Foo", then an element that
32 :     represents that would also be called "Foo".
33 : benc 1.6
34 :     There are some exceptions to this rule.
35 : benc 1.1
36 :     Every element is permitted arbitrary extension by means of
37 :     any elements and any attributes.
38 :    
39 : benc 1.2 A producer of GLUE information MAY add additional information into the
40 : benc 1.1 hierarchy, as long as it is in a different namespace.
41 :    
42 :     A consumer of GLUE information MUST ignore additional information that
43 :     it does not understand. It MUST NOT fail on the presence of
44 :     unrecognised properties in unknown namespaces.
45 :    
46 :     TODO: need to be more explicit about units.
47 :    
48 : benc 1.2 </documentation></annotation>
49 :    
50 : benc 1.4 <element name="Cluster" type="ce:ClusterType" />
51 : benc 1.2
52 : benc 1.4 <element name="ComputingElement" type="ce:ComputingElementType" />
53 :    
54 :    
55 :    
56 :     <attributeGroup name="IdentifiableEntity">
57 : benc 1.2 <annotation><documentation>
58 : benc 1.4 Named identifiable entities should have this attribute group.
59 : benc 1.2 </documentation></annotation>
60 : benc 1.4 <attribute name="Name" type="string"/>
61 :     <attribute name="UniqueID" type="string"/>
62 :     <attribute name="InformationServiceURL" type="anyURI"/>
63 :     </attributeGroup>
64 : benc 1.2
65 :    
66 : benc 1.4 <!-- ========== ComputingElement bits ========== -->
67 : benc 1.1
68 : benc 1.2 <complexType name="ComputingElementType">
69 :     <annotation><documentation>
70 :     Contains information about a ComputeElement.
71 :     </documentation></annotation>
72 : benc 1.1 <sequence>
73 :     <element name="Info" type="ce:InfoType" minOccurs="0" maxOccurs="1" />
74 :     <element name="State" type="ce:StateType" minOccurs="0" maxOccurs="1" />
75 :     <element name="Policy" type="ce:PolicyType" minOccurs="0" maxOccurs="1" />
76 :     <element name="Job" type="ce:JobType" minOccurs="0" maxOccurs="unbounded" />
77 :     <element name="AccessControlBase" type="ce:AccessControlBaseType" minOccurs="0" maxOccurs="1" />
78 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
79 : benc 1.1 </sequence>
80 :    
81 : benc 1.4 <attributeGroup ref="ce:IdentifiableEntity" />
82 :     <anyAttribute namespace="##other"/>
83 : benc 1.1 </complexType>
84 :    
85 : benc 1.3
86 :     <complexType name="InfoType">
87 :     <sequence>
88 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
89 : benc 1.3 </sequence>
90 :     <attribute name="LRMSType" type="string"/>
91 :     <attribute name="LRMSVersion" type="string"/>
92 :     <attribute name="GRAMVersion" type="string"/>
93 :     <attribute name="HostName" type="string"/>
94 :     <attribute name="GatekeeperPort" type="string"/>
95 :     <attribute name="TotalCPUs" type="string"/>
96 : benc 1.4 <anyAttribute namespace="##other"/>
97 : benc 1.3 </complexType>
98 :    
99 :    
100 :     <complexType name="StateType">
101 :     <sequence>
102 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
103 : benc 1.3 </sequence>
104 :    
105 :     <attribute name="Status" type="string">
106 :     <annotation><documentation>
107 :     TODO: This should actually be a restriction of some kind:
108 :     Queueing, Production, Closed, Draining
109 :     </documentation></annotation>
110 :     </attribute>
111 :    
112 :     <attribute name="TotalJobs" type="int"/>
113 :    
114 :     <attribute name="RunningJobs" type="int"/>
115 :    
116 :     <attribute name="WaitingJobs" type="int"/>
117 :    
118 :     <attribute name="WorstResponseTime" type="int">
119 :     <annotation><documentation>in seconds</documentation></annotation>
120 :     </attribute>
121 :    
122 :     <attribute name="EstimatedResponseTime" type="int">
123 :     <annotation><documentation>in seconds</documentation></annotation>
124 :     </attribute>
125 :    
126 :     <attribute name="FreeCPUs" type="int"/>
127 : benc 1.4 <anyAttribute namespace="##other"/>
128 : benc 1.3 </complexType>
129 :    
130 :    
131 :     <complexType name="PolicyType">
132 :     <sequence>
133 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
134 : benc 1.3 </sequence>
135 :    
136 :     <attribute name="MaxWallClockTime" type="int">
137 :     <annotation><documentation>in minutes</documentation></annotation>
138 :     </attribute>
139 :    
140 :     <attribute name="MaxCPUTime" type="int">
141 :     <annotation><documentation>in minutes</documentation></annotation>
142 :     </attribute>
143 :    
144 :     <attribute name="MaxTotalTime" type="int"/>
145 :     <attribute name="MaxRunningJobs" type="int"/>
146 :     <attribute name="Priority" type="int"/>
147 : benc 1.4 <anyAttribute namespace="##other"/>
148 : benc 1.3 </complexType>
149 :    
150 :    
151 :     <complexType name="JobType">
152 :     <sequence>
153 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
154 : benc 1.3 </sequence>
155 :     <attribute name="GlobalID" type="string"/>
156 :     <attribute name="LocalID" type="string"/>
157 :     <attribute name="LocalOwner" type="string"/>
158 :     <attribute name="GlobalOwner" type="string"/>
159 :     <attribute name="Status" type="string">
160 :     <annotation><documentation>
161 :     This can be one of SUBMITTED, WAITING, READY, SCHEDULED, RUNNING,
162 :     ABORTED, DONE, CLEARED, CHECKPOINTED
163 :     </documentation></annotation>
164 :     </attribute>
165 :     <attribute name="SchedulerSpecific" type="string"/>
166 : benc 1.4 <anyAttribute namespace="##other"/>
167 : benc 1.3 </complexType>
168 :    
169 :    
170 :     <complexType name="AccessControlBaseType" >
171 :     <sequence>
172 :     <element name="Rule" type="string" minOccurs="0" maxOccurs="unbounded" />
173 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
174 : benc 1.3 </sequence>
175 : benc 1.4 <anyAttribute namespace="##other"/>
176 : benc 1.3 </complexType>
177 :    
178 : benc 1.1
179 : benc 1.2 <!-- ========== Cluster definitions ========== -->
180 : benc 1.1
181 :     <complexType name="ClusterType">
182 : benc 1.2 <annotation><documentation>
183 :     Contains information about a Cluster. This consists of a name,
184 :     unique ID, and one or more subclusters.
185 :     </documentation></annotation>
186 : benc 1.1 <sequence>
187 : benc 1.4 <element name="SubCluster" type="ce:SubClusterType" minOccurs="0" maxOccurs="unbounded"/>
188 :     <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
189 : benc 1.1 </sequence>
190 : benc 1.4 <attributeGroup ref="ce:IdentifiableEntity" />
191 :     <anyAttribute namespace="##other"/>
192 : benc 1.1 </complexType>
193 :    
194 : benc 1.2
195 : benc 1.4 <complexType name="SubClusterOrHostType">
196 : benc 1.2 <annotation><documentation>
197 :     A subcluster contains at least one host, as well as having properties
198 : benc 1.1 associated with it that represent the state of every host within the
199 :     subcluster.
200 :    
201 :     TODO: need some specification of uniqueness. It is reasonable for
202 :     fairly simple type such as architecture to say that it MAY NOT appear
203 :     on both a Host and its containing SubCluster, but for filesystems
204 :     (for example) it might be desirable to put some filesystems on the
205 : benc 1.2 SubCluster (eg. nfs or pvfs) and some on the
206 : benc 1.1 Hosts (eg. /scratch)
207 : benc 1.2 </documentation></annotation>
208 : benc 1.1 <sequence>
209 :     <element name="Benchmark" type="ce:BenchmarkType" minOccurs="0" />
210 :     <element name="Processor" type="ce:ProcessorType" minOccurs="0" />
211 :     <element name="MainMemory" type="ce:MainMemoryType" minOccurs="0" />
212 :     <element name="OperatingSystem" type="ce:OperatingSystemType" minOccurs="0" />
213 :     <element name="StorageDevice" type="ce:StorageDeviceType" maxOccurs="unbounded" minOccurs="0" />
214 :     <element name="Architecture" type="ce:ArchitectureType" minOccurs="0" />
215 :     <element name="ApplicationSoftware" type="ce:ApplicationSoftwareType" minOccurs="0" />
216 :     <element name="FileSystem" type="ce:FileSystemType" maxOccurs="unbounded" minOccurs="0"/>
217 :     <element name="NetworkAdapter" type="ce:NetworkAdapterType" maxOccurs="unbounded" minOccurs="0"/>
218 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
219 : benc 1.1 </sequence>
220 : benc 1.4 <attributeGroup ref="ce:IdentifiableEntity" />
221 :     <anyAttribute namespace="##other"/>
222 : benc 1.1 </complexType>
223 :    
224 : benc 1.4 <complexType name="SubClusterType">
225 :     <annotation><documentation>
226 :     </documentation></annotation>
227 :     <complexContent>
228 :     <extension base="ce:SubClusterOrHostType">
229 :     <sequence>
230 :     <element name="Host" type="ce:HostType" minOccurs="0" maxOccurs="unbounded"/>
231 :     </sequence>
232 :     </extension>
233 :     </complexContent>
234 :     </complexType>
235 : benc 1.1
236 : benc 1.2 <complexType name="HostType">
237 :     <annotation><documentation>
238 :     A host may have any of the properties of a subcluster.
239 : benc 1.1
240 : benc 1.2 TODO: really a Host shouldn't be allowed another Host below it? Can I
241 :     specify a restriction in here to limit the number of subordinate Hosts
242 :     to 0, or some trick like that?
243 :     </documentation></annotation>
244 : benc 1.1 <complexContent>
245 : benc 1.4 <extension base="ce:SubClusterOrHostType">
246 : benc 1.1 <sequence>
247 :     <element name="ProcessorLoad" type="ce:LoadType" minOccurs="0" />
248 :     <element name="SMPLoad" type="ce:LoadType" minOccurs="0" />
249 :     </sequence>
250 :     </extension>
251 :     </complexContent>
252 :     </complexType>
253 :    
254 : benc 1.2
255 : benc 1.1 <complexType name="LoadType">
256 : benc 1.2 <annotation><documentation>
257 :     Represents the unix-style CPU load-average multiplied by 100.
258 :     </documentation></annotation>
259 : benc 1.1 <sequence>
260 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
261 : benc 1.1 </sequence>
262 : benc 1.5 <attribute name="Last1Min" type="int"/>
263 :     <attribute name="Last5Min" type="int"/>
264 :     <attribute name="Last15Min" type="int"/>
265 : benc 1.4 <anyAttribute namespace="##other"/>
266 : benc 1.1 </complexType>
267 :    
268 : benc 1.2
269 : benc 1.1 <complexType name="BenchmarkType">
270 :     <sequence>
271 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
272 : benc 1.1 </sequence>
273 :     <attribute name="SI00" type="float"/>
274 :     <attribute name="SF00" type="float"/>
275 : benc 1.4 <anyAttribute namespace="##other"/>
276 : benc 1.1 </complexType>
277 :    
278 : benc 1.2
279 : benc 1.1 <complexType name="ProcessorType">
280 :     <sequence>
281 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
282 : benc 1.1 </sequence>
283 :     <attribute name="Vendor" type="string"/>
284 :     <attribute name="Model" type="string"/>
285 :     <attribute name="Version" type="string"/>
286 :     <attribute name="ClockSpeed" type="int"/>
287 :     <attribute name="InstructionSet" type="string"/>
288 :     <attribute name="OtherProcessorDescription" type="string"/>
289 : benc 1.3 <attribute name="CacheL1" type="int">
290 :     <annotation><documentation>in kb</documentation></annotation>
291 :     </attribute>
292 :    
293 :     <attribute name="CacheL1I" type="int">
294 :     <annotation><documentation>in kb</documentation></annotation>
295 :     </attribute>
296 :    
297 :     <attribute name="CacheL1D" type="int">
298 :     <annotation><documentation>in kb</documentation></annotation>
299 :     </attribute>
300 :    
301 :     <attribute name="CacheL2" type="int">
302 :     <annotation><documentation>in kb</documentation></annotation>
303 :     </attribute>
304 :    
305 : benc 1.4 <anyAttribute namespace="##other"/>
306 : benc 1.1 </complexType>
307 :    
308 : benc 1.2
309 : benc 1.1 <complexType name="MainMemoryType">
310 :     <sequence>
311 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
312 : benc 1.1 </sequence>
313 : benc 1.3 <attribute name="RAMSize" type="long"> <!-- is long big enough here? -->
314 :     <annotation><documentation>in MB</documentation></annotation>
315 :     </attribute>
316 :    
317 :     <attribute name="RAMAvailable" type="long">
318 :     <annotation><documentation>in MB</documentation></annotation>
319 :     </attribute>
320 :    
321 :     <attribute name="VirtualSize" type="long">
322 :     <annotation><documentation>in MB</documentation></annotation>
323 :     </attribute>
324 :    
325 :     <attribute name="VirtualAvailable" type="long">
326 :     <annotation><documentation>in MB</documentation></annotation>
327 :     </attribute>
328 :    
329 : benc 1.4 <anyAttribute namespace="##other"/>
330 : benc 1.1 </complexType>
331 :    
332 : benc 1.2
333 : benc 1.1 <complexType name="OperatingSystemType">
334 :     <sequence>
335 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
336 : benc 1.1 </sequence>
337 :     <attribute name="Name" type="string"/>
338 :     <attribute name="Release" type="string"/>
339 :     <attribute name="Version" type="string"/>
340 : benc 1.4 <anyAttribute namespace="##other"/>
341 : benc 1.1 </complexType>
342 :    
343 : benc 1.2
344 : benc 1.1 <complexType name="StorageDeviceType">
345 :     <sequence>
346 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
347 : benc 1.1 </sequence>
348 :     <attribute name="Name" type="string"/>
349 :     <attribute name="Type" type="string"/>
350 :     <attribute name="TransferRate" type="int"/>
351 :     <attribute name="Size" type="int"/>
352 :     <attribute name="AvailableSpace" type="int"/>
353 : benc 1.4 <anyAttribute namespace="##other"/>
354 : benc 1.1 <!-- are these ints big enough? -->
355 :     </complexType>
356 :    
357 : benc 1.2
358 : benc 1.1 <complexType name="NetworkAdapterType">
359 :     <sequence>
360 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
361 : benc 1.1 </sequence>
362 :     <attribute name="Name" type="string"/>
363 :     <attribute name="IPAddress" type="string"/> <!-- restrict syntax here? can it be IPv6? -->
364 : benc 1.3 <attribute name="MTU" type="int">
365 :     <annotation><documentation>in bytes</documentation></annotation>
366 :     </attribute>
367 : benc 1.1 <attribute name="OutboundIP" type="boolean"/>
368 :     <attribute name="InboundIP" type="boolean"/>
369 : benc 1.4 <anyAttribute namespace="##other"/>
370 : benc 1.1 </complexType>
371 :    
372 : benc 1.2
373 : benc 1.1 <complexType name="ArchitectureType">
374 :     <sequence>
375 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
376 : benc 1.1 </sequence>
377 :     <attribute name="PlatformType" type="string"/>
378 :     <attribute name="SMPSize" type="int"/>
379 : benc 1.4 <anyAttribute namespace="##other"/>
380 : benc 1.1 </complexType>
381 :    
382 : benc 1.2
383 : benc 1.1 <!-- this deviates a little from the usual method of rendering the UML
384 : benc 1.2 diagram into XSD. Each RuntimeEnvironment is made an element to provide
385 :     somewhere to put any elements.
386 : benc 1.1 -->
387 :     <complexType name="ApplicationSoftwareType">
388 :     <sequence>
389 :     <element name="RunTimeEnvironment" type="ce:RunTimeEnvironmentType" minOccurs="0" maxOccurs="unbounded"/>
390 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
391 : benc 1.1 </sequence>
392 : benc 1.4 <anyAttribute namespace="##other"/>
393 : benc 1.1 </complexType>
394 :    
395 : benc 1.2
396 : benc 1.1 <complexType name="RunTimeEnvironmentType">
397 :     <sequence>
398 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
399 : benc 1.1 </sequence>
400 :     <attribute name="Name" type="string" />
401 :     </complexType>
402 : benc 1.2
403 : benc 1.1
404 :     <!-- TODO: other filesystem types need implementing. -->
405 :     <complexType name="FileSystemType">
406 :     <sequence>
407 : benc 1.4 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
408 : benc 1.1 </sequence>
409 :     <attribute name="Name" type="string" />
410 :     <attribute name="Root" type="string" />
411 : benc 1.3 <attribute name="Size" type="long">
412 :     <annotation><documentation>in MB</documentation></annotation>
413 :     </attribute>
414 :    
415 :     <attribute name="AvailableSpace" type="long">
416 :     <annotation><documentation>in MB</documentation></annotation>
417 :     </attribute>
418 :    
419 : benc 1.1 <attribute name="ReadOnly" type="boolean" />
420 :     <attribute name="Type" type="string" />
421 : benc 1.4 <anyAttribute namespace="##other"/>
422 : benc 1.6 </complexType>
423 :    
424 :     <complexType name="RemoteFileSystemType">
425 :     <complexContent>
426 :     <extension base="ce:FileSystemType" />
427 :     </complexContent>
428 :     </complexType>
429 :    
430 :     <complexType name="LocalFileSystemType">
431 :     <complexContent>
432 :     <extension base="ce:FileSystemType">
433 :     <sequence>
434 :     <element name="export" type="ce:DirectoryType" minOccurs="0" maxOccurs="unbounded"/>
435 :     </sequence>
436 :     </extension>
437 :     </complexContent>
438 :     </complexType>
439 :    
440 :    
441 :     <complexType name="FileType">
442 :     <sequence>
443 :     <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
444 :     </sequence>
445 :     <attribute name="Name" type="string" />
446 :     <attribute name="Size" type="int" />
447 :     <attribute name="CreationDate" type="dateTime" />
448 :     <attribute name="LastModified" type="dateTime" />
449 :     <attribute name="LastAccessed" type="dateTime" />
450 :     <attribute name="Latency" type="duration">
451 :     <annotation><documentation>
452 :     In UML version, this is an int number of seconds
453 :     </documentation></annotation>
454 :     </attribute>
455 :     <attribute name="LifeTime" type="dateTime" />
456 :     <attribute name="Owner" type="string" />
457 :     <anyAttribute namespace="##other"/>
458 :     </complexType>
459 :    
460 :     <complexType name="DirectoryType">
461 :     <complexContent>
462 :     <extension base="ce:FileType">
463 :     <sequence>
464 :     <element name="File" type="FileType" minOccurs="0" maxOccurs="unbounded">
465 :     <annotation><documentation>
466 :     From the UML diagram: Directory contains file
467 :     </documentation></annotation>
468 :     </element>
469 :     <element name="mount" minOccurs="0" maxOccurs="unbounded">
470 :     <annotation><documentation>
471 :     The FileSystemName attribute should refer to the name
472 :     of a FileSystem object. From the UML diagram: mount.
473 :     </documentation></annotation>
474 :     <complexType>
475 :     <attribute name="FileSystemName" type="string" />
476 :     </complexType>
477 :     </element>
478 :    
479 :     </sequence>
480 :     </extension>
481 :     </complexContent>
482 : benc 1.1 </complexType>
483 :    
484 :     </schema>
485 :    
486 :    

Webmaster
ViewVC Help
Powered by ViewVC 1.0.1