A theoretical question ... about communication guarantees between objects in LSL

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

A theoretical question ... about communication guarantees between objects in LSL

Dr Ramesh Ramloll
I was wondering if I could get some ideas from the technical wonks out there. Here's my problem (not the real one..but I simplified it a bit to keep things brief). Everything implemented in LSL of course. I have two objects A and B, A sends messages to B.  I found that there are no guarantees that B will ALWAYS receive a message sent by A. I would expect the messages to be queued up, but seems that there is a black hole somewhere. Anyway, so, I then need to think about 'Acknowledgement system' that would cause A to resend if B does not receive it (within a set waiting period...). So this means that I need to put A in a sending loop until B sends an acknowledgment back to A.
OR.. I could just send messages from A to B, twice every time... just to reduce changes of a message not received. Should I go for the easy way ... or is there really a bigger advantage for trying to implement guarantees in.  Your thoughts?

--
'Consider how the lilies grow. They do not labor or spin.'
Rameshsharma Ramloll PhD, CEO CTO DeepSemaphore LLC, Affiliate Research Associate Professor, Idaho State University, Pocatello, ID 83209 Tel: 208-240-0040


_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users
Reply | Threaded
Open this post in threaded view
|

Re: A theoretical question ... about communication guarantees between objects in LSL

Slavin, Simon

On 12 Nov 2012, at 1:57pm, Dr Ramesh Ramloll wrote:

> I was wondering if I could get some ideas from the technical wonks out there. Here's my problem (not the real one..but I simplified it a bit to keep things brief). Everything implemented in LSL of course. I have two objects A and B, A sends messages to B.  I found that there are no guarantees that B will ALWAYS receive a message sent by A. I would expect the messages to be queued up, but seems that there is a black hole somewhere. Anyway, so, I then need to think about 'Acknowledgement system' that would cause A to resend if B does not receive it (within a set waiting period...). So this means that I need to put A in a sending loop until B sends an acknowledgment back to A.
> OR.. I could just send messages from A to B, twice every time... just to reduce changes of a message not received. Should I go for the easy way ... or is there really a bigger advantage for trying to implement guarantees in.  Your thoughts?

B keeps a count of how many messages it has received.  It provides a way of asking for its current count.

A asks B for its count.  A sends its message and waits a second.  A asks B for its count again.  If the two counts match, the message was not received.

Simon.
_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users
Reply | Threaded
Open this post in threaded view
|

Re: A theoretical question ... about communication guarantees between objects in LSL

Dr Ramesh Ramloll
I agree Simon, introducing a count is a simple solution. Just thinking aloud here, even if the count info is lost, does not matter... if a 'message send' is executed only if a count info is received, that would cover all bases 


On Mon, Nov 12, 2012 at 9:19 AM, Slavin, Simon <[hidden email]> wrote:

On 12 Nov 2012, at 1:57pm, Dr Ramesh Ramloll wrote:

> I was wondering if I could get some ideas from the technical wonks out there. Here's my problem (not the real one..but I simplified it a bit to keep things brief). Everything implemented in LSL of course. I have two objects A and B, A sends messages to B.  I found that there are no guarantees that B will ALWAYS receive a message sent by A. I would expect the messages to be queued up, but seems that there is a black hole somewhere. Anyway, so, I then need to think about 'Acknowledgement system' that would cause A to resend if B does not receive it (within a set waiting period...). So this means that I need to put A in a sending loop until B sends an acknowledgment back to A.
> OR.. I could just send messages from A to B, twice every time... just to reduce changes of a message not received. Should I go for the easy way ... or is there really a bigger advantage for trying to implement guarantees in.  Your thoughts?

B keeps a count of how many messages it has received.  It provides a way of asking for its current count.

A asks B for its count.  A sends its message and waits a second.  A asks B for its count again.  If the two counts match, the message was not received.

Simon.
_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users



--
'Consider how the lilies grow. They do not labor or spin.'
Rameshsharma Ramloll PhD, CEO CTO DeepSemaphore LLC, Affiliate Research Associate Professor, Idaho State University, Pocatello, ID 83209 Tel: 208-240-0040


_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users
Reply | Threaded
Open this post in threaded view
|

Re: A theoretical question ... about communication guarantees between objects in LSL

Mic Bowman
In reply to this post by Dr Ramesh Ramloll
on a different tack... depending on what is causing the messages to be
dropped, you might try using osMessageObject
(http://opensimulator.org/wiki/OsMessageObject).

We've gone to using the JsonStore module for communications. Its more
tuple space than messages, but it does make it easy to communicate
reliably to objects.
(http://opensimulator.org/wiki/OSSL_Script_Library/JsonStore)

--mic


On Mon, Nov 12, 2012 at 5:57 AM, Dr Ramesh Ramloll <[hidden email]> wrote:

> I was wondering if I could get some ideas from the technical wonks out
> there. Here's my problem (not the real one..but I simplified it a bit to
> keep things brief). Everything implemented in LSL of course. I have two
> objects A and B, A sends messages to B.  I found that there are no
> guarantees that B will ALWAYS receive a message sent by A. I would expect
> the messages to be queued up, but seems that there is a black hole
> somewhere. Anyway, so, I then need to think about 'Acknowledgement system'
> that would cause A to resend if B does not receive it (within a set waiting
> period...). So this means that I need to put A in a sending loop until B
> sends an acknowledgment back to A.
> OR.. I could just send messages from A to B, twice every time... just to
> reduce changes of a message not received. Should I go for the easy way ...
> or is there really a bigger advantage for trying to implement guarantees in.
> Your thoughts?
>
> --
> 'Consider how the lilies grow. They do not labor or spin.'
> Rameshsharma Ramloll PhD, CEO CTO DeepSemaphore LLC, Affiliate Research
> Associate Professor, Idaho State University, Pocatello, ID 83209 Tel:
> 208-240-0040
> Blog, LinkedIn, DeepSemaphore LLC, Google+ profile
>
>
> _______________________________________________
> Opensim-users mailing list
> [hidden email]
> https://lists.berlios.de/mailman/listinfo/opensim-users
_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users
Reply | Threaded
Open this post in threaded view
|

Re: A theoretical question ... about communication guarantees between objects in LSL

Dr Ramesh Ramloll
Thanks Mic. This is something new to me, will learn about it.


On Mon, Nov 12, 2012 at 11:31 AM, Mic Bowman <[hidden email]> wrote:
on a different tack... depending on what is causing the messages to be
dropped, you might try using osMessageObject
(http://opensimulator.org/wiki/OsMessageObject).

We've gone to using the JsonStore module for communications. Its more
tuple space than messages, but it does make it easy to communicate
reliably to objects.
(http://opensimulator.org/wiki/OSSL_Script_Library/JsonStore)

--mic


On Mon, Nov 12, 2012 at 5:57 AM, Dr Ramesh Ramloll <[hidden email]> wrote:
> I was wondering if I could get some ideas from the technical wonks out
> there. Here's my problem (not the real one..but I simplified it a bit to
> keep things brief). Everything implemented in LSL of course. I have two
> objects A and B, A sends messages to B.  I found that there are no
> guarantees that B will ALWAYS receive a message sent by A. I would expect
> the messages to be queued up, but seems that there is a black hole
> somewhere. Anyway, so, I then need to think about 'Acknowledgement system'
> that would cause A to resend if B does not receive it (within a set waiting
> period...). So this means that I need to put A in a sending loop until B
> sends an acknowledgment back to A.
> OR.. I could just send messages from A to B, twice every time... just to
> reduce changes of a message not received. Should I go for the easy way ...
> or is there really a bigger advantage for trying to implement guarantees in.
> Your thoughts?
>
> --
> 'Consider how the lilies grow. They do not labor or spin.'
> Rameshsharma Ramloll PhD, CEO CTO DeepSemaphore LLC, Affiliate Research
> Associate Professor, Idaho State University, Pocatello, ID 83209 Tel:
> <a href="tel:208-240-0040" value="+12082400040" target="_blank">208-240-0040
> Blog, LinkedIn, DeepSemaphore LLC, Google+ profile
>
>
> _______________________________________________
> Opensim-users mailing list
> [hidden email]
> https://lists.berlios.de/mailman/listinfo/opensim-users
_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users



--
'Consider how the lilies grow. They do not labor or spin.'
Rameshsharma Ramloll PhD, CEO CTO DeepSemaphore LLC, Affiliate Research Associate Professor, Idaho State University, Pocatello, ID 83209 Tel: <a href="tel:208-240-0040" value="+12082400040" target="_blank">208-240-0040


_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users