0

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

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

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

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

4

2 回答 2

0

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

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

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

  1. 代替 AMF,使用 mx:HTTPService 标记并标记 useProxy="true"。这将通过 blazeDS 服务器代理所有 http (json, rest) 调用。
于 2009-02-18T04:22:38.363 回答
0

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

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

然后,您可以只删除 dotnet 类库以连接到服务器的 bin 目录中的安全服务器。

于 2009-08-26T04:34:35.043 回答