пятница, 4 апреля 2014 г.

Кэширование и синхронизация данных в ADF Mobile приложениях - решение проблемы "из коробки"

Господа разработчики, архитекторы мобильных приложений и все, кто интересуется мобильным девелопментом и технологиями Oracle!

Думаю, что не для кого не секрет, что при разработке мобильного приложения, особенно для Enterprise сектора, очевидным и проблемным (с другой стороны) является вопрос обмена бизнес данными с удалённым корпоративным сервером. Представьте себе ситуацию: у вас есть мобильный клиент, работающий периодически с корпоративными веб-сервисами выставленными наружу (не важно это SOAP или RESTful). В лучшем случае, если устройство находится онлайн постоянно и канал стабилен, устройство будет осуществлять CRUD операции с данными в режиме онлайн. А что делать, если пользователь оказывается периодически в зоне, где никакая сеть не доступна, а ему надо записывать и обновлять бизнес данные даже в этой ситуации? Здесь напрашивается очевидный ответ: данные надо кэшировать локально и накатывать и синхронизировать обновление когда устройство оказывается онлайн! Да, идея несомненно верная, и звучит прекрасно, но что тут с реализацией??? 
А реализация далеко не тривиальная: надо создать локальное хранилище на устройстве, куда будут записываться данные, реализовать ORM слой в бизнес логике приложения, где данные будут кэшироваться, хранить метаданные мапинга между объектами в кэше, таблицами в БД и коллекциями данных с которыми работают веб-сервисы... Да и еще необходимо отслеживать изменения, которые делают пользователи, синхронизировать их в фоновом режиме и разрешать конфликты! Фронт работы для команды девелоперов не маленький...     


Но решение существует! Команда архитекторов Oracle A-Team (http://www.ateam-oracle.com), которая регулярно на своем ресурсе публикует интересные статьи и материалы технического толка по продуктам Oracle и в этот раз порадовала своим подходом к решению относительно обозначенных выше проблем. Суть заключается в предлагаемом расширении для платформы Oracle ADF Mobile и среды разработки JDeveloper, которая позволяет автоматически генерировать скрипты для создания SQLite БД на устройстве, Java классов, реализующих ORM слой и мапинг XML артефактов. Все что необходимо разработчику это запустить соответствующий мастер в среде JDeveloper, который автоматически сгенерирует все необходмые скрипты, Java классы, XML определения и даже UI! Звучит как в сказке, не так ли? 


Однако все всем написанном выше можно (и нужно) убедиться:
  1. Посетить страницу на A-TEAM ресурсе: http://www.ateam-oracle.com/going-mobile-with-adf-implementing-data-caching-and-syncing-for-working-offline-part-ii/
  2. Загрузить extension и опробовать его в деле: adf-mobile-persistence-sample-install.zip Господа разработчики - критика приветствуется!
  3. Зарегистрироваться и посетить вебинар, в котором авторы расширения подробно расскажут и продемонстрируют его. Вебкаст состоится 10 апреля 2014 года. Информация по мероприятию можно найти здесь: https://blogs.oracle.com/imc/entry/oracle_adf_mobile_sync   Зарегистрироваться можно здесь: http://www.oracle.com/go/?Src=8004344&Act=5&pcode=EMEAPM13110606MPP000 


     

Комментариев нет:

Отправить комментарий