Ian, > I don't really understand how it's overkill. A configuration file is > overkill? If so(?), the files map to simple function calls, so you > could do it that way. > > For something like small British Churches, I think the concern is more > maintainability than anything. They can easily afford a dedicated > server (virtualized, not an actual box), with more than enough power for > them. They just can't maintain the result. So I'm not sure exactly > what the issue is.
Many can't/won't spend for a "a dedicated server (virtualized, not an actual box)". We are looking at sites that are one step up from free hosting without a proper domain name. I want to write web apps in TurboGears that will be used to make cheap non dynamic hosting appear a little more dynamic without them needing to host their own applications. Example. Church websites often have a list of worship services. These are often maintained by hand and so on far too many sites they are out of date. The "proper" solution is for a database backed site that automatically filters the list of services by date. That is overkill for most of these. I want to provide a simple web app that runs as a single turbogears instance where Churches can register and then enter their services in a list. Each Church to automatically get their own database file and the url to indicate which church this is for. The Website gets this data from the web app in a variety of ways according to preference (AJAX from website/webapp uploading the data on a weekly basis via ftp/...). So for this type of webapp which is going to be free I need to be able to host as easily as possible on my textdrive account. I don't want a shared database and I don't want to have to create new configurations/instances each time a church registers. As web apps become smaller units that get assembled into larger clusters I feel that this model will be widely needed. > It depends what your setup is. If you are doing hosted/managed > applications, this is quite reasonable with the Paste model. If you are > expecting people to deploy there own apps, I think it's unreasonable > that they should share a Python process. Just way to messy; sharing a > Python process implies a *lot* of trust, more than is reasonable for > different clients. And not just don't-do-bad trust, but > don't-mess-stuff-up trust. It is hosted/managed apps that I am looking at. > You mean determine the connection uri programmatically? I guess you > could do that, but that seems a bit odd. That sounds like me ;-) > But ConnectionHub does make it easy(ish) to set a connection within a > certain scope. E.g., if you are hosting two apps in the same process, > when the request started it would determine which app (probably via URL) > and enter that application via some function call, and that call would > have a "database" parameter. The application (with the help of the > framework that app uses) would set the hub.processConnection on the way > in, and delete it when the request was finished. That sounds like what I am wanting. > That's what the hub is intended to do. Good. >>At deployment time I want to be able to choose, one instance per client, >>multiple instances per client (load balancing accross processors), one >>instance with multiple clients (Fred and all his family each with a blog >>on a cheap hosted service). > > I think the language is getting fuzzy there. The first two are, as I > think about it, both "one instance". One is a load balanced instance, > but still one instance. One logical application installation. The last > is multiple instances, all served from a single process. Ok. >>Ideally my app should not change, just the hub configuration. > The framework should handle the hub configuration. There's also two > concepts of "application", I guess -- I'm talking about it from the > outside, where its an implementation detail that it uses TurboGears. > Maybe you are thinking of it from the inside, where application code is > the code you write that uses TurboGears. Yes. Dave

