2012-01-09 42 views
-1

因此,我们希望从Air中移出(Adobe停止支持,以及对于sqlite api的执行效果很差)。AS3与MySQL与套接字或PHP连接?

我想要三样东西:

  1. 将带有闪光灯(不是web)应用到本地MySQL数据库。
  2. 将falsh(而不是web)应用程序连接到远程mysql数据库。
  3. 使用远程mysql数据库连接flash(web)应用程序。

所有这一切都可以没有任何问题地完成,但是: 1和2可以进行(不使用网络服务器)使用例如这样的:

http://code.google.com/p/assql/

3可以用做据我所知,也是上面那个。

问题是:

  • ,如果你能带插座的机智MySQL服务器连接,为什么要使用网络服务器(例如使用PHP)来连接像间连接?为什么不直接连接?
  • 我已经做了很多次,例如使用AMFPHP,但不会直接更快?
  • 在访问本地机器的情况下,它将是一个更简单的部署应用程序,只需要flash应用程序+ mysql服务器,而不需要安装Web服务器。 这个假设是否正确?

非常感谢提前。

+0

如果远程SQL服务器不允许远程连接会怎么样?那么你无论如何都需要有一个web服务。你也可以使用Java或C#来编写一个flex的web服务,它不是必须的。另外,通过Web服务,您可以更灵活地处理数据并提高安全性。 – 2012-01-09 20:14:26

+0

非常感谢您的回复。 我打开了另一个关于Flash应用程序(Not air)使用本地数据库的问题。 非常感谢。 – voskyc 2012-01-10 12:28:58

回答

0

的数据访问层分开的必要性通常人们建立应用程序的方式,分层体系结构茎,工作量等SQL服务器的分布通常不进行用户管理,会话管理等提供了非常强大的API所以可以使用数据库和客户端应用程序之间的中间层,以便该层可以处理与存储数据无关的问题。安全在这里也起着重要作用。还有其他一些问题,例如,有些时候你想关闭对数据库的所有访问权限,但是如果你没有任何中间层来通知用户你的意图,你会离开他们想知道你的申请是否还活着。数据访问层也可以做很多缓存,实际上可以节省你到数据库的访问次数,你必须从客户端做出(当然,客户端也可以这样做,但是ymmv)。

但是,在一些简单的情况下,具有中间层是开销。更重要的是,如果可以的话,我会说如果可以的话,不需要中间层,少用代码就可以制作出更好的程序,但所有机会都会因为某种原因而发现自己需要这一层。

0

因为通过互联网远程连接带来巨大的巨大安全问题。您不应该将通过Internet连接的应用程序直接部署到数据库。这就是为什么AIR和Flex没有远程Mysql驱动程序的原因,因为除了构建开发类型工具外,它们不应该被使用。而且,即使您制作了可以直接连接的工具,任何下降网络管理员都将阻止从DMZ和内部网络以外的任何地方访问数据库。

首先,为了您的应用程序连接到数据库端口必须暴露在世界的数据库。这意味着我不需要破解你的应用程序来获取你的数据。我只需要破解你的数据库,而且我完全可以将你从这个问题中解救出来,因为你已经足够愚蠢地让你的数据库端口对我开放了。

其次大多数数据库不加密旅行通过线路的凭据或数据。虽然大多数数据库都支持SSL连接,但大多数人不会打开它,因为应用程序想要超快的数据访问,并且他们不想为SSL加密开销付出等等等等等等。此外,大多数应用程序位于DMZ中,并且它们的数据库位于防火墙后面,因此服务器和数据库之间不太可能窃听他们的对话。但是,如果您直接从AIR应用连接到数据库,则可以非常轻松地将自己插入到数据库中,并监视数据库中的流量,因为您不使用SSL。

有问题一大堆做你围绕隐私和数据完整性,您可以不通过允许其使用该数据库中的RIA直达保障暗示什么。

然后有一些较小的唠叨问题,如果你想做现代功能,如发布报告到中央服务器,用户不必安装你的软件看到它们,发送电子邮件,社交功能,Web服务集成,云存储,协作或实时消息等,如果您不使用Web应用程序,则无法获得。中间件还可以让您控制数据库,因此您可以集中连接来处理更大的负载。使用Web应用程序可以为表格提供更多信息,而不仅仅是安全。