2012-12-18 34 views
0

我搜索了,没有找到这个问题之前问(它不是例如Many Custom Domains for AppEngine Instance相同),但请纠正我,如果我错了。一个应用程序,AppEngine上的很多域名

我以前使用ASP.NET来构建一个Web应用程序,然后由几家公司使用。我使用相同的代码库,并将其部署到同一个IIS网站,但每个公司都有自己的数据库。收到请求时,检查请求的主机头并将其映射到内容数据库(映射包含在共享配置数据库中)。

这给了我一个应用程序来维护,修复和部署错误,而不同公司的实际数据完全分开在不同的数据库中。很容易输出一家公司的数据,我感到安全并不是偶然混合不同公司的数据。

我现在正在考虑用Java/GWT重写这个webapp并将它发布到AppEngine上。我的问题是:如何才能模仿AppEngine上的相同行为?我应该每个公司有一个应用程序?这意味着我需要多次部署同一个应用程序,每个公司的网站一次。这也意味着每个应用程序至少需要花费最低9美元/月(我认为AppEngine的免费限制是不够的)。是否有可能创建一个应用程序,然后将其映射到几个自定义域(就像我今天在.NET-app中那样)?

正如我了解Google Apps的想法,管理员应该能够使用AppEngine上的应用程序ID将云应用程序添加到他/她的域中,然后开始使用它。是否支持为已注册我的应用的不同Google Apps域启用数据分离?我可以通过编程方式检查hostheader,并像我在.NET-app中一样执行操作吗?我不希望一个域的数据可用于其他域(事实上,这对我来说会非常糟糕:))。

回答

1

您可以使用namespaces在同一个应用程序实例中创建数据(又称多租户)的逻辑分离。

+0

有趣!所以我可以为每个公司创建一个名称空间,并且仍然拥有同一AppEngine-app中的所有内容。我将如何检查传入请求所针对的域? – joscarsson

+0

是的,您可以为每个公司创建一个名称空间。至于确定调用者的域,你应该使用你计划使用的任何认证机制。 – jtahlborn

+0

我明白了,所有公司都会有一个共享的登录页面。持有用户的“桌子”将由所有公司共享。当用户登录并验证密码时,我知道映射到该用户的哪个名称空间以及公司特定的数据可以显示。我希望能够将名称空间映射到请求的URL,而不是登录用户(因此对somecompany.com和othercompany.com的请求会自动映射到不同的名称空间)。但我想我可以忍受这一点。感谢你的回答,我想我可以从这里继续。 – joscarsson

相关问题