目前我们正在开发社交网络,其中包括应用程序,例如游戏。开发人员没有公开的 API 来制作他们的应用程序,而是我们自己开发的应用程序。
我们的平台基于 Zend 框架。我们还有用于聊天、通知和其他推送任务的 XMPP 协议实现(clientside-strophe、serverside-java)。XMPP 将在应用程序中使用。
我们希望将应用程序与社交网络代码分开,这样我们就可以保持简单、轻量。
对于这种分离,你可以建议什么策略?我们的愿望是保持架构和代码简洁明了。
目前我们正在开发社交网络,其中包括应用程序,例如游戏。开发人员没有公开的 API 来制作他们的应用程序,而是我们自己开发的应用程序。
我们的平台基于 Zend 框架。我们还有用于聊天、通知和其他推送任务的 XMPP 协议实现(clientside-strophe、serverside-java)。XMPP 将在应用程序中使用。
我们希望将应用程序与社交网络代码分开,这样我们就可以保持简单、轻量。
对于这种分离,你可以建议什么策略?我们的愿望是保持架构和代码简洁明了。
由于这是一个架构问题,我相信有很多方法可以满足您的需求。这是我的 2 美分。让您的应用服务器与社交媒体服务器完全分离。使用客户端 JS 脚本在您的社交媒体网站上嵌入和呈现应用程序。
可以这样想:您知道 Facebook 社交插件允许在外部站点中嵌入 Facebook 组件。下面是嵌入在完全独立的 DNN 门户中的 Facebook LikeBox 的屏幕截图。
在您的场景中,假设 DNN 作为您的社交媒体网站。和 LikeBox 作为您的应用程序。在架构上,它们被很好地分开,甚至可以从不同的服务器上提供服务。但是集成发生在客户端。
如果您需要这些应用程序与社交媒体网站进行交互,您可以通过 REST API 来实现。或者你可以使用 DOM 事件或简单的 JS 函数调用。
几天前,我写了一篇关于类似架构的博客文章,可以在以下位置找到: http: //blog.hasith.net/2012/06/traditional-portals-are-dead-long-live.html
像 facebook 应用程序这样的 3rd 方应用程序是访问 facebook DATA的独立应用程序。
因此,通过您的 API 在 Internet 上提供您的社交网络数据,实现Zend_OAuth
身份验证HMAC 之后,您可以冻结您的社交网络代码。
现在您可以在 Javascript/Flash 中创建您的 Web 应用程序,通过您的 API 访问您的社交网络数据。