Loci was called a 'connectivity broker' for a good reason: It wasn't going to
dictate the protocol to be used between nodes. So, a way for Overflow to
communicate with other Overflows running across the Internet, is to let
Overflow establish its own line of communication. Here is a flowchart
illustrating that:
+--------+
(HOST A) | Loci |
+--------+
| /|\
| |
LOCAL | | LOCAL
| |
\|/ |
+--------+
(HOST A) | GMS |
+--------+
| /|\
| |
| |
/ \
/ \
/ \
INTERNET / \ INTERNET
/ \
| |
| |
\|/ |
+--------+ +--------+
(HOST B) | GMS | | GMS | (HOST C)
+--------+ +--------+
| /|\
LOCAL | | LOCAL
| |
/ \
+----------+/___/ \____+----------+
| |\ | |
| Overflow | | Overflow |
| |___________________________________\| |
+----------+ OVERFLOW'S PROTOCOL /+----------+
(HOST B) (HOST C)
Now if Overflow wraps foreign applications, Overflow can directly control
node-to-node communication while GMS 'brokers' (one broker; 1st approach to
node-to-node communication):
+--------+
(HOST A) | Loci |
+--------+
| /|\
| |
LOCAL | | LOCAL
| |
\|/ |
+--------+
(HOST A) | GMS |
+--------+
| /|\
| |
| |
/ \
/ \
/ \
INTERNET / \ INTERNET
/ \
| |
| |
\|/ |
+--------+ +--------+
(HOST B) | GMS | | GMS | (HOST C)
+--------+ +--------+
| /|\
LOCAL | | LOCAL
| |
(HOST B) / \ (HOST C)
+----------+/___/ \____+----------+
| |\ | |
| Overflow | | Overflow |
| |___________________________________\| |
+----------+ OVERFLOW'S PROTOCOL /+----------+
| /|\ | /|\
| | LOCAL LOCAL | |
\|/ | \|/ |
+----------+ +----------+
| App. | | App. |
+----------+ +----------+
(HOST B) (HOST C)
But in some circumstances (e.g., when the foreign app has its own protocol),
both Overflow and GMS can 'broker' (not directly control) node-to-node
communication (two brokers; 2nd approach):
+--------+
(HOST A) | Loci |
+--------+
| /|\
| |
LOCAL | | LOCAL
| |
\|/ |
+--------+
(HOST A) | GMS |
+--------+
| /|\
| |
| |
/ \
/ \
/ \
INTERNET / \ INTERNET
/ \
| |
| |
\|/ |
+--------+ +--------+
(HOST B) | GMS | | GMS | (HOST C)
+--------+ +--------+
| /|\
LOCAL | | LOCAL
| |
(HOST B) / \ (HOST C)
+----------+/___/ \____+----------+
| |\ | |
| Overflow | | Overflow |
| | | |
+----------+ +----------+
| /|\
| LOCAL LOCAL |
\|/ |
+----------+ +----------+
| App. |___________________________________\| App. |
+----------+ ANY PROTOCOL /+----------+
(HOST B) (HOST C)
And in other circumstances, GMS may directly control node-to-node
communication (no brokers; 3rd approach):
+--------+
(HOST A) | Loci |
+--------+
| /|\
| |
LOCAL | | LOCAL
| |
\|/ |
+--------+
(HOST A) | GMS |
+--------+
| /|\
| |
| |
/ \
/ \
/ \
INTERNET / \ INTERNET
/ \
| |
| |
\|/ |
+--------+ +--------+
(HOST B) | GMS |_______\| GMS | (HOST C)
+--------+ /+--------+
| /|\ | /|\
LOCAL | | | | LOCAL
| | | |
(HOST B) / / \ \ (HOST C)
+----------+/___/ / \ \____+----------+
| |\ / \ | |
| Overflow |______/ \______\| Overflow |
| | /| |
+----------+ +----------+
| /|\ | /|\
| | LOCAL LOCAL | |
\|/ | \|/ |
+----------+ +----------+
| App. | | App. |
+----------+ +----------+
(HOST B) (HOST C)
I think we can make use of all 3 approaches and choose between none, one and
two brokers, depending on the circumstances.
Comments please.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+