Re: [Vrspace-dev] Standalone VRS
Brought to you by:
jalmasi
|
From: Josip A. <jo...@vr...> - 2004-09-02 19:12:11
|
Rob Meyers wrote: > > This questions concerns whether to link spaces together one after > one as you visit them, or to always have two hop connection: first to > your gateway, and your gateway to the current space. ... Yeah I'm aware of arguments. Yeah, it's slow. But - why? Mostly cuz we have zillion of http requests - one for each object we check. Then again, you don't have to pass the same way thru gates to reach the destination. You should 'bookmark' the destination - remember ip, port etc. and connect directly. Now maybe you can't connect directly cuz destination has dynamic ip, then you have to bookmark it's PassiveGate/RemoteGate/whatisitcalledanyway (or something) on the gateway (vrspace.org). The way it is, it's about content (and metadata!) distribution. And here's this very concrete example:) So, Joe writes first person shooter. Rob built his very first aggressive avatar and wants to give it a try. So, Rob connects to vrspace.org and passes to Joe's space - can't connect directly cuz Joe has dynamic IP. All parties (Rob,Joe,vrspace.org) run web servers within vrspace servers. So, Joe gets new avatar (when he saw Rob he's got it in the cache) and Rob gets new code (actually you get that with WebGate, exec distribution is far future), while vrspace.org gets both new code and new avatar. They all get all the new stuff. Including new versions of vrspace.db which contains all the metatadata of all the space. Version control? IMHO not necessary - HTTP If-Modified-Since will do. Collaboration. The other thing is, information is there where required. We actually eliminate hops this way. And yet another, you don't have to upload anything anywhere, it's all transparent and once anyone saw it it's available to anyone else. Sure, these are my dreams. Status is: we have Gates, I just wrote caching http proxy, and we need only the way to search the stuff. Guess I should concentrate on NeuroGrid finally. Then we have all the components, and just need a couple more years to make it work;) This doesn't have much to do with the client, it's about standalone: I wanna run my local server, allocate few gigs for caching all I fetch via http, pop3 or nnrp, meaning all the information/content I get, and never search for it again. > Ports versus Zones: > > I am completely in support of the Zone idea. And yes, carrying > things from one space to another has nothing to do with whether you use > Zones or ports ( more below on Personal Spaces ). Here are the problems > I see with continuing to use only Ports. Saying you have 10 major > worlds, each of with have 10 sub locations. By sub location, I mean you > walk are walking around outside, then you come to a castle. Walking > inside the castle brings you to a sub-location, basically its own > scene. That's a total of 100 ports on your server. Now say you have > 1000 users ( that's what we are shooting for right ). Now you have a > total of 1100 ports on your computer waiting for requests. Furthermore, > when if there is no program listening on those ports to hear the > connection, then there is no connection. Hence we would need about 1100 > instances of the server running to accomodate. Not even remotely possible. Hey, but this is plainly wrong implementation of subspaces. I'd do that with filters: filter out events comming from outside the room, don't let events to people not in the room, etc, can filter on user coordinates or room name or some general ZoneFilter. > A fix: Have one super server that first receives all requests on > port 8500. It then checks to see if the particular port the client is > trying to reach has a server running. It then starts up the server at > that port, and then there is a connection. Slow, but not > inconceivable. How's this? every single time a user wants to move from > one location to another, it requires instantiating a new TCP > connection. TCP connections take both time and memory. Can a computer > support this many simultaneous TCP connections? Quiet down these > troubles and I'll drop the Zone idea. Wrong again - that's what PipedConnection is for;) Though you just gave me some thought... see, you could make such kind of Gate that runs another server. Though it needs not be org.vrspace.server.Server at all, you can use org.vrspace.server stuff like lib. BTW, 1000 connections isn't _that_ much, you get these on irc servers etc. Sure it's a lot for a FPS but not for a MUD, etc. > Personal Space: > > I absolutely want Personal Spaces. Why? What is a personal space, > but a database of your own objects. If we were not to use these spaces, > then essentially we would have to create a database in each User > object. Classically recursive. The situation begs for a it. Right. And I want my own database;) And my personal space, but on my box. You already have it, right? Look, everyone can freely run their own servers/spaces on their boxes, once they pass thru us we distibute their content for free. They wanna their server on our server, they gotta pay - 70 memberships buys one server, and I have no problems having 70 vrspace servers on one server with one db server handling 70 databases. So, for this to happen, we need just a bit code (personal eddition with easy installation, bookmarks etc) and some more organization, like membership cards and who will do what and such. Then, some marketing on lists and groups and forums... I mean, if you can buy it for $40 a year it's really not worth the effort;) > Why use Xj3D, an IE window and Contact with you logged in does this > ?!? You edit server properties online! Calm down, I was just testing;) But yeah, this is why this src/xj3d does. Tought I need server console, so why not do it in 3d? 2d = 3d - 1d after all:) Well xj3d doesn't handle vrml good, but it's a java3d Component... ... in more details: VRML is hot for database visualization: you never get relations drawn well in UML cuz it's 2d, and arrows always cross each other. So, why not draw boxes and arrows in 3d? You can visualize row numbers (box height), col number (box width) etc, then just put some TouchSensor to edit table sql or something. Did some code too, examine DatabaseMetadata and stuff and generate vrml. It's all boxes and arrows, gonna work fine even in xj3d, which is a Component after all:) Suppose you run 70 vrspace servers and 70 databases on your box, how would you put it in 3d? So that was the idea. Hacked a bit, everything is _much_ easier if you have access to Client and VRObject and Component and alltogether. Only if it worked:) > Yeah I would like to make VRSpace as close to the developer as > possible. Guess we'd do it much better than close for users:) Cuz that's we do every day... that's how I made that James - I need mail every day, used to run vrspace server starting 'run' ant target from jEdit... one big still missing from my point of view - I need ClassLoader able to unload classes and load new versions in runtime, and the appropriate Commands. Now it's a big deal cuz you can't unload class just like that cuz everyone keeps references to everything so you need to lock and cleanup, and this is about Transaction and VRObject.lockClass() and other long stories. Guess we could use local 'shutdown' command. Something that doesn't do System.exit() but calls Server.shutdown(). Then make targets for integration with jedit, eclipse etc. > Universal ID is clearly not going to be an issue for a while. I > like the way you put it here you@yourhost. What I didn't like before is > that Gates seemed to work like, once you gate you become > you@lastgatinghost, which doesn't make any sense. If you are always > you@yourgateway, then it sounds pretty unique. Well yeah, that's kind of handshake: you login to some host on some gate thru gate thru gate and get some you@gate1@gate2@blah login. He remembers you like that and you keep this on your disk. Sure, digital key exchange and stuff, sometimes, maybe:) > Absolutely, I started looking at JXTA yesterday and soon realized > that this is much more appropriate (and easier to implement) through that. Well, ages ago Alejandro suggested JINI for server community. JINI is no more, but JXTA is, so...:) Though we planned this for V2:) And I still think so, OK let it be here but we have a lot of other things to do, let em make something better in the meantime. BTW new JXTA out today. Regards... |