如何在Google App Engine上构建类似Facebook的平台?

时间:2011-03-07 03:28:14

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

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

主应用

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

子应用程序(Web门户)

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

我的设计计划是:

  1. 主人和儿童应用程序将是 GAE Appspot上的个人应用程序(for 易管理)
  2. 所有人都会通过REST / JSON进行交流?
  3. 我将为所有应用启用结算功能 没有什么是反对谷歌的用法 政策。
  4. 将使用SSL登录Master App,稍后使用令牌 (cookie)进一步互动
  5. 有人可以发现风险并建议任何改进吗?

2 个答案:

答案 0 :(得分:1)

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

  

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

答案 1 :(得分:1)

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

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