Changed lines at line 49
49: - on http request for new task: reply with the next command to execute and all parameters. __standard file format for a task?__
50: - on post: validate result and mark set and collect results __ok result validation on server__
51: - no more --parameter set-- __task?__ ~~(cleaner terminology)~~ to process: exit and display statistics. __statistics during runtime? per webpage?__
52: 1.1 Client
53: * Format of communication is specified in [Simple Parallel Exec#Protocol] section
54: * gets via command line: Session ID, server URL and port
55: - register at the server and fetch configuration
56: - check for the worker: if not already at local filesystem or the MD5 checksum is wrong: fetch it (for own platform) from the server
57: - fetch a task
58: - run worker
59: - check return code: if failed -> Post failture otherwise take the results and post them.
60: - fetch next task
61: - die if there is no more task or the server is not responding.
62: * different settings for termination: delete executeable (if fetched), delete the client program, delete results?
63:
64: 1 Protocol
65: 1.1 Configuration
66: - Request: GET \http://master/config?sessionID=SESSIONID
67: - Fail (due to wrong session id): 403 (Forbidden)
68: - Successful Reply: List of Key = Value pairs.
69: {code:none}
70: DeleteWorker=Yes/No
71: DeleteClient=Yes/No
72: Ping=#
73: {code}
74: 1.1 Ping (HTTP)
75: * Ping interval is given in seconds. 0 for no ping.
76: * Purpose of the ping is that the client realises if the server is stopped or finished or even dead.
77: - Request: GET \http://master/ping?sessionID=SESSIONID&ticket=TICKET
78: - Fail due to wrong session id: 403 (Forbidden)
79: - Successful, but ticket expired (task already done): 205 (Reset Content)
80: - Successful (keep on it!): 204 (No Content)
81: 1.1 Worker
82: - Request: GET \http://master/worker?sessionID=SESSIONID&name=NAME&platform=PLATFORM
83: - Fail (due to wrong session id, or wrong name): 403 (Forbidden)
84: - Fail (due to unsupported platform): 415 Unsupported Media Type
85: - Success: binary file
86: 1.1 Task
87: - Request: GET \http://master/task?sessionID=SESSIONID
88: - Fail (due to wrong session id): 403 (Forbidden)
89: - Fail (because no task left): 503 Service Unavailable
90: - Success:
91: {code:none}
92: Ticket=# (unique number within session (usually quite short (in the magnitude of the amount of tasks)))
93: CommandLine=commandline
94: [Input]*
95: File=filename (or "stdin")
96: --begin content--
97: real file content here (binary)
98: --end content--
99: - on http request for new task: reply with the next command to execute and all parameters.
100: - on http request for statistics (normal website): reply statistics webpage
101: - on post: validate result, mark task as completed and collect results
102: - no more task to process: exit and display statistics.
103: 1.1 Client
104: * Format of communication is specified in [Simple Parallel Exec#Protocol] section
105: * gets via command line: Session ID, server URL and port
106: - register at the server and fetch configuration
107: - check for the worker: if not already at local filesystem or the MD5 checksum is wrong: fetch it (for own platform) from the server
108: - fetch a task
109: - run worker
110: - check return code: if failed -> Post failture otherwise take the results and post them.
111: - fetch next task
112: - die if there is no more task or the server is not responding.
113: * different settings for termination: delete executeable (if fetched), delete the client program, delete results?
114:
115: 1 Protocol
116: 1.1 Configuration
117: - Request: GET \http://master/config?sessionID=SESSIONID
118: - Fail (due to wrong session id): 403 (Forbidden)
119: - Successful Reply: List of Key = Value pairs.
120: {code:none}
121: DeleteWorker=Yes/No
122: DeleteClient=Yes/No
123: Ping=#
124: {code}
125: 1.1 Ping (HTTP)
126: * Ping interval is given in seconds. 0 for no ping.
127: * Purpose of the ping is that the client realises if the server is stopped or finished or even dead.
128: - Request: GET \http://master/ping?sessionID=SESSIONID&ticket=TICKET
129: - Fail due to wrong session id: 403 (Forbidden)
130: - Successful, but ticket expired (task already done): 205 (Reset Content)
131: - Successful (keep on it!): 204 (No Content)
132: 1.1 Worker
133: - Request: GET \http://master/worker?sessionID=SESSIONID&name=NAME&platform=PLATFORM
134: - Fail (due to wrong session id, or wrong name): 403 (Forbidden)
135: - Fail (due to unsupported platform): 415 Unsupported Media Type
136: - Success: binary file
137: 1.1 Task
138: - Request: GET \http://master/task?sessionID=SESSIONID
139: - Fail (due to wrong session id): 403 (Forbidden)
140: - Fail (because no task left): 503 Service Unavailable
141: - Success:
142: {code:none}
143: Ticket=# (unique number within session)
144: CommandLine=commandline
145: [Input]*
146: File=filename (or "stdin")
147: Content=<<ENDOFCONTENT
148: real file content here (ASCII)
149: ENDOFCONTENT