我已经使用Flex一段时间了,还没有使用远程处理。目前我的应用程序使用web服务生成我用于数据绑定的xml。
在此用例中,对xml Web服务使用远程处理有什么好处?当我选择通过webservices进行远程处理时,是否有一般指导原则?
为什么我要使用远程处理?
我已下载http://www.fluorinefx.com/,但尚未做任何真正的修补......
感谢。
答案 0 :(得分:4)
个人说我使用远程处理,因为我更喜欢AMF到SOAP / XML,原因很简单,就是速度和数据包大小。
Ted对XML与AMF here
的相对优点进行了很好的讨论需要考虑的是您在服务器上已经存在的内容以及您认为客户的未来所处的位置。您是否期望更换或扩展您的客户?如果是,那么Web服务是一个很好的架构选择。如果您在短期/中期内承诺使用Flex,那么您可以使用AMF3与Web服务相比,从远程处理中获得更好的性能。
P.S。我曾经有一个链接到一个非常好的网站,它测量了AMF和SOAP的相对性能 - 我会看看是否可以找到它并发布一个链接。
P.P.S。 here it is,但目前似乎没有工作。
答案 1 :(得分:4)
如果您只在客户端和主机之间使用简单的数据传输,那么Web服务就很棒。您构建XML消息,将其发送到服务器并返回一个简单的XML消息。然后,您将其反序列化并相应地处理数据。 AS3对XML的支持非常出色,您可以使用它与任何数据服务进行通信,并且您可以在客户端完全控制。
Web服务崩溃的地方是来回传递的数据结构变得过于复杂,或者来回传递的不同数据结构的数量变得太大。 Remoting通过提供一个重量级框架来处理序列化,从而克服了这些问题。定义.NET / PHP / Java或任何类,框架应提供生成等效AS类的工具。这样,您可以来回发送复杂的对象结构,而无需知道数据的序列化方式。因为您不需要知道,它可以压缩结构使其几乎不是人类可读的,甚至使用二进制数据,因此您也可以提高速度。
远程处理不适合小规模或不同的服务器协议。您必须在服务器和客户端之间同步类结构;您只能与兼容的远程服务器通信,并且该框架会增加客户端大小和复杂性的开销。
关于何时使用,没有正确的答案。两者都有优点和缺点。但是,根据经验,使用Web服务来处理简单的东西和远程处理复杂的东西(这是非常含糊的建议;)
答案 2 :(得分:2)
远程处理旨在使数据从远程服务更轻松,更快速地传输到Flash或Flex应用程序。使用远程处理时,无需解析或反序列化从服务接收的数据。这是因为数据以本机字节码发送到应用程序。
使用远程处理的一个主要原因是它比XML服务更轻量级。这是因为XML在内存方面是一种糟糕的格式,特别是对于大型数据集。 XML非常适合作为交换格式,但是一旦进入应用程序,由于冗长的标记和可能的空格,很可能会消耗比本机字节码中表示的值更多的内存。
答案 3 :(得分:1)
This is a really good live benchmark test将AMF远程处理与Web服务和HTTP服务进行比较。您甚至可以下载源代码以在您自己的环境中运行此测试。
我也同意一些早期的帖子,AMF远程处理在你运行大型数据集时真的很棒。对于较小的数据集,您可能不会看到显着的差异。
答案 4 :(得分:0)
如果您打算在其他应用程序上使用这些数据(意味着您的数据只是其中之一),您可以使用XML,否则您将使用远程处理节省一些时间。
答案 5 :(得分:0)
另外值得注意的是,一旦你开始进入这个领域,一个好的线路协议分析仪是非常宝贵的。专门针对闪存协议编写的两个是Charles和Service Capture。我刚刚购买了Service Capture,并对它非常满意。它还有一个很棒的“带宽模拟”工具,它有助于了解我的预加载器在低带宽连接上的外观。
马库斯