Flex - Remoting против HTTPService - когда и что использовать? - PullRequest
7 голосов
/ 30 октября 2008

Я некоторое время пользуюсь Flex и пока не использовал удаленное взаимодействие. В настоящее время мои приложения используют веб-сервис, который генерирует XML, который я использую для привязки данных.

В чем преимущество использования удаленного взаимодействия через веб-службу xml в этом случае использования? Есть ли общее руководство, когда я должен выбрать удаленное взаимодействие через веб-сервисы?

Зачем мне использовать удаленное взаимодействие?

Я скачал http://www.fluorinefx.com/,, но до сих пор ничего не делал ...

Спасибо.

Ответы [ 6 ]

4 голосов
/ 30 октября 2008

Веб-сервисы хороши, если вы используете только простую передачу данных между клиентом и хостом. Вы формируете сообщение XML, отправляете его на сервер и получаете простое сообщение XML. Затем вы десериализуете его и действуете в соответствии с данными. Поддержка XML в AS3 превосходна, вы можете использовать его для связи с любой службой передачи данных, и вы полностью контролируете клиентскую часть.

Когда веб-службы перестают работать, это когда структуры данных, передаваемые взад и вперед, становятся слишком сложными или когда количество различных структур данных, передаваемых взад и вперед, становится слишком большим. Remoting преодолевает эти проблемы, предоставляя мощную среду, которая обрабатывает сериализацию для вас. Определите ваш .NET / PHP / Java или любые другие классы, и инфраструктура должна предоставлять инструменты для генерации эквивалентных классов AS. Таким образом, вы можете отправлять сложные объектные структуры взад и вперед без необходимости знать, как сериализуются данные. Поскольку вам не нужно знать, он может сжать структуру, чтобы сделать ее практически нечитаемой для человека, или даже использовать двоичные данные, чтобы вы также получили увеличение скорости.

Удаленное взаимодействие не подходит для небольших или разнообразных протоколов сервера. Вы должны синхронизировать структуры классов между сервером и клиентом; вы можете общаться только с совместимыми удаленными серверами, а инфраструктура увеличивает накладные расходы на размер и сложность клиента.

Не существует правильного ответа относительно того, когда использовать. Оба имеют свои преимущества и недостатки. Однако, как правило, используйте веб-сервисы для простых вещей и удаленное взаимодействие для сложных вещей (что довольно расплывчато;)

4 голосов
/ 30 октября 2008

Говоря лично, я использую удаленное взаимодействие, потому что я предпочитаю AMF SOAP / XML по простой причине скорости и размера пакета.

Тед хорошо обсудил относительные достоинства XML против AMF здесь

Что нужно учитывать, это то, что у вас уже есть на сервере и где, по вашему мнению, находится будущее ваших клиентов. Ожидаете ли вы замены или расширения ваших клиентов? Если да, то веб-сервисы - хороший архитектурный выбор. Если вы берете на себя обязательство Flex в краткосрочном / среднесрочном периоде, то вы сможете повысить производительность благодаря удаленному взаимодействию с AMF3 по сравнению с вашими веб-сервисами.

P.S. Однажды у меня была ссылка на очень хороший сайт, на котором были измерены относительные показатели AMF и SOAP - я посмотрю, смогу ли я найти его и опубликовать ссылку.

P.P.S. здесь это , но, похоже, в данный момент оно не работает.

2 голосов
/ 30 октября 2008

Удаленное взаимодействие предназначено для упрощения и ускорения передачи данных из удаленного сервиса в приложение Flash или Flex. При использовании удаленного взаимодействия нет необходимости анализировать или десериализовать данные, полученные от службы. Это связано с тем, что данные отправляются в приложение в собственном байт-коде.

Одна из моих главных причин использовать удаленное взаимодействие - это то, что он более легкий, чем служба XML. Это связано с тем, что XML является плохим форматом памяти, особенно для больших наборов данных. XML великолепен как формат обмена, но однажды внутри вашего приложения из-за многословных тегов и возможных пробелов, скорее всего, будет потребляться больше памяти, чем значений, выраженных в собственном байт-коде.

1 голос
/ 18 марта 2010

Это действительно хороший живой тест производительности , который сравнивает удаленное взаимодействие AMF с Web-сервисами и HTTP-сервисами. Вы даже можете загрузить исходный код для запуска этого теста в своей среде.

Я бы также согласился с некоторыми из предыдущих постов о том, что удаленное взаимодействие AMF действительно сияет, когда вы используете большие наборы данных. Для небольших наборов данных вы, вероятно, не увидите существенной разницы.

0 голосов
/ 04 ноября 2008

Также следует отметить, что как только вы начнете изучать эту область, хороший анализатор проводных протоколов станет неоценимым. Два протокола, написанных специально для флэш-протоколов: Charles и Service Capture . Я только что приобрел сервис Capture, и был очень доволен этим. У него также есть отличный инструмент «имитации полосы пропускания», который помог мне увидеть, как мой предварительный загрузчик будет выглядеть при подключениях с меньшей полосой пропускания.

Марк

0 голосов
/ 03 ноября 2008

Если вы планируете использовать данные в других приложениях (это означает, что у вас только один из нескольких интерфейсов), вы можете использовать XML, в противном случае вы сэкономите время, используя удаленное взаимодействие.

...