【问题标题】:How to Build a Facebook-like Platform on Google App Engine?如何在 Google App Engine 上构建类似 Facebook 的平台?
【发布时间】:2011-07-10 02:06:30
【问题描述】:

我有兴趣在 Google App Engine 上构建一个平台,其中一个主应用程序为多个子应用程序(Web 门户)提供通用功能。

主应用

  • 提供常见的社交网络功能
  • 普通用户数据库
  • 使用 Web 服务 API 进行交互

子应用(网络门户)

  • 连接到主应用程序以获取用户数据库和社交网络功能
  • 对本地功能使用本地业务逻辑

我的设计计划是:

  1. 主应用程序和子应用程序将 GAE Appspot 上的单个应用程序(适用于 易于管理)
  2. 全部都将通过 REST/JSON 进行通信?
  3. 我将为所有应用启用计费功能,以便 没有什么是反对谷歌的使用 政策。
  4. 将使用 SSL 登录主应用程序,稍后使用令牌 (cookie) 用于进一步互动

谁能发现风险并提出改进建议?

【问题讨论】:

  • 不要用 SSL 那样做,这有点违背目的。
  • 我不明白你为什么认为“主子关系”会更容易管理。你能解释一下吗?如果你放弃它,那么 1.、2. 和 3. 就变得无关紧要了。并且 4. 既不存在也不存在。
  • @Fibericon:由于我所有的应用程序都是私有的,我需要保护它们的数据,我正在考虑使用 SSL。这会更慢吗?你认为有更好的方法吗?请提出建议。
  • @Glenn:你说得对,它们都是依赖于某些其他 Web 服务来提供其功能的应用程序。
  • @Glenn:将整个平台作为单个应用程序将非常复杂且难以管理。这就是为什么我正在考虑将它们分解成单独的应用程序,以便它们可以轻松升级和管理。

标签: google-app-engine rest soa restful-authentication architecture


【解决方案1】:

您的“主/子”概念将难以维护,引入跨站点脚本问题,最重要的是完全反对 Google App Engine 的 terms of service 将多个应用程序合并为一个。

4.4。您不得开发多个应用程序来模拟或充当单个应用程序,或以其他方式访问服务以避免产生费用。

【讨论】:

  • ...正如 OP 在他之前的 SO 问题中专门询问有关 TOS 的问题时指出的那样。
  • 即使在所有应用上启用计费,此规则是否适用?我不打算规避费用,我只需要一个我可以独立维护和升级的分布式系统。
  • 是的,恐怕是这样。即使无意中,您避免费用,因为每个应用程序都带有自己的免费配额计费功能。
【解决方案2】:

您可以使用多个应用版本(在 app.yaml 中定义)将不同的代码库部署到同一个 apppot.com 子域,并像 http://app1.myapp.appspot.comhttp://app2.myapp.appspot.com 一样访问它们以获取“版本”app1 和 app2。您甚至可以在 Java 上运行一个版本,在 Python 上运行另一个版本。 它们都将共享同一个数据存储区,但您可以在必要时使用命名空间来分隔它们。

对于您提出的架构的分布式特性,我建议深入了解 Facebook 的图形 API 和 Twitter 的 API。他们都使用 oAuth 进行身份验证/授权,并且已经对您要完成的工作进行了验证。

【讨论】:

  • 听起来很不错,我想这也可能符合Google TOS,因为所有应用程序都会依赖一个配额。我可以使用名称空间来分隔各种应用程序的数据.. 非常感谢..
  • 谢谢,我会按照建议查看 Facebook 和 Twitter API。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-28
  • 1970-01-01
  • 1970-01-01
  • 2012-11-13
  • 2014-09-05
  • 1970-01-01
相关资源
最近更新 更多