如何通过一个受信任的服务器路由AMF请求

时间:2009-02-17 22:28:58

标签: .net flex remoting amf

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

这些要求是基于公司内部的政治原因并且不灵活(情况并非总是如此?)

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

  1. 使用mx:HTTPService标记代替AMF,并标记useProxy =“true”。这将通过blazeDS服务器代理所有http(json,rest)调用。

答案 1 :(得分:0)

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

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

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