【问题标题】:How to route AMF requests though one trusted server如何通过一台受信任的服务器路由 AMF 请求
【发布时间】:2009-02-17 22:28:57
【问题描述】:

我们计划开发一个 Flex 应用程序,该应用程序必须进行 AMF 调用才能从安全服务器检索数据。但是,我们不允许使用 AMF 直接连接到该安全服务器。我们只能对安全服务器进行 WSDL/SOAP 或 .net 远程调用。因此,在客户端计算机上运行的 flex 应用程序的所有实例都必须连接到单个受信任的服务器,然后该服务器将连接到安全服务器。

这些要求是基于公司内部的政治原因,并不灵活(不是总是这样吗?)

如果要求不明确,这里是一个例子。当您通过银行网站访问您的支票账户时,该网站会下载一个 flex/flash 应用程序到您的网络浏览器。此应用程序向您显示您的帐户、交易、余额等。但是,您的实际支票帐户详细信息存储在银行的安全数据库服务器上,该服务器不接受来自客户的入站连接。因此,浏览器中的 flex 应用程序对银行网站进行 AMF 调用,然后转而对数据库服务器进行 WSDL/SOAP 或 .net 远程调用。它获取数据并通过 AMF 将其发送回您的浏览器。

我们是否可以在 Web 服务器上运行一个“代理”应用程序,该应用程序将接受 AMF 调用并转而对安全服务器进行 WSDL/SOAP 或 .net 远程调用?还是我们必须手写?

【问题讨论】:

    标签: .net apache-flex remoting amf


    【解决方案1】:

    如果您碰巧在您的网络服务器中使用 asp.net,您可以使用FlourineFx(开源)或WebOrb(商业)作为您的服务器。

    这两个选项都可以托管在 IIS 中或充当 Windows 服务。

    然后,您可以将用于连接到安全服务器的 dotnet 类库放在服务器的 bin 目录中。

    【讨论】:

      【解决方案2】:

      我会让 BlazeDS 服务器成为代理,使用自定义 java 类(使用 JavaAdapter)。然后,您的 java 类将作为您的主服务器的外观。

      此设置的优势在于,blazeDS 代理服务器将负责 AMF 请求和响应的所有序列化/反序列化。然后你就拥有了 java 的全部功能来调用你的主服务器来使用 RMI、SOAP、HTTP 等。这样主服务器就不需要知道任何关于 AMF 的信息。

      其他选项; 1. AMF 在基本的 http 请求中仍然作为二进制数据传递。所以一个简单的 HTTP 代理应该正确地转发请求。但是,如果您这样做,最终服务器将需要知道如何处理 AMF 协议。

      1. 使用 mx:HTTPService 标签并标记 useProxy="true",而不是 AMF。这将通过 blazeDS 服务器代理所有 http(json、rest)调用。

      【讨论】:

        猜你喜欢
        • 2018-08-22
        • 1970-01-01
        • 2021-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-24
        • 1970-01-01
        相关资源
        最近更新 更多