Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Stefan Andersson
I would definitively think that the Region Modules wuld get a ref to the global services registry. I totally agree with your sentiment, but I also see that you have to draw a line somewhere. This is going to sound odd coming from me, but you need to take SOME design decisions, even in a

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Well I agree the name CommsManager is a bad choice and I'm all for changing/getting rid of that. I don't see this as a Manager but just another registery of modules. My proposal certainly isn't about making/keeping all the comms code centralised. I totally agree that we should have modules, and

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
PS. One issue that I don't  like about a lot of the Region to UGAIM code that is currently in some of the region modules, is how the network/transport code is mixed up with the handling of some basic features like friends, presences etc. I do think we should have separate transport modules. So

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Stefan Andersson
I think that's what Melanie is leaning towards, but that would mean every module would have to be connected to at least one scene. I do believe that you would have modules doing stuff already from a setting where there is no scenes loaded. The regionLoader, for example. :D Best regards,

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
I think that is basically what me and Stefan are talking about. I started off with the modules being more specialised for network/comms (and db in standalone mode), but from the discussions the idea is basically morphing into a Global module system. --- On Thu, 26/2/09, Frisby, Adam

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
I was never suggesting that we keep CommsManager as it is. I was suggesting baby steps so for now there would be a commsManager, but inside it, it would be broken up into modules, that just registered interfaces. Then in time we would get rid of the current CommsManager interface and just have

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
Well, I wanted to remove that extra step in the global namespace chain. The idea was not to supply any Scenes to these modules as a part of startup, rather like this chain of events: MyApplicationModule : IMyApplicationModule, IMyRegionModuleInterface MyApplicationModule.Initialise(Application

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Stefan Andersson
+1, looks good. Best regards, Stefan Andersson Tribal Media AB Date: Thu, 26 Feb 2009 11:38:52 + From: mela...@t-data.com To: michaelwr...@yahoo.co.uk; opensim-dev@lists.berlios.de Subject: Re: [Opensim-dev] Comms Manager Well, I wanted to remove that extra step in the global

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Stefan Andersson
I'm actually with Melanie on this; using the call-back registration and event attachment seems so much flexible and cleaner - and more in line with where the region modules have been taking us. Best regards, Stefan Andersson Tribal Media AB Date: Thu, 26 Feb 2009 11:56:31 + From:

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
And, as an afterthought: IClientTrackerModule { OnNewClient(IScene scene, IClientCore client); OnClientClose(IScene scene, IClientCore client); } IClientTracker : IGlobalModule, IClientTrackerModule Initialise() { OnNewScene += OnNewScene; OnRemoveScene += OnRemoveScene; } OnNewScene(IScene

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Well I think we are very close to having a combined solution/proposal. The two differences I see between my proposal and melanie's are the initialisation interface for the modules and where they can register their own interfaces with. For initialisation we have two different interfaces(that

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
I still question if Global modules (that are really providing global services) should get any references to Scene/IScene; either by events of initialisation calls. If they are providing services, then other modules/components should be consumers of them, so only the consumers need references to

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Stefan Andersson
Um, yeah, having 'Scene' as a type in anyhting outside of the Region will lead to grief. Suggestion: --- OpenSim.Framework: --- IGenericModule { Initialise(); PostInitialise(); } --- OpenSim.Region.Framework: --- IRegionModule : IGenericModule { OnNewScene();

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
Hi, Scenes _will_ be handled there, so, it might as well be facilitated, rather than attempting an isolation level that won't work in practice, leading to horribly ugly hacks to circumvent it later. I have lined out 3 concrete use cases (ClientTracker, SceneTracker, RemoteAdmin) already that

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
I don't think Grid and Asset modules need to load into region servers, and vice versa. At least not by the same interface. That interchangeability makes other things that are useful almost impossibly complex. Melanie Stefan Andersson wrote: No, didn't notice that, but I question why Grid or

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Just a though,t but maybe we are trying to be too generic in finding a single interface that meets all needs. We have a plugin loader (Mono.addins) that can quite easily load different plugin types. So by using the IApplicationPlugin system, we can have them also loading other plugin types.

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
I'd have to see that, but it sounds good. Can you illustrate? Melanie MW wrote: Just a though,t but maybe we are trying to be too generic in finding a single interface that meets all needs. We have a plugin loader (Mono.addins) that can quite easily load different plugin types. So by using

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
You just can't let go of the centralistic *Manager idea..! IMHO, clients have no business at app level. Clients connect to regions through client stacks. Which can be shared modules for constellations where one client connection handles all regions in an instance. IGlobalModuleRegistry {

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Well I hadn't really thought out all the details but what I meant is we can have a IApplicationPlugin that can load other plugin types itself. So if we look at the code in OpenSimBase that loads IApplicationplugins it is:  protected virtual void LoadPlugins()     {    

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Hmm, I never suggested anything that would mean one scene be able to directly access another. I see the GlobalRegistry as a very basic interface something like:  public interface IGridServiceCore     {     T GetT();     void RegisterInterfaceT(T iface);     bool TryGetT(out T

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
If you want to be more flexible, then my approach is better. In your model, a global module has not way to _prevent_ being accessed by Scene. I believe Scene has no business holding a ref to the application, or accessing the global registry. In my design, each module has the power to decide

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
We also should think of baby steps in how we could refactor the current setup. We do have the CommsManager if we like it or not, and I do think the easiest way to refactor that is to make it into a global Registry that can be accessed from the regions. That requires the least amount of work

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Well actually my suggestion of supporting multiple plugin interfaces allowed both approaches and left everything up to the module creator. But I think we should wait for input from others now as we aren't really getting anywhere on the fine details. I think we have the basis of a system just

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
I know I said we should wait for other people to give some input, but just one last suggestion. Maybe we should have three registeries. A ApplicationServiceRegistry that is only accessable from the application level), A SharedServiceRegistry that is accessable from the application and all

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
I think introducing cruft to fix cruft is no good. I think that the new system should be brought in alongside the old as a clean start, and then services migrated to it, rather than trying to morph CommsManager. Melanie MW wrote: We also should think of baby steps in how we could refactor

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
I think that would introduce a layer of complexity in core, where i think that complexity (e.g. registering to scenes) s better off distributed inside the modules that actually need it. Keep it simple. I believe my approach is what will work with the least amount of core code, and provide the

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
I still think we should have a SharedRegistry that all Scenes have access to. Some of the current shared RegionModules could move to using it as well. And I know some of the other devs want one to; Adam and Stefan were talking about one in IRC the other day. But if we all agree that we

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
In my (much simpler) design, the IScene won't even need to be on the interface. All that is needed is for the core (Scene loader) to provide the OnNewScene and OnRemoveScene events. In my example, I placed those on the interface, that was actually not needed at all. I do believe that the

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Well I still want to be able to have a module that implements a very simple generic interface something like:   public interface IGridServiceModule     {     void Close();     void Initialise(IGridServiceCore core);     void PostInitialise();     } And all it has to do is call a

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
I'm not objecting to your module. if IGridServiceCore then has the registry, then that is fone. I'm not dead set on IApplicationModule, it is simply the only one I know at that level. So, define: IGridServiceCore { ... void RegisterModuleInterfaceT(T module); void UnregisterModuleInterfaceT();

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
I'm not actually bothered about the interface per se. What I require is to be able to dynamically load generic modules that no where in that module does it know about IScene/Scene. I actually see your approach as complex because it demands they need to know how to register to a scene

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
Well, here goes MW wrote: I'm not actually bothered about the interface per se. What I require is to be able to dynamically load generic modules that no where in that module does it know about IScene/Scene. That can be done with what you suggested I actually see your approach as

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Again your looking for one solution where I don't think one fits or if it does we haven't found it. I don't see RegionLoaders or anything like that using the generic interface that I'm talking about. They should be separate and as you said the scene shouldn't have access to them. But that

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
A couple of issues/questions are: How would a Region/ServiceModule say what interface it wanted to register, it might implement a couple but only want to register one, or it might want to register its class type. And I'm taking it we would still have the ApplicationPlugin that could register

[Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Diva Canto
[Warning: long and heavy-duty stuff here] So, I just had an insight this morning as I woke up. We've scratched our heads about this fuzzy black-box component called the viewer, and how horrible it is for open systems because it assumes the regions proxy all the security-critical data etc etc.

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Justin Clark-Casey
MW wrote: A couple of issues/questions are: How would a Region/ServiceModule say what interface it wanted to register, it might implement a couple but only want to register one, or it might want to register its class type. :( Yeah, you're right - for some reason I forgot that you have to

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Melanie
Justin Clark-Casey wrote: Another critical example: inventory. The CAP URL for this should be pointing directly to the Inventory server, not to the regions. I understand that inventory over CAPs had some issues in the past. I just fiddled with it this morning, and it's working -- I'm sure

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Diva Canto
Here's the thing: the CAPs giver can define whatever it wants as CAPs providers. So I think what we have currently is a subset of what I'm saying below. Specifically, the CAPs giver can delegate CAPs to trusted regions. But obviously, we need to think more about this. My main goal here is to

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Diva Canto
Melanie wrote: Linden turned it off because it's broken in the client. So, we can try to use it but will hit the same wall, since the client was never fixed. Melanie: are you 100% sure about this? This, of course, is critical. The whole point of my thinking was to access inventory over

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Melanie
That is what was said. Linden reverted the inventory protocol to UDP on their servers because of an issue in the viewer that was so fundamental that it was decided to not be worth fixing. Whether this is true, I don't know. but it was said. Melanie Diva Canto wrote: Melanie wrote: Linden

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Diva Canto
I don't subscribe to that mailing list. Can someone please do that? I've been searching on Google, and I found a meeting with Mark where he clearly says that inventory access has swicthed to caps: http://wiki.secondlife.com/wiki/User:Zero_Linden/Office_Hours/2008_Mar_13 (search 'caps') I

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Dirk Krause
I can do that. Is the correct question: Are the inventory requests done via caps or via UDP? Von: opensim-dev-boun...@lists.berlios.de [mailto:opensim-dev-boun...@lists.berlios.de] Im Auftrag von Diva Canto Gesendet: Donnerstag, 26. Februar 2009 22:24 An: opensim-dev@lists.berlios.de

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Diva Canto
Yes, something like that. And If they're done via UDP, what was the problem with the Inventory CAP that was deployed sometime last year? Thanks. Dirk Krause wrote: I can do that. Is the correct question: Are the inventory requests done via caps or via UDP? *Von:*

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Dirk Krause
Done. Von: opensim-dev-boun...@lists.berlios.de [mailto:opensim-dev-boun...@lists.berlios.de] Im Auftrag von Diva Canto Gesendet: Donnerstag, 26. Februar 2009 22:32 An: opensim-dev@lists.berlios.de Betreff: Re: [Opensim-dev] Authentication, take 2: Capabilities Yes, something like that.

[Opensim-dev] Removing the NPC and Test Clients from core

2009-02-26 Thread Melanie
Currently, we have three projects, the test client and two NPC demos, that are essentially unmaintained. I would propose to drop those from core, since their only reason for existence seems to be to increase the count of files to edit when adding to IClientAPI. Dropping those from core would

Re: [Opensim-dev] Removing the NPC and Test Clients from core

2009-02-26 Thread Justin Clark-Casey
Melanie wrote: Currently, we have three projects, the test client and two NPC demos, that are essentially unmaintained. I would propose to drop those from core, since their only reason for existence seems to be to increase the count of files to edit when adding to IClientAPI. I'm not

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
On that subject I keep coming back to the idea that there should be two register Interface methods. And my lastest idea is about having the concept of Primary Registry and Secondary Registry as a concept in the IServiceCore interface. The primary registry will be the protected Application

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Or a slightly different approach would be to add a security level as a a param of the RegisterInterface method. So that a module could register multiple interface with different security levels. Its then up to the application/loader which componets get access to which interfaces (or in our

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
Why is it that you want to have some fixed, hardcoded behavior instead of leaving it to the module? I thought what we ended up with was fine and agreeable to all, and now here you come again with region modules/regions accessing the core directly. I think that is a BadIdea(tm) to allow calls

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread MW
Did you actually read what I said? I said the base idea of ApplicationPlugins being able to register with the ApplicationRegistry and with scenes as they wish is what we were going with. But we would then have a Plugin that was a loader of IServiceModules. The ideas I was throwing out there

Re: [Opensim-dev] Comms Manager

2009-02-26 Thread Melanie
Hi, MW wrote: Again I never mentioned the Regions/Region modules accessing the core at all. I said the Service modules would be able to use diferent Registry methods to say if they should be added to the Scene Registries or not. I'd say thats a step away from a hardcode behavior of having

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Diva Canto
After more poking at the viewer, here's what I found. FetchInventoryDescendents seems to be working consistently over CAPs, in fact better than over UDP. When the agent logs in, the client always invokes that CAP, unlike the message over UDP which only seems to come after a clear cache. That

Re: [Opensim-dev] Authentication, take 2: Capabilities

2009-02-26 Thread Melanie
Well, if FetchInventoryDescendents works better over CAPS, then we can try using that. Now, that would serve another purpose beyond your intended trust issue: Currently, inventory is fetched by the region en-bloc, rather than being fetched only on demand. There isn't even a function to fetch a

Re: [Opensim-dev] presenting at a web3D meeting

2009-02-26 Thread Toni Alatalo
daniel miller kirjoitti: sorry for the cross-post, but this is something I think all parties yah wasn't sure where to reply, but doesn't matter too much i guess :o should be aware of. I have been asked to give a short presentation plus QA on Opensim, Openviewer, and RealXtend (focus on