0

我正在尝试使用 Flex 4.5 创建 Air 应用程序。该应用程序与 LiveCyle Collaboration Service 交互,以支持桌面上的屏幕共享和网络摄像头聊天。

我目前正在寻找用于存储和加载 Facebook Wall-sized 数据的数据库(不像 SQLite 那样是本地数据库)。也就是说,许多用户可以在很短的时间内从数据库存储和加载(同步问题)。另外,我将在 Mac mini Snow Leopard 服务器中设置数据库。

我想出了这三个解决方案:

1) MySQL using AMFPHP - 通过服务器端语言访问 MySQL。

2) MySQL 通过 asSQL 库 - 直接访问 MySQL,但安全性差。

3) BlazeDS/LiveCycleES 和 ColdFusion - Java EE 后端,但 ColdFusion 是商业的,并且适合大型项目?

哪一种是中小型项目的最佳解决方案?或者您能推荐任何其他解决方案吗?谢谢。

4

2 回答 2

1

我会选择 Java/BlazeDS/MySQL 作为价格(免费)和可靠性(使用 BlazeDS 的人比使用 AMFPHP 的人多)之间的最佳组合。NoSQL 可能听起来很吸引人,但从开发的角度来看,我所知道的所有真正的项目都是昂贵的(仅在持久性方面工作的 4-8 名开发人员团队)。像 MySQL 这样的关系数据库将很好地处理您的场景。我已经使用它配置了一个处理 400reqs/秒的系统,没有分片。

另一方面,将您的技能与所选堆栈相匹配很重要,您的时间应该花在功能上,而不是学习新语言或复杂框架上。如果您比 Java 更了解 PHP,请选择 AMFPHP 而不是 BlazeDS。

于 2011-10-08T08:34:25.063 回答
1

Coldfusion 适用于大型项目。除非您有不适合的预算,否则它的商业性并不重要。但是,如果是这样,那么 LiveCycleES 会贵得多,所以如果成本是一个问题,您可能不得不使用 BlazeDS。

至于 Facebook 的“类墙”功能有几件事你必须考虑。一堵墙意味着您存储了一些软社交图。使用关系数据库大规模地实现图网络并不是一件容易的事。我建议查看像 MongoDB、Cassandra 这样的 NoSQL 存储。与需要大量软件工程才能有效存储所有内容的数据库分片相比,这些选项的扩展工作量要小得多。

http://www.rackspace.com/cloud/blog/2010/05/12/cassandra-by-example/

如果您想在两个客户端之间共享屏幕,您将需要使用 PHPAMF 和 BlazeDS 解决一些问题。这些选项中的任何一个都不支持异步消息传递,因此它几乎是不可能的。LiveCycle ES 支持这种类型的东西,而 Blaze/DS 过去没有。您可能需要仔细检查 Blaze/DS 的功能,看看最近是否发生了变化。您可以查看的一个选项是支持 RTMP/E 的 Red5。

http://www.red5.org/

于 2011-10-08T04:51:34.353 回答