Что делают BlazeDS Livecycle Data Services такого, чего не делают что-то вроде PyAMF или RubyAMF?
-
09-06-2019 - |
Вопрос
Я делаю технический обзор и рассматриваю интеграцию AMF с различными бэкэндами (Rails, Python, Grails и т.д.).
Существует множество вариантов, вопрос в том, что делают продукты Adobe (BlazeDS и т.д.), Чего не делают что-то вроде RubyAMF / PyAMF?
Решение
Помимо каналов NIO (RTMP), ЖК-дисплеи включают также функции "управления данными".
Используя эту функцию, вы в основном реализуете в классе ActionScript CRUD-подобный интерфейс, определяемый ЖК-дисплеями, и получаете:
- автоматическая прогрессивная загрузка списка (большие списки / datagrids загружаются при прокрутке)
- автоматическое управление crud (вы получаете объект локально во flash, изменяете его, отправляете обратно, и база данных обновляется автоматически)
- функция разрешения конфликтов (если несколько пользователей пытаются обновить одну и ту же запись одновременно)
- если я хорошо помню, также была улучшена интеграция с механизмом документооборота LiveCycle ES
ИМО, разработка таким образом может быть очень быстрой, но только если у вас есть только базовые требования и простая архитектура (забудьте SOA, которая в остальном так хорошо работает с Flex).Меня вполне устраивают горящие угли.
Другие советы
Описанные здесь функции управления данными для ЖК-дисплеев, безусловно, действительны, однако я считаю, что они не позволяют вам быстрее разработать решение.Разработчику по-прежнему приходится записывать ВЕСЬ код доступа к данным, выполнение запросов, извлечение данных из datareaders в объекты value.ВСЕ это решалось дюжину раз с помощью генераторов кода.Например, подход к управлению данными в WebORB для Java (очень похожий на WebORB для .NET и PHP) основан на генерации кода, который создает код как на стороне клиента, так и на стороне сервера.Вы получаете все API ActionScript из генератора кода, чтобы выполнять полный CRUD.
Кроме того, WebORB предоставляет функции потоковой передачи видео и обмена сообщениями в режиме реального времени и выходит далеко за рамки того, что предлагают BLAZED и ЖК-дисплеи вместе взятые, особенно учитывая, что продукт бесплатный.Просто погуглите это.
У Adobe есть два продукта:Сервисы передачи данных Livecycle ES (ЖК-дисплеи) и BLAZED.BlazeDS содержит подмножество функций ЖК-дисплеев и был создан с открытым исходным кодом.К сожалению, каналы NIO (RTMP NIO / HTTP) и функции управления данными реализованы только в ЖК-дисплеях, а не в BLAZED.
BlazeDS можно использовать только для интеграции Flex с серверной частью Java.Он предлагает не только услуги удаленного взаимодействия с использованием сериализации AMF (как RubyAMF), но также функции обмена сообщениями и совместной работы - взгляните на эту ссылку (http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=lcoverview_3.html).Также я полагаю, что поддержка лучше по сравнению с RubyAMF / PyAMF.
Если ваш серверный сервер - JAVA и вы хотите использовать только бесплатный продукт, вы также можете использовать GraniteDS или WebORB (конкуренты BlazeDS).
Хороший вопрос.Я не сторонник ruby (я использую java с flex), но что, по моему мнению, отличает blazeds от коммерческих livecycle ds, так это
- Поддержка протокола потоковой передачи (rtmp) - конкуренция comet и им подобным для доставки видео
- Некоторые продвинутые функции для гибернации отдельных объектов и кэширования большого результирующего набора, которые я не до конца понимаю или в которых нуждаюсь
- поддержать?Могут быть и другие, но это те, кого я знаю навскидку.