[Opensim-dev] Where should we put GetUserAppearance ?

liu xiaolu lulurun at gmail.com
Thu May 15 06:37:24 UTC 2008


To Sean,
This is a little complecated to explain (, for me :$). and sorry for I did
not mention it.
About the current flow:
>With the user server storing asset and
>inventory ids, the client is sent a wearables packet, which is just a
>bunch of UUIDs.  The client then goes and fetches the assets from the
>asset servers.
what you said is right, but this causes 2 problems:
1. the same as what you said the "ruth time". During the login process,
there is a short time that an avatar will be displayed with default
appearance.
this is not serious, but ->
2. After going into another region, the avatar will be seen in default
appearance(visualparams are all 100) from other clients' screen.
The detailed information can also be found at
http://opensimulator.org/mantis/view.php?id=1019
1019's attachment gives a working but not good solution. (at least fetching
asset data should be Asynchronous)

That problem is because RegionServer itself has no ability to get the
visualparams, (currently it only gets 13x2 UUIDs
and waits for client to request the visualparams back)
So I am thinking in "Scene.GetAvatarAppearance"(r4690 Scene.cs Line:1798).
We can
1. get wearables UUIDs(13x2), and then
2. foreach (UUIDs) { get actual assetdata(for visualparams) }.
Of cause, "2" is the task that "AssetCache" should do.
For "1", I think to consider in grid mode, "wearables UUIDs" should have an
optional chance to be fetched from an "External Service",
instead of a LocalModule(AvatarFactoryModule.checkdatabase).
So what would be the best of this "External Service" ? I think
InventoryServer is better than UserServer.
The reasons are:
1. UserServer should be concertrated on Authentication.
2. InventoryServer is good at serving (User tied up) UUIDs.
That is why I think "GetUserAppearance" should be put in InventoryServer.

regards,
lulurun

2008/5/14 Sean Dague <sean at dague.net>:

> On Wed, May 14, 2008 at 03:48:08PM +0900, liu xiaolu wrote:
> > Hi, everyone,
> > I am planing to implement "AssetPortability" in OpenSim,
> > The basic idea is to let RegionServer get assets from a
> > dynamic(user specified) AssetServerURL.
> >
> > Very thankful for someone added "asseturl" and "inventoryurl"
> > to the userprofile structure and the "Users" table.
> > (though I do not know exactly what it was he did)
> >
> > Recently, I found there is a stub "GetUserAppearance" in "IUserService".
> > This is a little different from what I am thinking, so here I would like
> to
> > share my plan for the "appearance portability" and have a discussion
> > with you.
> >
> > # Preparation
> > 1. User stores "wearables" in "inventoryserver"
> > 2. User stores actual "assetdata" in "assetserver"
> > 3. User tells its "asset/inventory url" to "userserver"
> > (by user registration or someway like openid)
> >
> > # Login
> > At http://openugai.sourceforge.net/?page=openasset_proposal
> > there are 2 possible patterns,
> > "Implemetation 1" is following current opensim - "GetUserAppearance" in
> > "UserServive".
> > "Implemetation 2" is my proposal.
> >
> > * Implemetation 1
> > 1. "UserServer" acts as a agent, when "GetUserAppearance" called,
> > 2. "UserServer" gets "wearables" from "inventoryserver"
> > 3. "UserServer" gets "assetdata" foreach "wearables" UUID.
> > 4. "UserServer" returns appearance to RegionServer(OGS1UserServices)
>
> Actually, you have this flow wrong.
>
>  1. Client -> Sim -> User Server (Get My Appearance)
>  2. User Server -> Sim -> Client (Appearance Packet - lots of UUIDs)
>  3. Client -> Sim -> Asset Server (foreach wearable get asset)
>  4. Client -> Sim -> Inventory Server (foreach wearable get inventory)
>
> If you look a little deeper on the GetUserAppearance data structures
> you'll see that only UUIDs are flying around.  There will probably be a
> caching of visual params as well, as it will make your ruth time when
> you first log in smaller.
>
> > * Implemetation 2
> > "GetUserAppearance" is not in "UserServer", it should be a module or
> > something
> > independent. There is
> > * "OGS1InventoryServices" incharge of communicating with
> "InventoryServer".
> > * "AssetCache" gets "assetdata" from "AssetServer".
> > I think we can use the 2 existing components to "GetUserAppearance".
> >
> > Why I prefer "Implementation 2" ?
> > 1. Just as UserServer does not provide "Inventory" information,
> UesrServer
> > also should NOT
> > provide appearance information.
> > (UserServer should be concentrated on providing basic user information
> and
> > the authentication.)
> > 2. If UserServer have to fetch Complete "Appearance", UserServer must
> know
> > about AssetServerUrl,
> > and something like "AssetCache" must be implemented inside UserServer.
> This
> > makes UserServer
> > become less indenpendent.
>
> That's actually not true.  With the user server storing asset and
> inventory ids, the client is sent a wearables packet, which is just a
> bunch of UUIDs.  The client then goes and fetches the assets from the
> asset servers.
>
> > 3. "Appearance" can be thought as "a special inventory folder called
> > 'wearables' ".
> > (InventoryServer is born to do such things)
>
> I think that mapping "special cases" onto existing services is trouble
> waiting to happen.
>
>    -Sean
>
> --
> __________________________________________________________________
>
> Sean Dague                                       Mid-Hudson Valley
> sean at dague dot net                            Linux Users Group
> http://dague.net                                 http://mhvlug.org
>
> There is no silver bullet.  Plus, werewolves make better neighbors
> than zombies, and they tend to keep the vampire population down.
> __________________________________________________________________
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
>
> iD8DBQFIKuARSamXem9TdyYRAr/pAJ9l1mnEnv7UE7Ne0vADuWdQcCn3ugCdGtbb
> ONUSNbCLV3fl+ITqL/ogqR8=
> =hhze
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
>


-- 
Liu Xiaolu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20080515/a8bbbbad/attachment-0001.html>


More information about the Opensim-dev mailing list