cpee 1.3.220 → 1.3.221
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cockpit/js/instance.js +3 -3
- data/cockpit/js/wfadaptor.js +13 -8
- data/cpee.gemspec +2 -1
- data/log/chain.xml +27 -0
- data/log/logoverlay.xml +2 -2
- data/log/non_tamp.rb +156 -0
- data/log/yaml/server.rb +12 -12
- data/server/instances/313/notifications/crisp/consumer-secret +1 -0
- data/server/instances/313/notifications/crisp/producer-secret +1 -0
- data/server/instances/313/notifications/crisp/subscription.xml +7 -0
- data/server/instances/313/notifications/logging/consumer-secret +1 -0
- data/server/instances/313/notifications/logging/producer-secret +1 -0
- data/server/instances/313/notifications/logging/subscription.xml +7 -0
- data/server/instances/313/notifications/logging_yaml/consumer-secret +1 -0
- data/server/instances/313/notifications/logging_yaml/producer-secret +1 -0
- data/server/instances/313/notifications/logging_yaml/subscription.xml +7 -0
- data/server/instances/313/properties.xml +524 -0
- data/server/instances/6/properties.xml +5 -2
- data/server/instances/662/notifications/crisp/consumer-secret +1 -0
- data/server/instances/662/notifications/crisp/producer-secret +1 -0
- data/server/instances/662/notifications/crisp/subscription.xml +7 -0
- data/server/instances/662/notifications/logging/consumer-secret +1 -0
- data/server/instances/662/notifications/logging/producer-secret +1 -0
- data/server/instances/662/notifications/logging/subscription.xml +7 -0
- data/server/instances/662/notifications/logging_yaml/consumer-secret +1 -0
- data/server/instances/662/notifications/logging_yaml/producer-secret +1 -0
- data/server/instances/662/notifications/logging_yaml/subscription.xml +7 -0
- data/server/instances/662/properties.xml +427 -0
- data/server/instances/663/properties.xml +31 -0
- data/server/instances/664/properties.xml +425 -0
- data/server/instances/665/properties.xml +425 -0
- data/server/instances/666/properties.xml +427 -0
- data/server/instances/667/properties.xml +427 -0
- data/server/instances/668/properties.xml +425 -0
- data/server/instances/669/properties.xml +425 -0
- data/server/instances/670/properties.xml +31 -0
- data/server/instances/671/properties.xml +158 -0
- data/server/instances/672/properties.xml +199 -0
- data/server/instances/673/properties.xml +52 -0
- metadata +49 -5
- data/server/instances/33/notifications/d1b6606197334cda2bffaa2ea02707bf/consumer-secret +0 -1
- data/server/instances/33/notifications/d1b6606197334cda2bffaa2ea02707bf/producer-secret +0 -1
- data/server/instances/33/notifications/d1b6606197334cda2bffaa2ea02707bf/subscription.xml +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c23db9cd13cd8f8fdfcdd918d389f58ca66024fd
|
4
|
+
data.tar.gz: 5676d9a8d659f96c1f63cddd723fe94c06c96d04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2bc178e35aa0482f6485e2f13596390c00506e40c131f346998c17e5179ff4ac93fd7fc68eaad82eb0560fc02857c5ee41d3fad96000d636d1d58c680a3dc89
|
7
|
+
data.tar.gz: a9c21bed26e25f5f820dc8415b33aef41606f006d0f7e932d0a141a083743e5f423d81bf04e5782f3e5403abc9d32d7b5b564e025003e67a423ff566ea4a0cfc
|
data/cockpit/js/instance.js
CHANGED
@@ -85,8 +85,8 @@ $(document).ready(function() {// {{{
|
|
85
85
|
});
|
86
86
|
var q = $.parseQuerySimple();
|
87
87
|
if (q.min || q.min == "") {
|
88
|
-
ui_toggle_vis_tab($('#instance
|
89
|
-
ui_toggle_vis_tab($('#parameters
|
88
|
+
ui_toggle_vis_tab($('#instance'));
|
89
|
+
ui_toggle_vis_tab($('#parameters'));
|
90
90
|
}
|
91
91
|
if (q.monitor && q.load) {
|
92
92
|
$("input[name=instance-url]").val(q.monitor);
|
@@ -208,7 +208,7 @@ function monitor_instance(load,exec) {// {{{
|
|
208
208
|
history.replaceState({}, '', '?' + (q.min || q.min=="" ? "min&" : "") + 'monitor='+url);
|
209
209
|
|
210
210
|
// Change url to return to current instance when reloading (because new subscription is made)
|
211
|
-
$("input[name=votecontinue]").
|
211
|
+
$("input[name=votecontinue]").prop( "checked", false );
|
212
212
|
subscription_state = 'less';
|
213
213
|
|
214
214
|
$.ajax({
|
data/cockpit/js/wfadaptor.js
CHANGED
@@ -179,10 +179,11 @@ function WfIllustrator(wf_adaptor) { // View {{{
|
|
179
179
|
} // }}}
|
180
180
|
// }}}
|
181
181
|
// Helper Functions {{{
|
182
|
-
var draw_label = this.draw.draw_label = function (
|
182
|
+
var draw_label = this.draw.draw_label = function (tname, id, label, row, col, group) { // {{{
|
183
183
|
var g = $X('<text class="label" transform="translate(' + String((col*self.width)-((self.width*0.39))) + ',' + String(row*self.height+20-((self.height*0.74))) + ')" xmlns="http://www.w3.org/2000/svg"></text>');
|
184
184
|
g.text((label != '' ? '◤ ' : '') + label);
|
185
|
-
|
185
|
+
bind_event(g,tname);
|
186
|
+
if(group) { group.find('g.element[element-id=' + id + ']').append(g); }
|
186
187
|
else {self.svg.container.children('g:first').append(g);}
|
187
188
|
return g;
|
188
189
|
} // }}}
|
@@ -205,14 +206,18 @@ function WfIllustrator(wf_adaptor) { // View {{{
|
|
205
206
|
$(g[0].childNodes[0]).append(sym);
|
206
207
|
|
207
208
|
// Binding events for symbol
|
208
|
-
|
209
|
-
|
210
|
-
if(event_name == 'mousedown') sym.bind('contextmenu', false);
|
211
|
-
}
|
209
|
+
bind_event(sym,tname);
|
210
|
+
|
212
211
|
if(group) {group.append(g);}
|
213
212
|
else {self.svg.container.children('g:first').append(g);}
|
214
213
|
return g;
|
215
214
|
} // }}}
|
215
|
+
var bind_event = this.draw.bind_event = function(sym,tname) { //{{{
|
216
|
+
for(event_name in adaptor.elements[tname]) {
|
217
|
+
sym.bind(event_name, {'function_call':adaptor.elements[tname][event_name]}, function(e) { e.data.function_call($(this).parents('.element:first').attr('element-id'),e)});
|
218
|
+
if(event_name == 'mousedown') sym.bind('contextmenu', false);
|
219
|
+
}
|
220
|
+
} //}}}
|
216
221
|
var draw_border = this.draw.draw_border = function(id, p1, p2, group) { // {{{
|
217
222
|
group.prepend($X('<rect element-id="' + id + '" x="' + (p1.col-0.50)*self.width + '" ' +
|
218
223
|
'y="' + (p1.row-0.80)*self.height + '" ' +
|
@@ -306,7 +311,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
306
311
|
if (illustrator.compact == false) {
|
307
312
|
if (labels.length > 0) {
|
308
313
|
_.each(labels,function(a,key) {
|
309
|
-
illustrator.draw.draw_label(a.row, graph.max.col + 1,
|
314
|
+
illustrator.draw.draw_label(a.tname, a.element_id, a.label, a.row, graph.max.col + 1, graph.svg);
|
310
315
|
});
|
311
316
|
graph.max.col += 4;
|
312
317
|
}
|
@@ -509,7 +514,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
509
514
|
if (illustrator.elements[tname].label) {
|
510
515
|
var lab = illustrator.elements[tname].label(this);
|
511
516
|
$(this).attr('svg-label', lab);
|
512
|
-
labels.push({row: pos.row, element_id: $(this).attr('svg-id'), label: lab});
|
517
|
+
labels.push({row: pos.row, element_id: $(this).attr('svg-id'), tname: tname, label: lab});
|
513
518
|
} else {
|
514
519
|
$(this).attr('svg-label', '');
|
515
520
|
} // }}}
|
data/cpee.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee"
|
3
|
-
s.version = "1.3.
|
3
|
+
s.version = "1.3.221"
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.license = "LGPL-3.0"
|
6
6
|
s.summary = "Preliminary release of cloud process execution engine (cpee). If you just need workflow execution, without a rest/xmpp service exposing it, then use WEEL"
|
@@ -25,4 +25,5 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_runtime_dependency 'weel', '~> 1.99'
|
26
26
|
s.add_runtime_dependency 'savon', '~> 2'
|
27
27
|
s.add_runtime_dependency 'highline', '~> 1.6'
|
28
|
+
s.add_runtime_dependency 'json', '~>2.1'
|
28
29
|
end
|
data/log/chain.xml
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
<declaration xmlns="http://riddl.org/ns/declaration/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
|
2
|
+
<interface name="events">
|
3
|
+
<xi:include href="http://www.riddl.org/ns/common-patterns/notifications-consumer/1.0/consumer.xml"/>
|
4
|
+
</interface>
|
5
|
+
<interface name="cpee" location="http://cpee.org:9298">
|
6
|
+
<xi:include href="http://cpee.org:9298/?riddl-description"/>
|
7
|
+
</interface>
|
8
|
+
<interface name="logoverlay">
|
9
|
+
<xi:include href="logoverlay.xml"/>
|
10
|
+
</interface>
|
11
|
+
|
12
|
+
<facade>
|
13
|
+
<tile>
|
14
|
+
<layer name="cpee"/>
|
15
|
+
</tile>
|
16
|
+
<tile>
|
17
|
+
<layer name="events">
|
18
|
+
<apply-to>/log</apply-to>
|
19
|
+
</layer>
|
20
|
+
</tile>
|
21
|
+
<tile>
|
22
|
+
<layer name="logoverlay">
|
23
|
+
<apply-to>/chain</apply-to>
|
24
|
+
</layer>
|
25
|
+
</tile>
|
26
|
+
</facade>
|
27
|
+
</declaration>
|
data/log/logoverlay.xml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
<description datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://riddl.org/ns/description/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
|
1
|
+
<description datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://riddl.org/ns/description/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
|
2
2
|
<message name="logresponse">
|
3
|
-
<parameter name="file" mimetype="
|
3
|
+
<parameter name="file" mimetype="*"/>
|
4
4
|
</message>
|
5
5
|
|
6
6
|
<resource>
|
data/log/non_tamp.rb
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
require 'pp'
|
3
|
+
require 'json'
|
4
|
+
require 'rubygems'
|
5
|
+
require 'fileutils'
|
6
|
+
require 'riddl/server'
|
7
|
+
require 'riddl/client'
|
8
|
+
require 'riddl/utils/notifications_producer'
|
9
|
+
require 'riddl/utils/properties'
|
10
|
+
require 'riddl/utils/downloadify'
|
11
|
+
require 'riddl/utils/turtle'
|
12
|
+
require 'time'
|
13
|
+
|
14
|
+
class FileServe < Riddl::Implementation
|
15
|
+
def response
|
16
|
+
path = File.file?(@a[0]) ? @a[0] : "#{@a[0]}/#{@r[@match.length-1..-1].join('/')}".gsub(/\/+/,'/')
|
17
|
+
|
18
|
+
if File.directory?(path)
|
19
|
+
@status = 404
|
20
|
+
return []
|
21
|
+
end
|
22
|
+
if File.exists?(path)
|
23
|
+
fmt = @a[1] || begin
|
24
|
+
mt = MIME::Types.type_for(path).first
|
25
|
+
if mt.nil?
|
26
|
+
'text/plain;charset=utf-8'
|
27
|
+
else
|
28
|
+
apx = ''
|
29
|
+
if mt.ascii?
|
30
|
+
tstr = File.read(path,CharlockHolmes::EncodingDetector::DEFAULT_BINARY_SCAN_LEN)
|
31
|
+
apx = ';charset=' + CharlockHolmes::EncodingDetector.detect(tstr)[:encoding]
|
32
|
+
end
|
33
|
+
mt.to_s + apx
|
34
|
+
end
|
35
|
+
end
|
36
|
+
return Riddl::Parameter::Complex.new('file',fmt,File.open(path,'r'))
|
37
|
+
end
|
38
|
+
@status = 404
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class Logging < Riddl::Implementation #{{{
|
43
|
+
LOGTEMPLATE = {"log" =>
|
44
|
+
{"extension" =>
|
45
|
+
{ "time" =>"http://www.xes-standard.org/time.xesext",
|
46
|
+
"concept" => "http://www.xes-standard.org/concept.xesext",
|
47
|
+
"organisational" => "http://www.xes-standard.org/org.xesext",
|
48
|
+
"lifecylce" => "http://www.xes-standard.org/lifecycle.xesext"
|
49
|
+
},
|
50
|
+
"global" =>
|
51
|
+
{
|
52
|
+
"trace" =>{"concept:name" => "__INVALID__"},
|
53
|
+
"event"=> {
|
54
|
+
"concept:name"=>"__INVALID__",
|
55
|
+
"concept:endpoint" => "",
|
56
|
+
"id:id" => "",
|
57
|
+
"lifecycle:transition" => "complete",
|
58
|
+
"time:timestamp" => ""
|
59
|
+
}
|
60
|
+
},
|
61
|
+
"classifier" =>{
|
62
|
+
"Data" => "data_send data_received",
|
63
|
+
"Data_Received"=>"data_receiver",
|
64
|
+
"Data_Send" => "data_send"
|
65
|
+
},
|
66
|
+
"trace" => {}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
def doc(event_name,log_dir,instancenr,notification)
|
73
|
+
x = Time.now
|
74
|
+
log = LOGTEMPLATE
|
75
|
+
uuid = notification['instance_uuid']
|
76
|
+
activity = notification["activity"]
|
77
|
+
parameters = notification['parameters']
|
78
|
+
receiving = notification['received']
|
79
|
+
time_added=false
|
80
|
+
log["log"]["trace"]["concept:name"] ||= "Instance #{instancenr}" unless log["log"]["trace"]["concept:name"]
|
81
|
+
if File.exists? log_dir+'/log.xes'
|
82
|
+
previous_hash = File.read(log_dir+'/last.event').strip
|
83
|
+
else
|
84
|
+
File.open(log_dir+'/log.xes','w'){|f| f.puts log.to_yaml}
|
85
|
+
previous_hash = "0"
|
86
|
+
end
|
87
|
+
event = {}
|
88
|
+
event["trace:id"] = instancenr
|
89
|
+
if parameters && parameters.has_key?('label')
|
90
|
+
event["concept:name"] = parameters["label"]
|
91
|
+
else
|
92
|
+
event["concept:name"]= log["log"]["trace"]["concept:name"]
|
93
|
+
end
|
94
|
+
event["concept:endpoint"] = notification["endpoint"] if notification["endpoint"]
|
95
|
+
event["id:id"] = activity
|
96
|
+
unless event_name=='receiving'
|
97
|
+
event["lifecycle:transition"]= event_name=='done'?"complete":"start"
|
98
|
+
else
|
99
|
+
event["lifecycle:transition"]="unknown"
|
100
|
+
end
|
101
|
+
data_send = ((parameters["arguments"].nil? ? [] : parameters["arguments"]) rescue [])
|
102
|
+
event["list"] = {"data_send" => data_send} unless data_send.empty?
|
103
|
+
if receiving && receiving.any?
|
104
|
+
if event.has_key? "list"
|
105
|
+
event["list"]["data_received"] ||= receiving
|
106
|
+
else
|
107
|
+
event["list"] = {"data_receiver" => receiving}
|
108
|
+
end
|
109
|
+
end
|
110
|
+
event["time:timestamp"]= Time.now.iso8601 unless time_added
|
111
|
+
event["bc:hash"]= calc_hash(event.to_yaml,previous_hash)
|
112
|
+
event["bc:previous_hash"]= previous_hash
|
113
|
+
File.open(log_dir+'/log.xes',"a") do |f|
|
114
|
+
f << {'event' => event}.to_yaml
|
115
|
+
end
|
116
|
+
File.open(log_dir+'/last.event',"w"){ |fl| fl << event["bc:hash"] }
|
117
|
+
end
|
118
|
+
|
119
|
+
def calc_hash(data, previous_hash) # data includes timestamp, index and payload
|
120
|
+
sha = Digest::SHA256.new
|
121
|
+
sha.update(data.to_s + previous_hash)
|
122
|
+
sha.hexdigest
|
123
|
+
end
|
124
|
+
|
125
|
+
def response
|
126
|
+
log_dir = @a[0]
|
127
|
+
library = Riddl::Client.new(@h['CPEE_INSTANCE'] + "/properties/values/attributes/bc")
|
128
|
+
status, res = library.get
|
129
|
+
if status == 200
|
130
|
+
topic = @p[1].value
|
131
|
+
event_name = @p[2].value
|
132
|
+
notification = JSON.parse(@p[3].value)
|
133
|
+
if topic == 'state' && notification['state'] == 'ready' && XML::Smart.string(res[0].value.read).find('string(/*)') == "start"
|
134
|
+
FileUtils.rm_f Dir.glob(log_dir+'/*')
|
135
|
+
end
|
136
|
+
if topic == 'activity'
|
137
|
+
instancenr = @h['CPEE_INSTANCE'].split('/').last
|
138
|
+
doc(event_name,log_dir,instancenr,notification)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end #}}}
|
143
|
+
|
144
|
+
Riddl::Server.new(::File.dirname(__FILE__) + '/chain.xml', :host => "coruscant.wst.univie.ac.at", :port => 9399) do #{{{
|
145
|
+
accessible_description true
|
146
|
+
cross_site_xhr true
|
147
|
+
|
148
|
+
@riddl_opts[:log_dir] = ::File.dirname(__FILE__) + "/non_tamp"
|
149
|
+
|
150
|
+
interface 'events' do
|
151
|
+
run Logging, @riddl_opts[:log_dir] if post 'event'
|
152
|
+
end
|
153
|
+
interface 'logoverlay' do |r|
|
154
|
+
run FileServe, "#{@riddl_opts[:log_dir]}/log.xes","application/x-yaml" if get '*'
|
155
|
+
end
|
156
|
+
end.loop! #}}}
|
data/log/yaml/server.rb
CHANGED
@@ -13,20 +13,20 @@ require 'riddl/utils/turtle'
|
|
13
13
|
require 'time'
|
14
14
|
|
15
15
|
class Logging < Riddl::Implementation #{{{
|
16
|
-
LOGTEMPLATE = {"log" =>
|
16
|
+
LOGTEMPLATE = {"log" =>
|
17
17
|
{"extension" =>
|
18
|
-
{ "time" =>"http://www.xes-standard.org/time.xesext",
|
19
|
-
"concept" => "http://www.xes-standard.org/concept.xesext",
|
20
|
-
"organisational" => "http://www.xes-standard.org/org.xesext",
|
18
|
+
{ "time" =>"http://www.xes-standard.org/time.xesext",
|
19
|
+
"concept" => "http://www.xes-standard.org/concept.xesext",
|
20
|
+
"organisational" => "http://www.xes-standard.org/org.xesext",
|
21
21
|
"lifecylce" => "http://www.xes-standard.org/lifecycle.xesext"
|
22
22
|
},
|
23
|
-
"global" =>
|
23
|
+
"global" =>
|
24
24
|
{
|
25
25
|
"trace" =>{"concept:name" => "__INVALID__"},
|
26
26
|
"event"=> {
|
27
27
|
"concept:name"=>"__INVALID__",
|
28
|
-
"concept:endpoint" => "",
|
29
|
-
"id:id" => "",
|
28
|
+
"concept:endpoint" => "",
|
29
|
+
"id:id" => "",
|
30
30
|
"lifecycle:transition" => "complete",
|
31
31
|
"time:timestamp" => ""
|
32
32
|
}
|
@@ -68,9 +68,9 @@ class Logging < Riddl::Implementation #{{{
|
|
68
68
|
event["list"] = {"data_send" => data_send} unless data_send.empty?
|
69
69
|
if receiving && receiving.any?
|
70
70
|
if event.has_key? "list"
|
71
|
-
event["list"]["data_received"] ||= receiving
|
71
|
+
event["list"]["data_received"] ||= receiving
|
72
72
|
else
|
73
|
-
event["list"] = {"data_receiver" => receiving}
|
73
|
+
event["list"] = {"data_receiver" => receiving}
|
74
74
|
end
|
75
75
|
end
|
76
76
|
event["time:timestamp"]= Time.now.iso8601 unless time_added
|
@@ -83,7 +83,7 @@ class Logging < Riddl::Implementation #{{{
|
|
83
83
|
z = y-x
|
84
84
|
File.open(log_dir+'/'+uuid+'/time.file',"a+"){ |f| f<< z << "\n" }
|
85
85
|
end
|
86
|
-
|
86
|
+
|
87
87
|
def rec_unjson(value,list,key)
|
88
88
|
case value
|
89
89
|
when Array then
|
@@ -115,13 +115,13 @@ end #}}}
|
|
115
115
|
Riddl::Server.new(::File.dirname(__FILE__) + '/log.xml', :host => "coruscant.wst.univie.ac.at", :port => 9300) do #{{{
|
116
116
|
accessible_description true
|
117
117
|
cross_site_xhr true
|
118
|
-
|
118
|
+
log_dir = "/home/demo/Projects/cpee-helpers/log/logs_yaml"
|
119
119
|
|
120
120
|
interface 'events' do
|
121
121
|
run Logging if post 'event'
|
122
122
|
end
|
123
123
|
interface 'logoverlay' do |r|
|
124
|
-
run Riddl::Utils::FileServe,
|
124
|
+
run Riddl::Utils::FileServe, log_dir + r[:h]["RIDDL_DECLARATION_PATH"]+ ".xes","text/xml" if get
|
125
125
|
end
|
126
126
|
|
127
127
|
|
@@ -0,0 +1 @@
|
|
1
|
+
f7c77861ac613eeac8fb9829c9a545a2
|
@@ -0,0 +1 @@
|
|
1
|
+
2a24d172b1aeb05fe94fdc5e095dec32
|
@@ -0,0 +1 @@
|
|
1
|
+
f7c77861ac613eeac8fb9829c9a545a2
|
@@ -0,0 +1 @@
|
|
1
|
+
2a24d172b1aeb05fe94fdc5e095dec32
|
@@ -0,0 +1 @@
|
|
1
|
+
f7c77861ac613eeac8fb9829c9a545a2
|
@@ -0,0 +1 @@
|
|
1
|
+
2a24d172b1aeb05fe94fdc5e095dec32
|
@@ -0,0 +1,524 @@
|
|
1
|
+
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
2
|
+
<attributes>
|
3
|
+
<uuid>d68fff80-2238-426f-9579-e3e7e0ee46eb</uuid>
|
4
|
+
<info>a01406222</info>
|
5
|
+
<modeltype>CPEE</modeltype>
|
6
|
+
<theme>default</theme>
|
7
|
+
</attributes>
|
8
|
+
<state>stopped</state>
|
9
|
+
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
10
|
+
<positions>
|
11
|
+
<a9>after</a9>
|
12
|
+
</positions>
|
13
|
+
<dataelements>
|
14
|
+
<runtime>45</runtime>
|
15
|
+
<timeleft>51</timeleft>
|
16
|
+
<traintime>15</traintime>
|
17
|
+
<startblock>B</startblock>
|
18
|
+
<startnumber>28</startnumber>
|
19
|
+
<runsteps>9518</runsteps>
|
20
|
+
<contact>Desktopapp</contact>
|
21
|
+
<drink>what</drink>
|
22
|
+
<gothere>from where</gothere>
|
23
|
+
</dataelements>
|
24
|
+
<endpoints>
|
25
|
+
<startnumber>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startnumber.php</startnumber>
|
26
|
+
<runtime>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/runtime.php</runtime>
|
27
|
+
<traintime>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/traintime.php</traintime>
|
28
|
+
<startblock>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblock.php</startblock>
|
29
|
+
<timeleft>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/timeleft.php</timeleft>
|
30
|
+
<result>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/result.php</result>
|
31
|
+
<run>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/run.php</run>
|
32
|
+
<contactapp>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/contactapp.php</contactapp>
|
33
|
+
<drink>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/drink.php</drink>
|
34
|
+
<gothere>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/gothere.php</gothere>
|
35
|
+
<saveblock>http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/saveblock.php</saveblock>
|
36
|
+
</endpoints>
|
37
|
+
<dsl>call :a1, :startblock, parameters: { :label => "select starting block", :method => :get, :arguments => [⭐(:name => :role, :value => "Runner"), ⭐(:name => :organization, :value => "Privat"), ⭐(:name => :link, :value => "http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html")] }, finalize: <<-END
|
38
|
+
data.startblock = result
|
39
|
+
END
|
40
|
+
call :a2, :saveblock, parameters: { :label => "save starting block", :method => :post, :arguments => [⭐(:name => :startblock, :value => data.startblock)] }
|
41
|
+
parallel :wait => -1 do
|
42
|
+
parallel_branch do ||
|
43
|
+
call :a3, :run, parameters: { :label => "run", :method => :get, :arguments => [⭐(:name => :role, :value => "Runner"), ⭐(:name => :organization, :value => "Privat"), ⭐(:name => :link, :value => "http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html")] }, finalize: <<-END
|
44
|
+
data.runsteps = data.runsteps + result;
|
45
|
+
END
|
46
|
+
end
|
47
|
+
parallel_branch do ||
|
48
|
+
call :a4, :traintime, parameters: { :label => "measure time", :method => :get, :arguments => nil }, finalize: <<-END
|
49
|
+
data.traintime = result
|
50
|
+
END
|
51
|
+
end
|
52
|
+
end
|
53
|
+
loop pre_test{data.traintime > 25} do
|
54
|
+
parallel :wait => -1 do
|
55
|
+
parallel_branch do ||
|
56
|
+
call :a5, :run, parameters: { :label => "run", :method => :get, :arguments => [⭐(:name => :role, :value => "Runner"), ⭐(:name => :organization, :value => "Privat"), ⭐(:name => :link, :value => "http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html")] }, finalize: <<-END
|
57
|
+
data.runsteps = data.runsteps + result;
|
58
|
+
END
|
59
|
+
end
|
60
|
+
parallel_branch do ||
|
61
|
+
call :a6, :traintime, parameters: { :label => "measure time", :method => :get, :arguments => nil }, finalize: <<-END
|
62
|
+
data.traintime = result
|
63
|
+
END
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
call :a7, :contactapp, parameters: { :label => "contact app", :method => :get, :arguments => [⭐(:name => :role, :value => "Runner"), ⭐(:name => :organization, :value => "Privat"), ⭐(:name => :link, :value => "http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html")] }, finalize: <<-END
|
68
|
+
data.contact = result
|
69
|
+
END
|
70
|
+
call :a8, :startnumber, parameters: { :label => "allocate start number", :method => :get, :arguments => nil }, finalize: <<-END
|
71
|
+
data.startnumber= result
|
72
|
+
END
|
73
|
+
call :a16, :timeleft, parameters: { :label => "timeLeftERSATZ", :method => :post, :arguments => nil }, finalize: <<-END
|
74
|
+
data.timeleft = result
|
75
|
+
END
|
76
|
+
choose :exclusive do
|
77
|
+
alternative test{data.timeleft > 60} do
|
78
|
+
call :a10, :gothere, parameters: { :label => "go home", :method => :post, :arguments => [⭐(:name => :home, :value => yes), ⭐(:name => :role, :value => "Runner"), ⭐(:name => :organization, :value => "Privat"), ⭐(:name => :link, :value => "http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html")] }, finalize: <<-END
|
79
|
+
data.gothere = result
|
80
|
+
END
|
81
|
+
end
|
82
|
+
otherwise do
|
83
|
+
call :a11, :gothere, parameters: { :label => "go there directly", :method => :post, :arguments => [⭐(:name => :role, :value => "Runner"), ⭐(:name => :organization, :value => "Privat"), ⭐(:name => :link, :value => "http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"), ⭐(:name => :home, :value => no)] }, finalize: <<-END
|
84
|
+
data.gothere = result
|
85
|
+
END
|
86
|
+
end
|
87
|
+
end
|
88
|
+
parallel :wait => -1 do
|
89
|
+
parallel_branch do ||
|
90
|
+
call :a12, :run, parameters: { :label => "run", :method => :post, :arguments => [⭐(:name => :role, :value => "Runner"), ⭐(:name => :organization, :value => "Privat"), ⭐(:name => :link, :value => "http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html")] }, finalize: <<-END
|
91
|
+
data.runsteps = data.runsteps + result;
|
92
|
+
END
|
93
|
+
end
|
94
|
+
parallel_branch do ||
|
95
|
+
call :a13, :runtime, parameters: { :label => "measure time", :method => :get, :arguments => nil }, finalize: <<-END
|
96
|
+
data.runtime = result
|
97
|
+
END
|
98
|
+
end
|
99
|
+
parallel_branch do ||
|
100
|
+
call :a14, :drink, parameters: { :label => "drink", :method => :get, :arguments => [⭐(:name => :role, :value => "Runner"), ⭐(:name => :organization, :value => "Privat"), ⭐(:name => :link, :value => "http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html")] }, finalize: <<-END
|
101
|
+
data.drink = result
|
102
|
+
END
|
103
|
+
end
|
104
|
+
end
|
105
|
+
call :a15, :result, parameters: { :label => "read results", :method => :post, :arguments => [⭐(:name => :runtime, :value => data.runtime)] }
|
106
|
+
</dsl>
|
107
|
+
<dslx>
|
108
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
109
|
+
<call id="a1" endpoint="startblock">
|
110
|
+
<parameters>
|
111
|
+
<label>select starting block</label>
|
112
|
+
<method>:get</method>
|
113
|
+
<arguments>
|
114
|
+
<role>"Runner"</role>
|
115
|
+
<organization>"Privat"</organization>
|
116
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
117
|
+
</arguments>
|
118
|
+
</parameters>
|
119
|
+
<finalize output="result">data.startblock = result</finalize>
|
120
|
+
<update output="result"/>
|
121
|
+
</call>
|
122
|
+
<call id="a2" endpoint="saveblock">
|
123
|
+
<parameters>
|
124
|
+
<label>save starting block</label>
|
125
|
+
<method>:post</method>
|
126
|
+
<arguments>
|
127
|
+
<startblock>data.startblock</startblock>
|
128
|
+
</arguments>
|
129
|
+
</parameters>
|
130
|
+
<finalize output="result"/>
|
131
|
+
<update output="result"/>
|
132
|
+
</call>
|
133
|
+
<parallel wait="-1">
|
134
|
+
<parallel_branch pass="" local="">
|
135
|
+
<call id="a3" endpoint="run">
|
136
|
+
<parameters>
|
137
|
+
<label>run</label>
|
138
|
+
<method>:get</method>
|
139
|
+
<arguments>
|
140
|
+
<role>"Runner"</role>
|
141
|
+
<organization>"Privat"</organization>
|
142
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
143
|
+
</arguments>
|
144
|
+
</parameters>
|
145
|
+
<finalize output="result">data.runsteps = data.runsteps + result;</finalize>
|
146
|
+
<update output="result"/>
|
147
|
+
</call>
|
148
|
+
</parallel_branch>
|
149
|
+
<parallel_branch pass="" local="">
|
150
|
+
<call id="a4" endpoint="traintime">
|
151
|
+
<parameters>
|
152
|
+
<label>measure time</label>
|
153
|
+
<method>:get</method>
|
154
|
+
<arguments/>
|
155
|
+
</parameters>
|
156
|
+
<finalize output="result">data.traintime = result</finalize>
|
157
|
+
<update output="result"/>
|
158
|
+
</call>
|
159
|
+
</parallel_branch>
|
160
|
+
</parallel>
|
161
|
+
<loop mode="pre_test" condition="data.traintime > 25">
|
162
|
+
<parallel wait="-1">
|
163
|
+
<parallel_branch pass="" local="">
|
164
|
+
<call id="a5" endpoint="run">
|
165
|
+
<parameters>
|
166
|
+
<label>run</label>
|
167
|
+
<method>:get</method>
|
168
|
+
<arguments>
|
169
|
+
<role>"Runner"</role>
|
170
|
+
<organization>"Privat"</organization>
|
171
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
172
|
+
</arguments>
|
173
|
+
</parameters>
|
174
|
+
<finalize output="result">data.runsteps = data.runsteps + result;</finalize>
|
175
|
+
<update output="result"/>
|
176
|
+
</call>
|
177
|
+
</parallel_branch>
|
178
|
+
<parallel_branch pass="" local="">
|
179
|
+
<call id="a6" endpoint="traintime">
|
180
|
+
<parameters>
|
181
|
+
<label>measure time</label>
|
182
|
+
<method>:get</method>
|
183
|
+
<arguments/>
|
184
|
+
</parameters>
|
185
|
+
<finalize output="result">data.traintime = result</finalize>
|
186
|
+
<update output="result"/>
|
187
|
+
</call>
|
188
|
+
</parallel_branch>
|
189
|
+
</parallel>
|
190
|
+
</loop>
|
191
|
+
<call id="a7" endpoint="contactapp">
|
192
|
+
<parameters>
|
193
|
+
<label>contact app</label>
|
194
|
+
<method>:get</method>
|
195
|
+
<arguments>
|
196
|
+
<role>"Runner"</role>
|
197
|
+
<organization>"Privat"</organization>
|
198
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
199
|
+
</arguments>
|
200
|
+
</parameters>
|
201
|
+
<finalize output="result">data.contact = result</finalize>
|
202
|
+
<update output="result"/>
|
203
|
+
</call>
|
204
|
+
<call id="a8" endpoint="startnumber">
|
205
|
+
<parameters>
|
206
|
+
<label>allocate start number</label>
|
207
|
+
<method>:get</method>
|
208
|
+
<arguments/>
|
209
|
+
</parameters>
|
210
|
+
<finalize output="result">data.startnumber= result</finalize>
|
211
|
+
<update output="result"/>
|
212
|
+
</call>
|
213
|
+
<call id="a16" endpoint="timeleft">
|
214
|
+
<parameters>
|
215
|
+
<label>timeLeftERSATZ</label>
|
216
|
+
<method>:post</method>
|
217
|
+
<arguments/>
|
218
|
+
</parameters>
|
219
|
+
<finalize output="result">data.timeleft = result</finalize>
|
220
|
+
<update output="result"/>
|
221
|
+
</call>
|
222
|
+
<choose mode="exclusive">
|
223
|
+
<alternative condition="data.timeleft > 60">
|
224
|
+
<call id="a10" endpoint="gothere">
|
225
|
+
<parameters>
|
226
|
+
<label>go home</label>
|
227
|
+
<method>:post</method>
|
228
|
+
<arguments>
|
229
|
+
<home>yes</home>
|
230
|
+
<role>"Runner"</role>
|
231
|
+
<organization>"Privat"</organization>
|
232
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
233
|
+
</arguments>
|
234
|
+
</parameters>
|
235
|
+
<finalize output="result">data.gothere = result</finalize>
|
236
|
+
<update output="result"/>
|
237
|
+
</call>
|
238
|
+
</alternative>
|
239
|
+
<otherwise>
|
240
|
+
<call id="a11" endpoint="gothere">
|
241
|
+
<parameters>
|
242
|
+
<label>go there directly</label>
|
243
|
+
<method>:post</method>
|
244
|
+
<arguments>
|
245
|
+
<role>"Runner"</role>
|
246
|
+
<organization>"Privat"</organization>
|
247
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
248
|
+
<home>no</home>
|
249
|
+
</arguments>
|
250
|
+
</parameters>
|
251
|
+
<finalize output="result">data.gothere = result</finalize>
|
252
|
+
<update output="result"/>
|
253
|
+
</call>
|
254
|
+
</otherwise>
|
255
|
+
</choose>
|
256
|
+
<parallel wait="-1">
|
257
|
+
<parallel_branch pass="" local="">
|
258
|
+
<call id="a12" endpoint="run">
|
259
|
+
<parameters>
|
260
|
+
<label>run</label>
|
261
|
+
<method>:post</method>
|
262
|
+
<arguments>
|
263
|
+
<role>"Runner"</role>
|
264
|
+
<organization>"Privat"</organization>
|
265
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
266
|
+
</arguments>
|
267
|
+
</parameters>
|
268
|
+
<finalize output="result">data.runsteps = data.runsteps + result;</finalize>
|
269
|
+
<update output="result"/>
|
270
|
+
</call>
|
271
|
+
</parallel_branch>
|
272
|
+
<parallel_branch pass="" local="">
|
273
|
+
<call id="a13" endpoint="runtime">
|
274
|
+
<parameters>
|
275
|
+
<label>measure time</label>
|
276
|
+
<method>:get</method>
|
277
|
+
<arguments/>
|
278
|
+
</parameters>
|
279
|
+
<finalize output="result">data.runtime = result</finalize>
|
280
|
+
<update output="result"/>
|
281
|
+
</call>
|
282
|
+
</parallel_branch>
|
283
|
+
<parallel_branch pass="" local="">
|
284
|
+
<call id="a14" endpoint="drink">
|
285
|
+
<parameters>
|
286
|
+
<label>drink</label>
|
287
|
+
<method>:get</method>
|
288
|
+
<arguments>
|
289
|
+
<role>"Runner"</role>
|
290
|
+
<organization>"Privat"</organization>
|
291
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
292
|
+
</arguments>
|
293
|
+
</parameters>
|
294
|
+
<finalize output="result">data.drink = result</finalize>
|
295
|
+
<update output="result"/>
|
296
|
+
</call>
|
297
|
+
</parallel_branch>
|
298
|
+
</parallel>
|
299
|
+
<call id="a15" endpoint="result">
|
300
|
+
<parameters>
|
301
|
+
<label>read results</label>
|
302
|
+
<method>:post</method>
|
303
|
+
<arguments>
|
304
|
+
<runtime>data.runtime</runtime>
|
305
|
+
</arguments>
|
306
|
+
</parameters>
|
307
|
+
<finalize output="result"/>
|
308
|
+
</call>
|
309
|
+
</description>
|
310
|
+
</dslx>
|
311
|
+
<status>
|
312
|
+
<id>0</id>
|
313
|
+
<message>undefined</message>
|
314
|
+
</status>
|
315
|
+
<description>
|
316
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
317
|
+
<call id="a1" endpoint="startblock">
|
318
|
+
<parameters>
|
319
|
+
<label>select starting block</label>
|
320
|
+
<method>:get</method>
|
321
|
+
<arguments>
|
322
|
+
<role>"Runner"</role>
|
323
|
+
<organization>"Privat"</organization>
|
324
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
325
|
+
</arguments>
|
326
|
+
</parameters>
|
327
|
+
<finalize output="result">data.startblock = result</finalize>
|
328
|
+
<update output="result"/>
|
329
|
+
</call>
|
330
|
+
<call id="a2" endpoint="saveblock">
|
331
|
+
<parameters>
|
332
|
+
<label>save starting block</label>
|
333
|
+
<method>:post</method>
|
334
|
+
<arguments>
|
335
|
+
<startblock>data.startblock</startblock>
|
336
|
+
</arguments>
|
337
|
+
</parameters>
|
338
|
+
<finalize output="result"/>
|
339
|
+
<update output="result"/>
|
340
|
+
</call>
|
341
|
+
<parallel wait="-1">
|
342
|
+
<parallel_branch pass="" local="">
|
343
|
+
<call id="a3" endpoint="run">
|
344
|
+
<parameters>
|
345
|
+
<label>run</label>
|
346
|
+
<method>:get</method>
|
347
|
+
<arguments>
|
348
|
+
<role>"Runner"</role>
|
349
|
+
<organization>"Privat"</organization>
|
350
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
351
|
+
</arguments>
|
352
|
+
</parameters>
|
353
|
+
<finalize output="result">data.runsteps = data.runsteps + result;</finalize>
|
354
|
+
<update output="result"/>
|
355
|
+
</call>
|
356
|
+
</parallel_branch>
|
357
|
+
<parallel_branch pass="" local="">
|
358
|
+
<call id="a4" endpoint="traintime">
|
359
|
+
<parameters>
|
360
|
+
<label>measure time</label>
|
361
|
+
<method>:get</method>
|
362
|
+
<arguments/>
|
363
|
+
</parameters>
|
364
|
+
<finalize output="result">data.traintime = result</finalize>
|
365
|
+
<update output="result"/>
|
366
|
+
</call>
|
367
|
+
</parallel_branch>
|
368
|
+
</parallel>
|
369
|
+
<loop mode="pre_test" condition="data.traintime > 25">
|
370
|
+
<parallel wait="-1">
|
371
|
+
<parallel_branch pass="" local="">
|
372
|
+
<call id="a5" endpoint="run">
|
373
|
+
<parameters>
|
374
|
+
<label>run</label>
|
375
|
+
<method>:get</method>
|
376
|
+
<arguments>
|
377
|
+
<role>"Runner"</role>
|
378
|
+
<organization>"Privat"</organization>
|
379
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
380
|
+
</arguments>
|
381
|
+
</parameters>
|
382
|
+
<finalize output="result">data.runsteps = data.runsteps + result;</finalize>
|
383
|
+
<update output="result"/>
|
384
|
+
</call>
|
385
|
+
</parallel_branch>
|
386
|
+
<parallel_branch pass="" local="">
|
387
|
+
<call id="a6" endpoint="traintime">
|
388
|
+
<parameters>
|
389
|
+
<label>measure time</label>
|
390
|
+
<method>:get</method>
|
391
|
+
<arguments/>
|
392
|
+
</parameters>
|
393
|
+
<finalize output="result">data.traintime = result</finalize>
|
394
|
+
<update output="result"/>
|
395
|
+
</call>
|
396
|
+
</parallel_branch>
|
397
|
+
</parallel>
|
398
|
+
</loop>
|
399
|
+
<call id="a7" endpoint="contactapp">
|
400
|
+
<parameters>
|
401
|
+
<label>contact app</label>
|
402
|
+
<method>:get</method>
|
403
|
+
<arguments>
|
404
|
+
<role>"Runner"</role>
|
405
|
+
<organization>"Privat"</organization>
|
406
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
407
|
+
</arguments>
|
408
|
+
</parameters>
|
409
|
+
<finalize output="result">data.contact = result</finalize>
|
410
|
+
<update output="result"/>
|
411
|
+
</call>
|
412
|
+
<call id="a8" endpoint="startnumber">
|
413
|
+
<parameters>
|
414
|
+
<label>allocate start number</label>
|
415
|
+
<method>:get</method>
|
416
|
+
<arguments/>
|
417
|
+
</parameters>
|
418
|
+
<finalize output="result">data.startnumber= result</finalize>
|
419
|
+
<update output="result"/>
|
420
|
+
</call>
|
421
|
+
<call id="a16" endpoint="timeleft">
|
422
|
+
<parameters>
|
423
|
+
<label>timeLeftERSATZ</label>
|
424
|
+
<method>:post</method>
|
425
|
+
<arguments/>
|
426
|
+
</parameters>
|
427
|
+
<finalize output="result">data.timeleft = result</finalize>
|
428
|
+
<update output="result"/>
|
429
|
+
</call>
|
430
|
+
<choose mode="exclusive">
|
431
|
+
<alternative condition="data.timeleft > 60">
|
432
|
+
<call id="a10" endpoint="gothere">
|
433
|
+
<parameters>
|
434
|
+
<label>go home</label>
|
435
|
+
<method>:post</method>
|
436
|
+
<arguments>
|
437
|
+
<home>yes</home>
|
438
|
+
<role>"Runner"</role>
|
439
|
+
<organization>"Privat"</organization>
|
440
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
441
|
+
</arguments>
|
442
|
+
</parameters>
|
443
|
+
<finalize output="result">data.gothere = result</finalize>
|
444
|
+
<update output="result"/>
|
445
|
+
</call>
|
446
|
+
</alternative>
|
447
|
+
<otherwise>
|
448
|
+
<call id="a11" endpoint="gothere">
|
449
|
+
<parameters>
|
450
|
+
<label>go there directly</label>
|
451
|
+
<method>:post</method>
|
452
|
+
<arguments>
|
453
|
+
<role>"Runner"</role>
|
454
|
+
<organization>"Privat"</organization>
|
455
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
456
|
+
<home>no</home>
|
457
|
+
</arguments>
|
458
|
+
</parameters>
|
459
|
+
<finalize output="result">data.gothere = result</finalize>
|
460
|
+
<update output="result"/>
|
461
|
+
</call>
|
462
|
+
</otherwise>
|
463
|
+
</choose>
|
464
|
+
<parallel wait="-1">
|
465
|
+
<parallel_branch pass="" local="">
|
466
|
+
<call id="a12" endpoint="run">
|
467
|
+
<parameters>
|
468
|
+
<label>run</label>
|
469
|
+
<method>:post</method>
|
470
|
+
<arguments>
|
471
|
+
<role>"Runner"</role>
|
472
|
+
<organization>"Privat"</organization>
|
473
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
474
|
+
</arguments>
|
475
|
+
</parameters>
|
476
|
+
<finalize output="result">data.runsteps = data.runsteps + result;</finalize>
|
477
|
+
<update output="result"/>
|
478
|
+
</call>
|
479
|
+
</parallel_branch>
|
480
|
+
<parallel_branch pass="" local="">
|
481
|
+
<call id="a13" endpoint="runtime">
|
482
|
+
<parameters>
|
483
|
+
<label>measure time</label>
|
484
|
+
<method>:get</method>
|
485
|
+
<arguments/>
|
486
|
+
</parameters>
|
487
|
+
<finalize output="result">data.runtime = result</finalize>
|
488
|
+
<update output="result"/>
|
489
|
+
</call>
|
490
|
+
</parallel_branch>
|
491
|
+
<parallel_branch pass="" local="">
|
492
|
+
<call id="a14" endpoint="drink">
|
493
|
+
<parameters>
|
494
|
+
<label>drink</label>
|
495
|
+
<method>:get</method>
|
496
|
+
<arguments>
|
497
|
+
<role>"Runner"</role>
|
498
|
+
<organization>"Privat"</organization>
|
499
|
+
<link>"http://wwwlab.cs.univie.ac.at/~sumeredera95/wt17/startblockChose.html"</link>
|
500
|
+
</arguments>
|
501
|
+
</parameters>
|
502
|
+
<finalize output="result">data.drink = result</finalize>
|
503
|
+
<update output="result"/>
|
504
|
+
</call>
|
505
|
+
</parallel_branch>
|
506
|
+
</parallel>
|
507
|
+
<call id="a15" endpoint="result">
|
508
|
+
<parameters>
|
509
|
+
<label>read results</label>
|
510
|
+
<method>:post</method>
|
511
|
+
<arguments>
|
512
|
+
<runtime>data.runtime</runtime>
|
513
|
+
</arguments>
|
514
|
+
</parameters>
|
515
|
+
<finalize output="result"/>
|
516
|
+
</call>
|
517
|
+
</description>
|
518
|
+
</description>
|
519
|
+
<transformation>
|
520
|
+
<description type="copy"/>
|
521
|
+
<dataelements type="none"/>
|
522
|
+
<endpoints type="none"/>
|
523
|
+
</transformation>
|
524
|
+
</properties>
|