【问题标题】:Flex - Remoting vs HTTPService - when to use what?Flex - Remoting vs HTTPService - 何时使用什么?
【发布时间】:2008-10-30 12:49:52
【问题描述】:

我使用 Flex 已经有一段时间了,还没有使用过远程处理。目前,我的应用程序使用生成用于数据绑定的 xml 的 web 服务。

在这个用例中,通过 xml web 服务使用远程处理有什么好处?当我应该选择远程处理而不是 Web 服务时,是否有一般准则?

我为什么要使用远程处理?

我已经下载了http://www.fluorinefx.com/,但还没有做任何真正的修补......

谢谢。

【问题讨论】:

    标签: apache-flex flash actionscript-3 remoting


    【解决方案1】:

    就个人而言,我使用远程处理是因为我更喜欢 AMF 而不是 SOAP/XML,原因很简单,因为速度和数据包大小。

    Ted 对 XML 与 AMF 的相对优点进行了很好的讨论here

    需要考虑的是您在服务器上已有的内容以及您认为客户的未来所在的位置。您是否预计更换或扩展您的客户?如果是,那么 Web 服务是一个很好的架构选择。如果您在短期/中期承诺使用 Flex,那么您可能能够从使用 AMF3 的远程处理与您的 Web 服务中获得更好的性能。

    附:我曾经有一个链接到一个非常好的网站,该网站测量了 AMF 和 SOAP 的相对性能 - 我会看看我是否能找到它并发布一个链接。

    附言here it is,但目前似乎无法正常工作。

    【讨论】:

      【解决方案2】:

      如果您只在客户端和主机之间使用简单的数据传输,那么 Web 服务非常有用。您形成 XML 消息,将其发送到服务器并返回一个简单的 XML 消息。然后,您对其进行反序列化并相应地对数据采取行动。 AS3 对 XML 的支持非常棒,您可以使用它与任何数据服务进行通信,并且您可以在客户端完全控制。

      当来回传递的数据结构变得过于复杂,或者来回传递的不同数据结构的数量变得太大时,Web 服务就会崩溃。 Remoting 通过提供一个为您处理序列化的重量级框架克服了这些问题。定义您的 .NET/PHP/Java 或任何类,框架应提供生成等效 AS 类的工具。这样您就可以来回发送复杂的对象结构,而无需知道数据是如何被序列化的。因为你不需要知道,它可以压缩结构使其几乎不可读,甚至可以使用二进制数据来提高速度。

      虽然远程处理不适合小规模或各种服务器协议的东西。您必须在服务器和客户端之间同步类结构;您只能与兼容的远程服务器进行通信,并且该框架会增加客户端大小和复杂性的开销。

      关于何时使用哪个没有正确答案。两者都有优点和缺点。不过,根据经验,对简单的东西使用 Web 服务,对复杂的东西使用远程处理(这是非常模糊的建议;)

      【讨论】:

        【解决方案3】:

        远程处理旨在使数据从远程服务传输到 Flash 或 Flex 应用程序更轻松、更快捷。使用远程处理时,无需解析或反序列化从服务接收到的数据。这是因为数据是以本机字节码发送到应用程序的。

        我使用远程处理的主要原因之一是它比 XML 服务更轻量级。这是因为 XML 在内存方面是一种糟糕的格式,尤其是对于大型数据集。 XML 作为一种交换格式是很棒的,但是一旦进入你的应用程序,由于冗长的标签和可能的空白,很可能会比以原生字节码表示的值消耗更多的内存。

        【讨论】:

        • 这在各方面都是完全错误的。 Flash 和 Java 之间的远程处理涉及将 Flash 对象序列化为 XML,将它们传递给 Java 服务器,然后将 XML 反序列化为 Java 对象。本机字节码不会进入其中。
        • 我不同意。如果您使用的服务返回必须解析的 XML,那么您并没有真正利用远程处理可以为您做的事情。使用利用 AMF 的远程服务。 AMF 是传输到客户端的二进制数据,而不是 XML。
        • 确定来回传递的数据不必是 XML,正如你所说的 AMF 案例中的数据是二进制的。它不是 Flash 字节码。它是序列化数据,即对象必须在一端编码并在另一端解码。数据确实必须反序列化。
        • 伙计们,但是通过远程处理的 AMF 是否比 XML 服务更快?明确的答案将不胜感激;-)
        • @defmeta,这取决于您来回传递的数据的大小。没有一个答案:)
        【解决方案4】:

        This is a really good live benchmark test 将 AMF 远程处理与 Web 服务和 HTTP 服务进行比较。您甚至可以下载源代码以在您自己的环境中运行此测试。

        我也同意之前的一些帖子,即当您运行大型数据集时,AMF 远程处理确实会大放异彩。对于较小的数据集,您可能不会看到显着差异。

        【讨论】:

          【解决方案5】:

          如果您打算在其他应用程序上使用数据(这意味着您的只是几个前端之一),您可以使用 XML,否则使用远程处理可以节省一些时间。

          【讨论】:

            【解决方案6】:

            还需要注意的是,一旦您开始涉足该领域,好的有线协议分析器将是无价的。专门为闪存协议编写的两个是CharlesService Capture。我刚刚购买了 Service Capture,并且对它非常满意。它还有一个很棒的“带宽模拟”工具,有助于查看我的预加载器在较低带宽连接上的表现。

            马库斯

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2010-09-21
              • 1970-01-01
              • 1970-01-01
              • 2010-11-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多