rabbit-slide-kou-rubykaigi-2014 2014.9.20.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6e4e84183ab39b83716b8ce13d75fdff8a1e7191
4
+ data.tar.gz: f3203ef63b517972be89585413b2c757f11d0f76
5
+ SHA512:
6
+ metadata.gz: 42a5fcb18ca37c16958f3030271de1b97e2a0272f7ff6ceb8093b2894b46a18d39ac064d974caf405022f7ee6e7a53e325394783d38627751410788bc98e8b57
7
+ data.tar.gz: a3be3d3494a3249eeea2d5db85a25df57be077c232526e84ad817fcec3e5eac1d2991019a78d21acdd0078b9bbfe9327f3fffb7f85b8195973a1f6e26e299805
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ three-ruby-usages.rab
@@ -0,0 +1,143 @@
1
+ = Three Ruby usages
2
+
3
+ This talk describes three Ruby usages:
4
+
5
+ * Implementing high-level interface by Ruby.
6
+ * Using Ruby as a glue language.
7
+ * Embedding Ruby into a C program for flexibility.
8
+
9
+ All of them have pros and cons. They are trade-off. If a case can
10
+ ignore cons, we will have pros for the case.
11
+
12
+ Most of Rubyists implement their Ruby applications only by Ruby. This
13
+ talk shows another options to use Ruby as your convenient tool. If you
14
+ know another options and trade-offs of them, you will implement your
15
+ Ruby applications more effectively.
16
+
17
+ This talk uses Droonga, a distributed full-text search engine, as a
18
+ sample application to describe these Ruby usages. Droonga uses these
19
+ three Ruby usages.
20
+
21
+ == License
22
+
23
+ === Slide
24
+
25
+ CC BY-SA 4.0
26
+
27
+ Use the followings for notation of the author:
28
+
29
+ * Kouhei Sutou
30
+
31
+ === Images
32
+
33
+ ==== ClearCode Inc. logo
34
+
35
+ CC BY-SA 4.0
36
+
37
+ Author: ClearCode Inc.
38
+
39
+ It is used in page header and some pages in the slide.
40
+
41
+ ==== Ruby logo
42
+
43
+ File:
44
+
45
+ * images/ruby.pdf
46
+
47
+ CC BY-SA 2.5
48
+
49
+ Author: Yukihiro Matsumoto
50
+
51
+ ==== Groonga logos
52
+
53
+ Files:
54
+
55
+ * images/groonga-logo.svg
56
+ * images/rroonga-logo.svg
57
+ * images/droonga-logo.svg
58
+
59
+ CC BY 3.0
60
+
61
+ Author: The Groonga Project
62
+
63
+ ==== Images that uses Groonga logo
64
+
65
+ Files:
66
+
67
+ * images/droonga-rroonga.svg
68
+ * images/rroonga-search.svg
69
+
70
+ CC BY 3.0
71
+
72
+ Author:
73
+
74
+ * Kouhei Sutou
75
+ * The Groonga Project
76
+
77
+ ==== Images that uses Ruby logo
78
+
79
+ Files:
80
+
81
+ * images/embed.svg
82
+ * images/high-level-interface.svg
83
+ * images/high-level-interface-examples.svg
84
+
85
+ CC BY-SA 2.5
86
+
87
+ Author:
88
+
89
+ * Kouhei Sutou
90
+ * Yukihiro Matsumoto
91
+
92
+ ==== Images that uses Groonga logo and Ruby logo
93
+
94
+ Files:
95
+
96
+ * images/droonga-mruby.svg
97
+ * images/embed-examples.svg
98
+
99
+ CC BY-SA 2.5
100
+
101
+ Author:
102
+
103
+ * Kouhei Sutou
104
+ * Yukihiro Matsumoto
105
+ * The Groonga Project
106
+
107
+ ==== Other images
108
+
109
+ Files:
110
+
111
+ * images/clear-code-is-silver-sponsor.png
112
+ * images/distributed-full-text-search-engine.svg
113
+ * images/distributed-full-text-search-engine-components.svg
114
+ * images/droonga-messaging-system.svg
115
+ * images/glue-examples.svg
116
+ * images/glue.svg
117
+ * images/range-search-optimized.svg
118
+ * images/range-search-simple.svg
119
+
120
+ CC BY-SA 4.0
121
+
122
+ Author: Kouhei Sutou
123
+
124
+ == For author
125
+
126
+ === Show
127
+
128
+ rake
129
+
130
+ === Publish
131
+
132
+ rake publish
133
+
134
+ == For viewers
135
+
136
+ === Install
137
+
138
+ gem install rabbit-slide-kou-rubykaigi-2014
139
+
140
+ === Show
141
+
142
+ rabbit rabbit-slide-kou-rubykaigi-2014.gem
143
+
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ spec.add_runtime_dependency("rabbit-theme-clear-code")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: rubykaigi-2014
3
+ base_name: three-ruby-usages
4
+ tags:
5
+ - rabbit
6
+ - ruby
7
+ - mruby
8
+ - droonga
9
+ presentation_date: 2014.9.20
10
+ version: 2014.9.20.0
11
+ licenses:
12
+ - CC BY-SA 4.0
13
+ slideshare_id:
14
+ speaker_deck_id:
15
+ ustream_id:
16
+ vimeo_id:
17
+ youtube_id:
18
+ author:
19
+ markup_language: :rd
20
+ name: Kouhei Sutou
21
+ email: kou@clear-code.com
22
+ rubygems_user: kou
23
+ slideshare_user: kou
24
+ speaker_deck_user: kou
@@ -0,0 +1,572 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ width="941.53064"
13
+ height="625.01031"
14
+ id="svg2"
15
+ version="1.1"
16
+ inkscape:version="0.48.5 r10040"
17
+ sodipodi:docname="distributed-full-text-search-engine-components.svg">
18
+ <defs
19
+ id="defs4">
20
+ <marker
21
+ inkscape:stockid="Arrow1Mend"
22
+ orient="auto"
23
+ refY="0"
24
+ refX="0"
25
+ id="Arrow1Mend"
26
+ style="overflow:visible">
27
+ <path
28
+ id="path4285"
29
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
30
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
31
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
32
+ inkscape:connector-curvature="0" />
33
+ </marker>
34
+ <marker
35
+ style="overflow:visible"
36
+ id="Arrow1MendButter"
37
+ refX="0"
38
+ refY="0"
39
+ orient="auto"
40
+ inkscape:stockid="Arrow1MendButter">
41
+ <path
42
+ inkscape:connector-curvature="0"
43
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
44
+ style="fill:#c4a000;fill-rule:evenodd;stroke:#c4a000;stroke-width:1pt"
45
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
46
+ id="path5546" />
47
+ </marker>
48
+ <marker
49
+ inkscape:stockid="Arrow1MendChameleon"
50
+ orient="auto"
51
+ refY="0"
52
+ refX="0"
53
+ id="Arrow1MendChameleon"
54
+ style="overflow:visible">
55
+ <path
56
+ id="path5550"
57
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
58
+ style="fill:#4e9a06;fill-rule:evenodd;stroke:#4e9a06;stroke-width:1pt"
59
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
60
+ inkscape:connector-curvature="0" />
61
+ </marker>
62
+ <marker
63
+ style="overflow:visible"
64
+ id="Arrow1MendOrange"
65
+ refX="0"
66
+ refY="0"
67
+ orient="auto"
68
+ inkscape:stockid="Arrow1MendOrange">
69
+ <path
70
+ inkscape:connector-curvature="0"
71
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
72
+ style="fill:#ce5c00;fill-rule:evenodd;stroke:#ce5c00;stroke-width:1pt"
73
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
74
+ id="path5610" />
75
+ </marker>
76
+ </defs>
77
+ <sodipodi:namedview
78
+ id="base"
79
+ pagecolor="#ffffff"
80
+ bordercolor="#666666"
81
+ borderopacity="1.0"
82
+ inkscape:pageopacity="0.0"
83
+ inkscape:pageshadow="2"
84
+ inkscape:zoom="0.49497475"
85
+ inkscape:cx="1094.138"
86
+ inkscape:cy="313.35954"
87
+ inkscape:document-units="px"
88
+ inkscape:current-layer="layer1"
89
+ showgrid="false"
90
+ inkscape:window-width="1373"
91
+ inkscape:window-height="822"
92
+ inkscape:window-x="2202"
93
+ inkscape:window-y="118"
94
+ inkscape:window-maximized="0"
95
+ fit-margin-left="10"
96
+ fit-margin-right="10"
97
+ fit-margin-top="10"
98
+ fit-margin-bottom="10" />
99
+ <metadata
100
+ id="metadata7">
101
+ <rdf:RDF>
102
+ <cc:Work
103
+ rdf:about="">
104
+ <dc:format>image/svg+xml</dc:format>
105
+ <dc:type
106
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
107
+ <dc:title />
108
+ </cc:Work>
109
+ </rdf:RDF>
110
+ </metadata>
111
+ <g
112
+ inkscape:label="レイヤー 1"
113
+ inkscape:groupmode="layer"
114
+ id="layer1"
115
+ transform="translate(-194.22408,-103.89281)">
116
+ <rect
117
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#5c3566;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
118
+ id="rect4904"
119
+ width="548.40527"
120
+ height="460.48001"
121
+ x="205.22408"
122
+ y="257.42313" />
123
+ <text
124
+ xml:space="preserve"
125
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
126
+ x="957.54895"
127
+ y="341.35999"
128
+ id="text4871"
129
+ sodipodi:linespacing="125%"><tspan
130
+ sodipodi:role="line"
131
+ x="957.54895"
132
+ y="341.35999"
133
+ id="tspan3286">FTSE</tspan></text>
134
+ <rect
135
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#5c3566;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
136
+ id="rect4906"
137
+ width="129.99989"
138
+ height="104.28572"
139
+ x="791.83472"
140
+ y="136.21718" />
141
+ <text
142
+ sodipodi:linespacing="125%"
143
+ id="text4908"
144
+ y="157.36002"
145
+ x="951.83472"
146
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
147
+ xml:space="preserve"><tspan
148
+ y="157.36002"
149
+ x="951.83472"
150
+ sodipodi:role="line"
151
+ id="tspan3273">DTFSE</tspan></text>
152
+ <rect
153
+ y="316.21716"
154
+ x="791.83472"
155
+ height="104.28572"
156
+ width="129.99989"
157
+ id="rect4181"
158
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
159
+ <rect
160
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
161
+ id="rect4197"
162
+ width="129.99989"
163
+ height="104.28572"
164
+ x="239.1275"
165
+ y="578.00769" />
166
+ <rect
167
+ y="578.00769"
168
+ x="410.85342"
169
+ height="104.28572"
170
+ width="129.99989"
171
+ id="rect4243"
172
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
173
+ <rect
174
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
175
+ id="rect4245"
176
+ width="129.99989"
177
+ height="104.28572"
178
+ x="580.55902"
179
+ y="578.00769" />
180
+ <rect
181
+ y="422.00769"
182
+ x="239.1275"
183
+ height="104.28572"
184
+ width="129.99989"
185
+ id="rect4260"
186
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
187
+ <rect
188
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
189
+ id="rect4262"
190
+ width="129.99989"
191
+ height="104.28572"
192
+ x="410.85342"
193
+ y="422.00769" />
194
+ <rect
195
+ y="422.00769"
196
+ x="580.55902"
197
+ height="104.28572"
198
+ width="129.99989"
199
+ id="rect4264"
200
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
201
+ <text
202
+ xml:space="preserve"
203
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
204
+ x="325.70636"
205
+ y="155.54259"
206
+ id="text4266"
207
+ sodipodi:linespacing="125%"><tspan
208
+ sodipodi:role="line"
209
+ id="tspan4268"
210
+ x="325.70636"
211
+ y="155.54259">1: Full-text search</tspan></text>
212
+ <path
213
+ style="fill:none;stroke:#c4a000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendButter)"
214
+ d="m 358.47794,186.20469 0,56.4547"
215
+ id="path4270"
216
+ inkscape:connector-curvature="0"
217
+ sodipodi:nodetypes="cc" />
218
+ <path
219
+ inkscape:connector-curvature="0"
220
+ id="path4718"
221
+ d="m 258.06674,376.61878 0,87.88327"
222
+ style="fill:none;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendChameleon)" />
223
+ <text
224
+ xml:space="preserve"
225
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
226
+ x="240.65048"
227
+ y="306.72028"
228
+ id="text4726"
229
+ sodipodi:linespacing="125%"><tspan
230
+ sodipodi:role="line"
231
+ id="tspan4728"
232
+ x="240.65048"
233
+ y="306.72028">2: Distribute</tspan><tspan
234
+ sodipodi:role="line"
235
+ x="240.65048"
236
+ y="346.72028"
237
+ id="tspan4730">sub requests</tspan></text>
238
+ <text
239
+ sodipodi:linespacing="125%"
240
+ id="text4732"
241
+ y="304.65939"
242
+ x="557.41553"
243
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
244
+ xml:space="preserve"><tspan
245
+ y="304.65939"
246
+ x="557.41553"
247
+ sodipodi:role="line"
248
+ id="tspan4740">3: Merge</tspan><tspan
249
+ y="344.65939"
250
+ x="557.41553"
251
+ sodipodi:role="line"
252
+ id="tspan4744">responses</tspan></text>
253
+ <path
254
+ sodipodi:nodetypes="cc"
255
+ inkscape:connector-curvature="0"
256
+ id="path4774"
257
+ d="m 352.06673,376.61878 260.58962,91.27417"
258
+ style="color:#000000;fill:none;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#Arrow1MendChameleon);visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
259
+ <path
260
+ style="fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendOrange)"
261
+ d="M 260.42857,470.50504 531.85714,369.79076"
262
+ id="path4791"
263
+ inkscape:connector-curvature="0" />
264
+ <path
265
+ style="fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendOrange)"
266
+ d="m 624,468.36219 0,-96.42858"
267
+ id="path5345"
268
+ inkscape:connector-curvature="0"
269
+ sodipodi:nodetypes="cc" />
270
+ <path
271
+ sodipodi:nodetypes="cc"
272
+ inkscape:connector-curvature="0"
273
+ id="path5542"
274
+ d="m 618.47794,244.15939 0,-56.4547"
275
+ style="fill:none;stroke:#c4a000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendButter)" />
276
+ <rect
277
+ style="color:#000000;fill:none;stroke:#c4a000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
278
+ id="rect3028"
279
+ width="349.5845"
280
+ height="58.588852"
281
+ x="303.32056"
282
+ y="114.89281"
283
+ rx="5"
284
+ ry="5" />
285
+ <rect
286
+ ry="5"
287
+ rx="5"
288
+ y="271.52737"
289
+ x="226.50835"
290
+ height="93.944176"
291
+ width="237.3858"
292
+ id="rect3030"
293
+ style="color:#000000;fill:none;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
294
+ <rect
295
+ ry="5"
296
+ rx="5"
297
+ y="271.52737"
298
+ x="539.68097"
299
+ height="85.252655"
300
+ width="181.6568"
301
+ id="rect3034"
302
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
303
+ <path
304
+ sodipodi:nodetypes="cc"
305
+ inkscape:connector-curvature="0"
306
+ id="path3228"
307
+ d="m 811.39667,606.24767 94.66429,0"
308
+ style="fill:none;stroke:#c4a000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendButter)" />
309
+ <path
310
+ style="fill:none;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendChameleon)"
311
+ d="m 811.39667,639.06988 94.66429,0"
312
+ id="path3230"
313
+ inkscape:connector-curvature="0"
314
+ sodipodi:nodetypes="cc" />
315
+ <path
316
+ sodipodi:nodetypes="cc"
317
+ inkscape:connector-curvature="0"
318
+ id="path3234"
319
+ d="m 811.39667,671.8921 94.66429,0"
320
+ style="fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendOrange)" />
321
+ <text
322
+ sodipodi:linespacing="125%"
323
+ id="text3236"
324
+ y="627.35999"
325
+ x="957.54895"
326
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
327
+ xml:space="preserve"><tspan
328
+ id="tspan3244"
329
+ y="627.35999"
330
+ x="957.54895"
331
+ sodipodi:role="line">Messaging</tspan><tspan
332
+ y="667.35999"
333
+ x="957.54895"
334
+ sodipodi:role="line"
335
+ id="tspan3255">system</tspan></text>
336
+ <text
337
+ xml:space="preserve"
338
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
339
+ x="951.83472"
340
+ y="203.36002"
341
+ id="text3313"
342
+ sodipodi:linespacing="125%"><tspan
343
+ id="tspan3315"
344
+ sodipodi:role="line"
345
+ x="951.83472"
346
+ y="203.36002">Cluster</tspan><tspan
347
+ sodipodi:role="line"
348
+ x="951.83472"
349
+ y="243.36002"
350
+ id="tspan3317">management</tspan></text>
351
+ <text
352
+ sodipodi:linespacing="125%"
353
+ id="text3319"
354
+ y="383.36002"
355
+ x="951.83472"
356
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
357
+ xml:space="preserve"><tspan
358
+ y="383.36002"
359
+ x="951.83472"
360
+ sodipodi:role="line"
361
+ id="tspan3321">Process</tspan><tspan
362
+ id="tspan3323"
363
+ y="423.36002"
364
+ x="951.83472"
365
+ sodipodi:role="line">management</tspan></text>
366
+ <path
367
+ sodipodi:type="arc"
368
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
369
+ id="path3388"
370
+ sodipodi:cx="135"
371
+ sodipodi:cy="398.58176"
372
+ sodipodi:rx="15"
373
+ sodipodi:ry="15"
374
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
375
+ transform="translate(208.22408,103.89281)" />
376
+ <path
377
+ sodipodi:type="arc"
378
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
379
+ id="path3390"
380
+ sodipodi:cx="665.71429"
381
+ sodipodi:cy="415.01031"
382
+ sodipodi:rx="22.857143"
383
+ sodipodi:ry="22.857143"
384
+ d="m 688.57144,415.01031 c 0,12.62366 -10.23349,22.85715 -22.85715,22.85715 -12.62365,0 -22.85714,-10.23349 -22.85714,-22.85715 0,-12.62365 10.23349,-22.85714 22.85714,-22.85714 12.62366,0 22.85715,10.23349 22.85715,22.85714 z"
385
+ transform="translate(194.22408,103.89281)" />
386
+ <text
387
+ xml:space="preserve"
388
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
389
+ x="957.54895"
390
+ y="515.35999"
391
+ id="text3392"
392
+ sodipodi:linespacing="125%"><tspan
393
+ id="tspan3396"
394
+ sodipodi:role="line"
395
+ x="957.54895"
396
+ y="515.35999">Worker</tspan><tspan
397
+ sodipodi:role="line"
398
+ x="957.54895"
399
+ y="555.35999"
400
+ id="tspan3447">process</tspan></text>
401
+ <path
402
+ transform="translate(128.22408,103.89281)"
403
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
404
+ sodipodi:ry="15"
405
+ sodipodi:rx="15"
406
+ sodipodi:cy="398.58176"
407
+ sodipodi:cx="135"
408
+ id="path3400"
409
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
410
+ sodipodi:type="arc" />
411
+ <path
412
+ sodipodi:type="arc"
413
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
414
+ id="path3402"
415
+ sodipodi:cx="135"
416
+ sodipodi:cy="398.58176"
417
+ sodipodi:rx="15"
418
+ sodipodi:ry="15"
419
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
420
+ transform="translate(168.22408,103.89281)" />
421
+ <path
422
+ transform="translate(208.22408,257.89281)"
423
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
424
+ sodipodi:ry="15"
425
+ sodipodi:rx="15"
426
+ sodipodi:cy="398.58176"
427
+ sodipodi:cx="135"
428
+ id="path3417"
429
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
430
+ sodipodi:type="arc" />
431
+ <path
432
+ sodipodi:type="arc"
433
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
434
+ id="path3419"
435
+ sodipodi:cx="135"
436
+ sodipodi:cy="398.58176"
437
+ sodipodi:rx="15"
438
+ sodipodi:ry="15"
439
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
440
+ transform="translate(128.22408,257.89281)" />
441
+ <path
442
+ transform="translate(168.22408,257.89281)"
443
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
444
+ sodipodi:ry="15"
445
+ sodipodi:rx="15"
446
+ sodipodi:cy="398.58176"
447
+ sodipodi:cx="135"
448
+ id="path3421"
449
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
450
+ sodipodi:type="arc" />
451
+ <path
452
+ sodipodi:type="arc"
453
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
454
+ id="path3423"
455
+ sodipodi:cx="135"
456
+ sodipodi:cy="398.58176"
457
+ sodipodi:rx="15"
458
+ sodipodi:ry="15"
459
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
460
+ transform="translate(380.22408,257.89281)" />
461
+ <path
462
+ transform="translate(300.22408,257.89281)"
463
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
464
+ sodipodi:ry="15"
465
+ sodipodi:rx="15"
466
+ sodipodi:cy="398.58176"
467
+ sodipodi:cx="135"
468
+ id="path3425"
469
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
470
+ sodipodi:type="arc" />
471
+ <path
472
+ sodipodi:type="arc"
473
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
474
+ id="path3427"
475
+ sodipodi:cx="135"
476
+ sodipodi:cy="398.58176"
477
+ sodipodi:rx="15"
478
+ sodipodi:ry="15"
479
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
480
+ transform="translate(340.22408,257.89281)" />
481
+ <path
482
+ transform="translate(550.22408,257.89281)"
483
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
484
+ sodipodi:ry="15"
485
+ sodipodi:rx="15"
486
+ sodipodi:cy="398.58176"
487
+ sodipodi:cx="135"
488
+ id="path3429"
489
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
490
+ sodipodi:type="arc" />
491
+ <path
492
+ sodipodi:type="arc"
493
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
494
+ id="path3431"
495
+ sodipodi:cx="135"
496
+ sodipodi:cy="398.58176"
497
+ sodipodi:rx="15"
498
+ sodipodi:ry="15"
499
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
500
+ transform="translate(470.22408,257.89281)" />
501
+ <path
502
+ transform="translate(510.22408,257.89281)"
503
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
504
+ sodipodi:ry="15"
505
+ sodipodi:rx="15"
506
+ sodipodi:cy="398.58176"
507
+ sodipodi:cx="135"
508
+ id="path3433"
509
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
510
+ sodipodi:type="arc" />
511
+ <path
512
+ transform="translate(380.22408,103.89281)"
513
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
514
+ sodipodi:ry="15"
515
+ sodipodi:rx="15"
516
+ sodipodi:cy="398.58176"
517
+ sodipodi:cx="135"
518
+ id="path3435"
519
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
520
+ sodipodi:type="arc" />
521
+ <path
522
+ sodipodi:type="arc"
523
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
524
+ id="path3437"
525
+ sodipodi:cx="135"
526
+ sodipodi:cy="398.58176"
527
+ sodipodi:rx="15"
528
+ sodipodi:ry="15"
529
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
530
+ transform="translate(300.22408,103.89281)" />
531
+ <path
532
+ transform="translate(340.22408,103.89281)"
533
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
534
+ sodipodi:ry="15"
535
+ sodipodi:rx="15"
536
+ sodipodi:cy="398.58176"
537
+ sodipodi:cx="135"
538
+ id="path3439"
539
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
540
+ sodipodi:type="arc" />
541
+ <path
542
+ sodipodi:type="arc"
543
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
544
+ id="path3441"
545
+ sodipodi:cx="135"
546
+ sodipodi:cy="398.58176"
547
+ sodipodi:rx="15"
548
+ sodipodi:ry="15"
549
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
550
+ transform="translate(550.22408,103.89281)" />
551
+ <path
552
+ transform="translate(470.22408,103.89281)"
553
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
554
+ sodipodi:ry="15"
555
+ sodipodi:rx="15"
556
+ sodipodi:cy="398.58176"
557
+ sodipodi:cx="135"
558
+ id="path3443"
559
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
560
+ sodipodi:type="arc" />
561
+ <path
562
+ sodipodi:type="arc"
563
+ style="color:#000000;fill:none;stroke:#ce5c00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
564
+ id="path3445"
565
+ sodipodi:cx="135"
566
+ sodipodi:cy="398.58176"
567
+ sodipodi:rx="15"
568
+ sodipodi:ry="15"
569
+ d="m 150,398.58176 c 0,8.28427 -6.71573,15 -15,15 -8.28427,0 -15,-6.71573 -15,-15 0,-8.28427 6.71573,-15 15,-15 8.28427,0 15,6.71573 15,15 z"
570
+ transform="translate(510.22408,103.89281)" />
571
+ </g>
572
+ </svg>