[Opensim-dev] .net serialization of SOGs

diva at metaverseink.com diva at metaverseink.com
Mon Oct 11 00:06:26 UTC 2010


Adam ping!
How's the SOG/SOP refactor coming along? This is coming very close to 
the need for the refactoring...

On 10/10/2010 4:45 PM, Justin Clark-Casey wrote:
> On 09/10/10 19:05, diva at metaverseink.com wrote:
>> Dear devs,
>>
>> I'm pulling my hair here with the serialization of scene objects. This
>> is horrible! Using .Net serialization for something as important as this
>> is the worst idea ever. We're completely frozen. I'm trying to add an
>> additional field for the creator info, and I'm stuck in all sorts of
>> ways: I can't compute the value of that field at serialization-time, and
>> then there are the issues of compatibility with previous versions of the
>> SOP class.
>>
>> I'd like to understand all the implications of doing an entirely
>> different serialization procedure, one that does not use reflection, and
>> that allows for processing-during-serialization. What will break, and
>> therefore needs fixing?
>
> Grovelling back through the archives, I found the e-mail where I
> proposed this very thing back in June 2009!
>
> https://lists.berlios.de/pipermail/opensim-dev/2009-June/006805.html
>
> And here's the old patch which partially implemented write.
>
> https://lists.berlios.de/pipermail/opensim-dev/2009-July/006954.html
>
> As you wrote later, some equivalent code was later put in libOMV, though
> I would test it carefully (at the time I vaguely recall thinking that it
> didn't deal with some serialization cases, but this may well have been
> addressed).
>
> I'm not excited about whether this code remains in libOMV or is placed
> in OpenSim if it's going to act as a legacy format in some way.
>
> As far as I recall, there are no implications of doing this manually as
> long as the XML ends up being the same.
>
>>
>> I understand all archiving related to previous versions will break, so
>> we need to keep supporting the existing serialization 'disease' for the
>> foreseeable future. I also understand that TPs/crossings between sims
>> that talk different SOG serializations will break, but that's not so bad.
>
> If the SOG serialization is going to change in an incompatible manner, I
> absolutely need to bump the OAR/IAR version numbers at the same time in
> order to maintain confidence in the archiving. I also need to write the
> code to stop old OpenSims trying to load these new versions.
>
> Please can we co-ordinate this in a branch?
>
>>
>> Anything else I should be aware of before I go off and redo this?
>
> Although .net auto-serialization is fatal if you want to make type
> changes to existing fields, it has been very convenient for adding new
> fields, since extraneous xml elements are simply ignored on
> deserialization. I think it's almost essential that a new format behave
> in the same way.
>
> Also, are you going to put version numbers in the new serializations so
> that any future incompatible can be dealt with in some manner?
>
> Is it worth considering whether other virtual environments might store
> completely different object serializations?
>
> For any new format, I agree with Dahlia in that something OSD-like may
> be worth looking at, perhaps just a simple map as I was considering for
> the 'dynamic attributes' in SOP. In fact, this could allow that to fit
> in nicely.
>



More information about the Opensim-dev mailing list