08.02.2013 Views

New Statistical Algorithms for the Analysis of Mass - FU Berlin, FB MI ...

New Statistical Algorithms for the Analysis of Mass - FU Berlin, FB MI ...

New Statistical Algorithms for the Analysis of Mass - FU Berlin, FB MI ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.4. QAD GRID WORKER 131<br />

2. This request triggers ano<strong>the</strong>r stored procedure that per<strong>for</strong>ms <strong>the</strong> following<br />

steps:<br />

� If <strong>the</strong>re exists a request within <strong>the</strong> last five minutes containing<br />

<strong>the</strong> same key or <strong>the</strong> same IP address <strong>the</strong> whole request is canceled.<br />

This is done to prevent abusive generation <strong>of</strong> worker accounts which<br />

might result in high load on <strong>the</strong> server.<br />

� A new database account is created with randomly generated user<br />

name and password.<br />

� A new public/private key pair <strong>for</strong> asymmetric RSA encryption is<br />

generated.<br />

� A new certificate is created that is based on <strong>the</strong> MD5 digest <strong>of</strong><br />

a combination <strong>of</strong> <strong>the</strong> requesting worker’s service id and <strong>the</strong> just<br />

generated public key <strong>for</strong> this worker.<br />

� A new table entry is created that contains <strong>the</strong>se in<strong>for</strong>mation (DB<br />

account, key pair, certificate) and is encrypted by <strong>the</strong> 2048bit key<br />

<strong>the</strong> worker sent at initialization as binary array. This entry is identified<br />

by <strong>the</strong> request id <strong>the</strong> server sent back to <strong>the</strong> worker.<br />

3. The worker fetches this in<strong>for</strong>mation by database query, decrypts it and<br />

splits it back to <strong>the</strong> single components. These are <strong>the</strong>n stored at <strong>the</strong><br />

worker’s host.<br />

4. A new worker entry is created into <strong>the</strong> worker table <strong>of</strong> <strong>the</strong> plat<strong>for</strong>m<br />

server.<br />

5. The worker is now registered and can log into <strong>the</strong> QAD Grid system<br />

with <strong>the</strong>se credentials.<br />

At later logins <strong>the</strong> worker simply au<strong>the</strong>nticates using <strong>the</strong>se credentials and<br />

announces itself at <strong>the</strong> Grid. This announcement includes a unique identification<br />

key that is created when a worker starts up and used to identify each<br />

worker, e.g. <strong>for</strong> status updates.<br />

5.4.3 Status Messages<br />

Since <strong>the</strong> workers and client machines are not directly controlled by <strong>the</strong> Grid<br />

(as opposed to a cluster) <strong>the</strong> Grid needs to get messages from <strong>the</strong> clients<br />

to get in<strong>for</strong>mation about <strong>the</strong>ir status. This is by updates to a status table<br />

that contains a record <strong>for</strong> each client currently registered at <strong>the</strong> Grid. These<br />

updates are sent every 5-300 seconds by <strong>the</strong> workers and contain <strong>the</strong> following<br />

in<strong>for</strong>mations:<br />

State: The state a worker is in is actually a text string. This string can be set<br />

during computations and can e.g. contain progress in<strong>for</strong>mation or state<br />

changes during algorithm execution. It is mainly intended <strong>for</strong> humans<br />

to get in<strong>for</strong>mation about <strong>the</strong> actual worker condition.<br />

Local load: This measures (estimates) <strong>the</strong> load <strong>of</strong> <strong>the</strong> host system <strong>the</strong> worker<br />

is running on, caused by <strong>for</strong>eign processes. We define load as <strong>the</strong> time<br />

needed by <strong>the</strong> operating system to give control once to each o<strong>the</strong>r process

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!