Модернизация Progress – введение в Javra IDE
С компанией Javra Software я познакомился на одной из международных конференций Progress несколько лет назад. Недавно мне довелось пообщаться с коммерческим директором Javra Software, Йост ван дер Вином (Joost van der Veen), и выяснить, что они могут предложить сегодня пользователям Progress.
Модернизация – не простая тема! Есть множество различных путей, но при этом, не существует стандартов для любого из направлений. Сегодня разные поставщики предлагают разные подходы к модернизации, и каждый из этих подходов имеет претензии на успех, так как на первый взгляд все они выглядят достаточно современно. Тем не менее, подходов много, но ясно одно – модернизация не должна ограничивается только современным пользовательским интерфейсом.
Чтобы разобраться во всём этом, в компании Javra Software после тщательного изучения всех плюсов и минусов всевозможных предлагаемых на сегодня решений и сценариев Progress-модернизации, организовали несколько вебинаров, чтобы представить своё понимание модернизации и предложить собственное решение – JAVRA IDE.
Каковы причины модернизации?
Крайне важно понимать потребность в модернизации. Приложения должны справляться с постоянно изменяющимися требованиями рынка и потребностями бизнеса.
Большинство клиентов JAVRA имели приложения, созданные еще до эры Интернета. За последние двадцать лет бизнес быстро эволюционировал, всё больше и больше становясь двигателем технологий. У нас есть опыт изменения парадигм программирования с процедурно-ориентированного на современное событийное программирование для работы в веб. Современные приложения состоят из множества отдельных компонент и модулей, что значительно отличает их от больших монолитных устаревших приложений. Следовательно, чтобы ваши существующие Progress-приложения могли работать в браузерах на мобильных устройствах как современные Web-приложения, и чтобы ваши сотрудники, выполняя свои обязанности, могли использовать их на своих планшетах и смартфонах, вы должны иметь чёткое представление об имеющихся подходах к модернизации.
Какие, по вашему мнению, существуют подходы к модернизации?
Наиболее распространённый подход к модернизации – это полная замена («Rip and Replace»), т.е. полное переписывание приложения. Подход идеален для компаний, которым необходимо модернизировать приложение под свои задачи и, при этом, они имеют большой штат разработчиков и много времени. Тем не менее, этот вариант привносит ряд проблем, таких как необходимость внедрения новых инструментов и обучение разработчиков новым технологиям.
Второй подход – использовать готовое решение, так сказать «с полки» («Buy off the shelf»), т.е. вы берете новое программное обеспечение и переносите свои данные для использования на новой платформе. Этот подход не для производителей программного обеспечения. Он может стать вариантом для конечного потребителя, но такой подход является весьма дорогим, так как «готовое решение» не было разработано специально для потребностей конкретного бизнеса. Вам будет необходимо выполнить множество настроек, что в конечном итоге увеличит стоимость и без того дорогостоящего подхода к модернизации.
Подход третий – «Расширяй и окружай» («Extend and Surround»), пожалуй, один из лучших доступных вариантов. Здесь вы берете существующее приложение и используете его функции в новой среде, создавая на их основе новые веб API и тем самым постепенно расширяя его возможности. Применение подхода не ограничено во времени, что позволяет создать нечто завершённое с использованием новых технологий и рядом новых веб API. Таким образом, повторно используя функции старого приложения, вы сможете вдохнуть в него новую жизнь.
Расскажите о своём решении – JAVRA IDE
Компоненты JAVRA IDE состоят из бэкенда и движка. Первая часть движка, который полностью написан на ABL, содержит всю логику, вторая часть – это веб-интерфейс, основанный на HTML5, который поддерживается Apple, Microsoft и т.д. Движок поддерживает все фрэймворки, множество языков, источников данных, браузеров и Progress версии 10.2B. Процесс начинается с миграции существующего приложения в наш фреймворк и репозиторий. Затем непосредственно начинается модернизация приложения путем его рендеринга в веб. Для символьных (CHUI) приложений конвертация немного отличается, но часть, касающаяся модернизации, остается той же самой. С точки зрения разработчика и пользователя, требуется только браузер, без необходимости установки каких либо клиентский компонент. В этот момент происходит автоматическое сканирование исходников. Отделённые компоненты пользовательского интерфейса помещаются в репозиторий. Бизнес-логика также сканируется и разделяется на модули, благодаря чему происходит исключение дублирования и сокращение кода. Таким образом, исходный код может быть уменьшен на 80%. В завершении, клиентское «оконное» приложение полностью модернизируется в облачной среде, в любом месте в любое время с доступом к той же функциональности, перемещая бизнес-логику в уже новые файлы. В результате, вы получаете возможность создавать, обновлять, удалять, искать и перемещаться по записям, настраивать шаблоны, придавать любой внешний вид и выбирать шаблон интерфейса, который вы предпочитайте использовать постоянно.
Иными словами, если мы выполняем проект по модернизации приложения, мы используем собственную систему (JAVRA IDE). С помощью этого фреймворка мы расширяем и окружаем существующее приложение новыми возможностями, делая намного больше, чем просто «продление его жизни» новыми элементами. Всё что мы пытаемся сделать, это сконвертировать ваше приложение в наш, основанный на репозитории, фреймворк. Когда приложение уже находится в хранилище, то становится намного проще расширять и развивать его на протяжении следующих многих лет. Зависимость приложения от интерфейса станет гораздо меньше. Для бизнес-логики на стороне сервера мы, конечно же, поддерживаем Progress, и всё, что Progress поддерживает для фронтальных систем, т.е. у нас есть различные варианты решений для клиентской логики, которые включают применение Progress ABL (4GL), а также Java Script.
В заключении, какие советы вы могли бы дать нашим читателям?
Процесс модернизации трудно понять, если вы не представляете, что должно стать итогом модернизации. Очень важно понимать что изменится. Следующие два вопроса могли бы помочь в этом отношении:
- Соответствует ли моё старое приложение моим текущим бизнес-потребностям? Если ваш ответ «НЕТ», то пришло время модернизации приложения.
- Моё старое приложение создано до начала эпохи Интернета? Если ваш ответ «ДА», и вам необходимо современное приложение, то устаревшее приложение должно быть заменено.
Почему замена? Мы пережили изменение в парадигмах программирования от процедурно-ориентированной к событийно-ориентированной. Монолитная структура приложения была расщеплена на множество функций. И когда мы поймем, что должно измениться, то благодаря доступным подходам к модернизации, мы сможем принять гораздо более обоснованное, стратегически согласованное с современными требованиями бизнеса, решение.
Никогда не забывайте, модернизация – это намного больше, чем красивый внешний вид современного приложения.
А какими подходами к модернизации своих Progress-приложений пользуетесь (пользовались) вы?
Метка:Модернизация