[Opensim-dev] new idea about simcrossing (maybe)
Lc
lcc1967 at gmail.com
Tue Jul 22 11:33:07 UTC 2008
unfortunatly i'm not a coder at all :/
Sm
On Tue, Jul 22, 2008 at 12:22 PM, Melanie <melanie at t-data.com> wrote:
> Hi,
>
> this would really be great to have. There is one thing that can't be
> snapped and sent until the actual crossing, though - script states
> in attachments. Those would need to be snapshotted at the very
> moment of the crossing, and send at that time.
>
> Melanie
>
>
> Lc wrote:
> > I was borered recently at the office and try to see how we can have a
> > smooth simcrossing.
> > I don't know how actual simcrossing works, but here is my tough :
> >
> >
> > The idea is using the concept used in GSM cellphone to handle handover
> > between two cells without droping the communication.
> >
> > Concept:
> >
> > The SimCrossing (SC) is based one several messages exchanged between the
> > object (Object), the actual sim (OriginSim) and the next sim
> > (TargetSim). The main exchange are located in the HandOverArea (HOarea)
> > located on the OriginSim. This area is computed by the viewer for each
> > TargetSim (maximum 4 ).
> >
> >
> >
> > Definition
> >
> > Name
> >
> >
> >
> > Description
> >
> >
> >
> > Comment
> >
> > Object (OBJ)
> >
> >
> >
> > Any prims/avt rezzed InWorld that could trigged a SIMCROSSING event
> >
> >
> >
> >
> > OriginSim (ORIGSIM)
> >
> >
> >
> > Actual simulator where the object stand BEFORE simcrossing
> >
> >
> >
> >
> > TargetSim (TARGET)
> >
> >
> >
> > Simulator where the OBJECT could go
> >
> >
> >
> >
> > ActiveSet
> >
> >
> >
> > List containing all the neighborhoods sims and their data
> (location,ping…)
> >
> >
> >
> >
> > HOarea
> >
> >
> >
> > Logical area defined on the object level where all the messages exchange
> > should occured
> >
> >
> >
> > See figure 1 for more details
> >
> >
> >
> > Definition HOArea
> >
> > In order to have a smooth transition, we need to determine an HandOver
> > area where all the simcrossing messages exchange should happens. This
> > area is computed on the object level regarding the ping latency between
> > the Target and the object velocity. This area contains a RedZone area
> > where all the Simcrossing conditions should be satisfied, otherwise the
> > simcrossing won't happen.
> >
> >
> >
> >
> >
> > Phase 1 : Login or rezzing
> >
> > During the login phase, the object asks the surrounding sims list to its
> > actual simulator. We can call this list the ActiveSet . The ActiveSet
> > contains the sim data and their "ping" time.
> >
> > The object compute the SimCrossing boundaries and determine an
> > "HandOver" area with a Redzone area based on the timers (ping + delta).
> > Normaly the Handover should be ready before entering the Redzone.
> >
> > *From*
> >
> >
> >
> > *To*
> >
> >
> >
> > *Message*
> >
> >
> >
> > *Comment*
> >
> > *Object*
> >
> >
> >
> > Simulator
> >
> >
> >
> > SCGetActiveSetReq
> >
> >
> >
> > Ask the OrigSim a list containing all the neighborhood sims and their
> > coordinate, status…
> >
> > *OrigSim*
> >
> >
> >
> > Object
> >
> >
> >
> > SCGetActiveSetSent
> >
> >
> >
> > The Sim send all the data to the object
> >
> > Once the ActiveSet received, the object start pinging all the TargetSims
> > and compute its own HOarea based on its velocity and the ping results.
> > This action should be performed on regular basis to update the ActiveSet.
> >
> >
> >
> > Phase 2: Object logged and alive entering in the HandOver Area
> >
> > On periodic basis, the object send a ping to each simulator on its
> > activeset and update their status accordingly in order to keep an up to
> > date neighbored simulator list.
> >
> > When the object enter in the HandOver area, a message "SimCrossing
> > Request" is sent to the Source simulator. The simulator will relay the
> > message to the next Simulator (Target Sim) and will start downloading
> > the object context. Those data should include all the running code, the
> > values of the code's variables like a memory dump (heap,stack and such).
> >
> > Case without problem in the HOarea
> >
> > *From*
> >
> >
> >
> > *To*
> >
> >
> >
> > *Message*
> >
> >
> >
> > *Comment*
> >
> > *Object*
> >
> >
> >
> > OrigSim
> >
> >
> >
> > SCRequest
> >
> >
> >
> > Contains the TargetSim Id.
> >
> > *OrigSim*
> >
> >
> >
> > TargetSim
> >
> >
> >
> > SCObjReq
> >
> >
> >
> > Send a simcrossing request to the target sim with all the credentials,
> > number of script running…
> >
> > *TargetSim*
> >
> >
> >
> > OrigSim
> >
> >
> >
> > SCObjAck
> >
> >
> >
> > If all the credentials and data are ok, the TargetSim sent that message.
> >
> > *OrigSim*
> >
> >
> >
> > Object
> >
> >
> >
> > SCObjAck
> >
> >
> >
> > The OrigSim send an ACK to the object.
> >
> > *OrigSim*
> >
> >
> >
> > TargetSim
> >
> >
> >
> > SCObjDataSend
> >
> >
> >
> > The OrigSim start sending the object's data to the TargetSim
> >
> > *TargetSim*
> >
> >
> >
> > OrigSim
> >
> >
> >
> > SCObjDataACK
> >
> >
> >
> > The TargetSim acknowledge the data and give a sim crossing clearance.
> >
> > *TargetSim*
> >
> >
> >
> > OrigSim
> >
> >
> >
> > SCHoReady
> >
> >
> >
> > Give the final clearance once the context is ready on the target sim.
> >
> >
> >
> > Case with problem
> >
> > *From*
> >
> >
> >
> > *To*
> >
> >
> >
> > *Message*
> >
> >
> >
> > *Comment*
> >
> > *Object*
> >
> >
> >
> > OrigSim
> >
> >
> >
> > SCRequest
> >
> >
> >
> > Contains the TargetSim Id.
> >
> > *OrigSim*
> >
> >
> >
> > TargetSim
> >
> >
> >
> > SCObjReq
> >
> >
> >
> > Send a simcrossing request to the target sim with all the credentials,
> > number of script running…
> >
> > *TargetSim*
> >
> >
> >
> > OrigSim
> >
> >
> >
> > SCObjReqNAK
> >
> >
> >
> > The TargetSim reject the request due to xxx reason.
> >
> > *OrigSim*
> >
> >
> >
> > Object
> >
> >
> >
> > SCRequestNAK
> >
> >
> >
> > The OrigSim sent a rejection message and the object can't perform the
> > sim crossing.
> >
> >
> >
> > In any case :
> >
> > If the object reach the RedZone area before receiving *_SCObjDataAck_*,
> > a velocity slowdown should be trigged to allow the end of the data
> > download. We can eventually trigged an LSL state change (tbd).
> >
> > If the object reach the end of the RedZone before receiving
> > *_SCHoReady_* the object stop the sim crossing and a major failure is
> > trigged. This case shouldn't happened.
> >
> >
> >
> > Case when the object didn't want to simcross
> >
> > If the object leave the HOarea, a message is trigged to release all the
> > data on the TargetSim.
> >
> > *From*
> >
> >
> >
> > *To*
> >
> >
> >
> > *Message*
> >
> >
> >
> > *comment*
> >
> > *Object*
> >
> >
> >
> > OrigSim
> >
> >
> >
> > SCabort
> >
> >
> >
> > Send an abort message to the OrigSim
> >
> > *OrigSim*
> >
> >
> >
> > TargetSim
> >
> >
> >
> > SCobjAbort
> >
> >
> >
> > The OrigSim send this message to the TargetSim. The Targetsim clear the
> > previous object request data.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Sim Crossing
> >
> > When the object reach the simcrossing limit, the viewer switch to the
> > Target Sim and the TargetSim send an HandoverCompleted message to the
> > SourceSim.
> >
> > The SourceSim release the object context.
> >
> > *From*
> >
> >
> >
> > *To*
> >
> >
> >
> > *Message*
> >
> >
> >
> > *comment*
> >
> > *OrigSim*
> >
> >
> >
> > TargetSim
> >
> >
> >
> > SCperforming
> >
> >
> >
> > The OrigSim send the last actualized dump from the object to the target
> sim
> >
> > *TargetSim*
> >
> >
> >
> > OrigSim
> >
> >
> >
> > SCperformed
> >
> >
> >
> > Acknowledge the sim crossing. The simulator clear the object. The Ho is
> > completed
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Opensim-dev mailing list
> > Opensim-dev at lists.berlios.de
> > https://lists.berlios.de/mailman/listinfo/opensim-dev
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20080722/b0f44294/attachment-0001.html>
More information about the Opensim-dev
mailing list