-
Notifications
You must be signed in to change notification settings - Fork 0
/
sfd.html
162 lines (136 loc) · 6.04 KB
/
sfd.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="width=640" />
<link rel="stylesheet" href="stylesheets/core.css" media="screen"/>
<link rel="stylesheet" href="stylesheets/mobile.css" media="handheld, only screen and (max-device-width:640px)"/>
<link rel="stylesheet" href="stylesheets/pygment_trac.css"/>
<script type="text/javascript" src="javascripts/modernizr.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="javascripts/headsmart.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#main_content').headsmart()
})
</script>
<title>Swarming for Dummies</title>
</head>
<body>
<a id="forkme_banner" href="https://github.com/salboaie">View on GitHub</a>
<div class="shell">
<header>
<span class="ribbon-outer">
<span class="ribbon-inner">
<h1>salboaie.github.com</h1>
<h2>Swarming for Dummies</h2>
</span>
<span class="left-tail"></span>
<span class="right-tail"></span>
</span>
</header>
<div id="no-downloads">
<span class="inner">
</span>
</div>
<span class="banner-fix"></span>
<section id="main_content">
<table border="0" cellpadding="0" cellspacing="0" style="width: 500px; ">
<tbody>
<td>
<tr><img src="images/swarm/sfd.png" />
</tr>
<tr>
<h2>Really, wtf is swarming?</h2>
</tr>
</td>
</tbody>
</table>
<p> </p>
<h3>Abstraction build over asynchronous messages…. </h3>
<p>
<ol>
<li> Yes, you can repeat this but it is not very useful.
<li> You put your APIs (functions, calls to web services, basic building blocks of logic,etc) in nodes and
you compose all these in a special language that get executed by jumping (swarming) from node to node.
<h5>Still.. nothing?</h5>
</ol>
</p>
<h3>What is a "swarm" ? </h3>
<p>
<img src="images/swarm/swarm.png" />
<ol>
<li> It is a message
<li> It is better because the swarm is "swarming" . Obviously.
</ol>
</p>
<h3>Bees are swarming from their hive in a forest, what the heck can be similar for messages? </h3>
<p>
<ol>
<li> When sending a message,we can pretend that the process (the one that is sending that message) is like a hive in a tree? Right? And the message
will arrive in another process (node), another tree, isn't it?
<li> But.. to do something meaningful, you don't send only a message, sometimes a lot of messages are sent between many processes.
You can unifying all that confusing behaviour as a swarming process where the initial swarm (message) is moving from tree to tree (processes) and
eventually the swarm get divided and is joining again when searching for food or for a new home.
</ol>
<img src="images/swarm/forest.jpg" />
</p>
<h3>Do the swarm have a plan?</h3>
<p>
<ol>
<li> I can't read bees mind, but we can imagine that any swarming happens to follow some PHASES
<li> Message swarming have a "swarming description", a file where what will happen with a new swarm is carefully
planned. <br> <h5> A swarming description contains variables (the bees :) ) , ctors (constructors, initialisation
phase) and descriptions for all phases. </h5>
</ol>
</p>
<h3>Dude,where is the honey?</h3>
<p>
<ol>
<li> It is in hives, of course.
<li> Well, for SwarmESB based systems, the honey is carried by bees (variables) but can be also stored and collected from
trees (nodes,process) visited by swarms. <br>
<h5> The nodes (trees) offer to swarms some honey as APIs </h5>
</ol>
<img src="images/swarm/honey.jpg" />
</p>
<h3>Why is called swarming?</h3>
<p>
<ol>
<li> Because we like nature inspired metaphors for computing
<li> Because jumping from node to node (using the network) of a set of values can be seen as sending messages
but can be also seen as a swarming of some mysterious bees that care the honey (values) . After a swarm reaches
a node, it can swarm again and again and you can describe and understand all the related swarming activities.
<br> <h5> What can be cooler than this?</h5>
</ol>
</p>
<h3>Ok,I got it, show me some code </h3>
<p>
<ol>
<li> <a href="https://github.com/salboaie/SwarmESB/">Check SwarmESB's examples and code </a>
<li> <h5><a href="https://github.com/salboaie/SwarmESB/wiki"> Wiki, wiki we are swarming... (Read our wiki)</a> </h5>
</ol>
</p>
<h3>It is not somehow similar to SOA?</h3>
<p>
<ol>
<li> Yes it is. It is trying to solve similar concerns and actually it can work well in a SOA environment.
<li> SOA requires some sort of ESBs and with SwarmESB we are targeting the orchestration and loose coupling issues that ESBs are trying to address.
</ol>
</p>
</section>
<footer>
<span class="ribbon-outer">
<span class="ribbon-inner">
<p>Projects by <a href="https://github.com/salboaie">salboaie</a> can be found on <a href="https://github.com/salboaie">GitHub</a></p>
</span>
<span class="left-tail"></span>
<span class="right-tail"></span>
</span>
<p>Generated with <a href="http://pages.github.com">GitHub Pages</a> using Merlot</p>
<span class="octocat"></span>
</footer>
</div>
</body>
</html>