Как маршрутизировать запросы AMF через один доверенный сервер - PullRequest
0 голосов
/ 18 февраля 2009

Мы планируем разработать приложение Flex, которое должно выполнять вызовы AMF для извлечения данных с защищенного сервера. Однако нам не разрешено подключаться напрямую к этому защищенному серверу с помощью AMF. Мы можем делать только удаленные вызовы WSDL / SOAP или .net на защищенный сервер. Поэтому все экземпляры приложения flex, работающие на клиентском компьютере, должны подключаться к одному доверенному серверу, который затем подключается к защищенному серверу.

Эти требования основаны на политических причинах внутри компании и не являются гибкими (не всегда ли так?)

В случае, если требования не ясны, вот пример. Когда вы получаете доступ к своему текущему счету через веб-сайт своего банка, веб-сайт загружает приложение flex / flash в ваш веб-браузер. Это приложение показывает вам ваши счета, транзакции, баланс и т. Д. Однако, ваши фактические данные текущего счета хранятся на безопасном сервере базы данных в банке, который не принимает входящие соединения от клиентов. Таким образом, приложение flex в вашем браузере выполняет AMF-вызов на веб-сайте банка, и, как оказалось, он может выполнить удаленный вызов WSDL / SOAP или .net к серверу базы данных. Он получает данные и отправляет их обратно в браузер через AMF.

Есть ли на веб-сервере приложение «прокси», которое может принимать вызовы AMF, поворачиваться и выполнять удаленные вызовы WSDL / SOAP или .net на защищенный сервер? Или мы должны написать это вручную?

Ответы [ 2 ]

0 голосов
/ 26 августа 2009

Если вы используете asp.net на своем веб-сервере, вы можете использовать либо FlourineFx (с открытым исходным кодом), либо WebOrb (коммерческий) в качестве сервера.

Обе опции могут быть размещены в IIS или действовать как службы Windows.

Затем вы можете просто удалить библиотеки классов dotnet для подключения к вашему безопасному серверу в каталогах bin серверов.

0 голосов
/ 18 февраля 2009

Я бы сделал сервер BlazeDS прокси-сервером с пользовательским классом Java (используя JavaAdapter). Ваш класс Java будет работать как фасад против вашего основного сервера.

Преимущество этой настройки, прокси-сервер blazeDS позаботится обо всей сериализации / десериализации запроса и ответа AMF. И тогда у вас есть все возможности java для вызова ваших основных серверов для использования RMI, SOAP, HTTP и т. Д. Таким образом, главному серверу не нужно ничего знать о AMF.

Другие варианты; 1. AMF по-прежнему передается в виде двоичных данных в базовых http-запросах. Поэтому простой HTTP-прокси должен правильно пересылать запрос. Однако, если вы сделаете это, конечный сервер должен будет знать, как обрабатывать протокол AMF.

  1. Вместо AMF используйте тег mx: HTTPService и отметьте useProxy = "true". Это будет прокси-сервер для всех вызовов http (json, rest) через сервер blazeDS.
...