Kyle, I built a similar architecture, but with only one instance of
the app serving all users. When a user authenticates, I look them up
in a global store to figure out which tenant they belong to, and then
use their tenant-specific database for all data persistence for the
session. So all visitors use one instance of the app but each tenant
has their own isolated database...multi-tenancy.

The problem is, true multi-tenancy isn't supported by GAE...they've
been talking about it for almost 2 years now, but it doesn't seem to
be a priority for them. They want you to use a different domain for
every tenant, which means multiple app instances (multiple versions of
your app to deploy & maintain). It also means your customer/tenant has
to be in the loop for all domain administration tasks, which to me
kind of defeats the purpose of customer-focused cloud computing.

I set my multi-tenant app up on Amazon EC2, using 1 tomcat server and
6 mysql databases (6 tenants...each tenant has on average 10 users).
The beauty is if I need to scale or load balance the app, add more
tenants/database instances or just backup one tenant's data, this is
pretty much just a mouse-click or 6 in the EC2 developer console.

Murray

On Mar 25, 8:15 am, Kyle Baley <kyle.ba...@gmail.com> wrote:
> Is that possible with GAE?
>
> In any case, I found something that works. I created a JSP page and
> dumped the contents of the MyApp.html into it. Then added the
> following to my web.xml:
>
>         <servlet>
>                 <servlet-name>test</servlet-name>
>                 <jsp-file>/MyApp.jsp</jsp-file>
>         </servlet>
>
>         <servlet-mapping>
>                 <servlet-name>test</servlet-name>
>                 <url-pattern>/myApp/clients/*</url-pattern>
>         </servlet-mapping>
>
> I added /clients in there for now because we're using gwt-dispatch and
> I haven't overridden its default of submitting things to /myApp/
> dispatch.
>
> Still some kinks to work out (like resource references) but early
> results are encouraging.
>
> On Mar 24, 10:54 am, Uros Trebec <uros.tre...@gmail.com> wrote:
>
> > I think the best way to do this is to deploy new instance of client
> > application for every customer and have one instance of "server"
> > application that all client applications work with to get their data,
> > non-client-side business logic, etc.
>
> > We're doing it this way when we have different versions of client
> > application, which tends to change more often than server one. Also
> > works when you have a development version of client that you need to
> > test with the same server backend.
>
> > Regards,
> > Uros
>
> > On Mar 24, 2:24 am, Kyle Baley <kyle.ba...@gmail.com> wrote:
>
> > > Not sure I understand. I plan to filter data on the server side of
> > > things. But I don't know how to configure GWT to allow me to navigate
> > > to specific client for the entire app.
>
> > > For example, Acme Hair Salon would navigate to mysite.com/
> > > acmeHairSalon/myapp.html and Generic Dog Collars would navigate to
> > > mysite.com/genericDogCollars/myapp.html. Both URLs should map to the
> > > same instance of the application but in it, I'd check the URL to see
> > > which company was being used and filter all the data in it
> > > accordingly. I know how to do the filtering and can probably figure
> > > out how to check the URL for a company token. But I don't know how to
> > > configure GWT and/or GAE to use a single instance of the application
> > > for multiple (generic) URLs that aren't pre-defined. It sounds to me
> > > like something that should be done in web.xml but again, I don't know
> > > how.
>
> > > On Mar 23, 1:01 pm, "dolcra...@gmail.com" <dolcra...@gmail.com> wrote:
>
> > > > So you can just built the ui once and always include it in the login
> > > > page for which ever client as the server should be where you filter/
> > > > prevent access to data that's not for the current client.
>
> > > > On Mar 22, 10:41 am, Kyle Baley <kyle.ba...@gmail.com> wrote:
>
> > > > > I'm new to GWT and the Java world having been in the .NET space for
> > > > > about 10 years. Our application will be a multi-tenant one (at least,
> > > > > to the degree that I understand the definition). We'd like customers
> > > > > to be able to navigate towww.mysite.com/customerName, then log in
> > > > > from there. I think I have a handle on how to manage this from the GAE
> > > > > datastore side but am wondering how to manage this URL mapping in
> > > > > web.xml for GWT.
>
> > > > > Also, would like to get some opinions on how to manage the
> > > > > authentication once it's set up. Here's how I see it working:
> > > > > - User navigates towww.mysite.com/customerName
> > > > > - System retrieves company data and stores in session and displays
> > > > > login page
> > > > > - User logs in. System authenticates user
> > > > > - For all RPC calls, system verifies user is logged in *and* checks
> > > > > that the URL matches the company info in the session
>
> > > > > Basically, I want to guard against a user logging into one client
> > > > > site, then navigating to another.
>
> > > > > Thanks
> > > > > Kyle
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to