Одна из основных внутренних проблем любой компании — организация деятельности. Решением может стать информационная система управления событиями, которая оптимизирует и автоматизирует процесс организации деятельности внутри крупной компании. В данной работе рассматриваются Java фреймворки для разработки информационной системы, проводится их сравнительный анализ.
Ключевые слова: Java-фреймворк, web-приложение, Spring, Vaadin, Play.
One of the main internal problems of any company is the organization of its activities. The solution can be an event management information system that optimizes and automates the process of organizing activities within a large company. In this article, Java frameworks for developing an information system are considered, their comparative analysis is carried out.
Keywords: Java framework: web-application, Spring, Vaadin, Play.
В настоящее время каждый день возникают трудности в организации рабочего процесса, планировании задач и менеджмента времени в коммерческих организациях. Для любой коммерческой организации структуризация рабочей деятельности является одним из основополагающих факторов успеха. В случае грамотного тайм-менеджмента компания будет приносить прибыль и будет действовать максимально эффективно в условиях конкурентоспособного рынка.
Появляется необходимость организовать рабочую деятельность таким образом, чтобы каждый из работников компании мог проводить мониторинг событий, происходящих в организации и не пропускать запланированных встреч. Существует необходимость оповещения каждого из рабочих о новых событиях, их месте, дне и времени проведения. Автоматизация таких процессов может существенно повлиять на производительность каждого работника по отдельности и компании в целом. В связи с этим существует необходимость в имплементации системы управления событиями.
Множество компаний покупают готовые информационные системы, которые не всегда соответствуют требованиям, либо имеют сложный для понимания интерфейс, поэтому целесообразно разработать уникальную информационную систему под индивидуальные требования компании. Целью данной работы является сравнить Java фреймворки для реализации информационной системы управления событиями.
Фреймворк — это программная платформа, определяющая структуру программной системы. Кроме того, это программное обеспечение, облегчающее процесс разработки, за счет объединения различных компонентов программного проекта.
Разница между ним и библиотекой состоит в том, что библиотека — это набор подпрограмм, который никак не влияет на архитектуру и не создает дополнительных ограничений, в то время как фреймворк задает поведение по умолчанию на начальном этапе разработки, таким образом диктуя правила построения архитектуры приложения.
Фреймворк включает в себя:
– Библиотеки кода,
– Различное ПО,
– Различные компоненты программного проекта,
– Вспомогательные программы.
Примерами фреймфорков являются:
– Spring,
– Hibernate,
– Log4j,
– ReactJS,
– AngularJS.
Примером интеграции фреймворков является Hibernate, который интегрирован в Spring за счет наличия пакета, в котором содержится информация о подключении Hibernate. Это обеспечивает полное взаимодействие между данными каркасами.
Существует множество преимуществ использования фреймворков. Главным преимуществом по праву считается стандартность структуры приложения. Изначальное понимание структуры кода значительно упрощает задачу девелопера при разработке сложной ИС.
Для анализа были выбраны одни из наиболее популярных Java фреймворков: Spring, Vaadin и Play.
Spring Framework [1] — это фреймворк с открытым исходным кодом для платформы Java. Spring является одним из самых популярных фреймворков у Java-разработчиков. Это обусловлено следующими причинами:
– Большая свобода в проектировании,
– Богатая документация,
– Достаточное количество средств для создания приложений корпоративных масштабов,
– Возможность интеграции с другими каркасами,
– Богатый функционал,
– Применимость в любом Java-приложении,
– Наличие большого количества расширений и усовершенствований для создания приложений на Java Enterprise платформе,
– Хорошая поддержка и постоянные обновления фреймворка.
Spring обеспечивает решение множества задач, с которыми сталкиваются Java-разработчики, которые хотят создать ИС на языке Java. Spring не всецело связан с платформой Java Enterprise, хоть он масштабно интегрирован с ней. Данный фреймворк предлагает модель разработки, которая основывается на лучших стандартах индустрии, и делает ее доступной во многих областях Java. [9]
Spring может быть рассмотрен, как коллекция меньших каркасов или фреймворков во фреймворке. Большая часть всех этих фреймворков могут работать независимо друг от друга, но они наиболее эффективны, если используются все вместе. Эти фреймворки делятся на структурные элементы типовых комплексных приложений:
– IoC (Inversion of Control) контейнер,
– AOP-framework (Включая интеграцию с AspectJ),
– Data Access Framework,
– Transaction Management,
– MVC Framework,
– Batch processing,
– Фреймворк аутентификации и авторизации,
– Testing Framework.
Фреймворк для доступа к данным — одна из составных частей Spring, он обеспечивает приложению взаимодействие как с JDBC, так и с самыми распространенными ORM. Spring обеспечивает менеджмент ресурсов, освобождаю разработчика от рутинной работы вроде ручной обработки данных.
Spring поддердживает:
– Hibernate,
– JDO,
– JPA,
– Apache Cayenne,
– Oracle TopLink,
– Apache OJB,
– iBatis.
Vaadin Framework [2] базируется на Google Web Toolkit, который используется для вывода элементов пользовательского интерфейса и взаимодействия с сервером на стороне клиента. Это добавляет архитектуре фреймворка Vaadin сложности. Тем не менее, знание Google Web Toolkit не является обязательным для разработки на Vaadin.
Данный фреймворк считается одним из самых простых для изучения. Основной его особенностью является поддержка двух различных моделей программирования: серверной и клиентской. В фреймворке Vaadin можно проектировать пользовательский интерфейс в режиме WYSIWIG и писать логику отдельно для каждого компонента. Vaadin — это единственный фреймворк, который позволяет писать пользовательский интерфейс полностью на Java, не используя Java Script, HTML и CSS. Богатая документация также является одним из преимуществ данного фреймворка. В сети Интернет размещено внушительное количество бесплатных пособий, демонстрационных примеров и книг по фреймворку Vaadin. Однако, у данного фреймворка есть и минусы: не самая развитая экосистема и плохая масштабируемость для больших сайтов.
Play Framework [3] базируется на языке JVM. Его можно использовать, зная только Java, однако функционал будет ограничен. Данный фреймворк, также, как и Vaadin, считается прост для изучения. Одно из главных преимуществ Play Framework — развитая экосистема, включающая в себя такие инструменты, как SBT (Simple Building Tool) и Akka (библиотека для реализации реакционного программирования). TypeSafe предоставляет полную документацию по возможностям фреймворка. Кроме того, данный фреймворк подходит для быстрой разработки благодаря своей простоте. Также Play обеспечивает предсказуемое и минимальное потребление ресурсов (процессор, память, потоки) для масштабируемых приложений.
Исходя из краткого обзора вышеперечисленных Java фреймворков, для реализации информационной системы был выбран фреймворк Spring. Выбор объясняется наибольшей универсальностью данного фреймворка. Spring позволяет разработчику выполнять задачи любой сложности — от работы с базой данных до процедур тестирования системы.
Литература:
- «Spring Web MVC Documentation» [Электронный ресурс]. URL: https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html (дата обращения: 09.05.2020).
- «Vaadin Documentation» [Электронный ресурс]. URL: https://vaadin.com/docs/index.html (дата обращения: 09.05.2020).
- «Play 2.8.x documentation» [Электронный ресурс]. URL: https://www.playframework.com/documentation/2.8.x/Home (дата обращения: 10.05.2020).
- Нимейер П., Леук Д. Программирование на Java // Москва: Эксмо. 2014. С.1216
- «Java tutorials» [Электроный ресурс]. URL: https://howtodoinjava.com/hibernate/hibernate-entity-persistence-lifecycle-states (дата обращения: 09.05.2020).
- LifeWire [Электроный ресурс]. — URL: https://www.lifewire.com/what-is-a-web- application-3486637 (дата обращения: 09.05.2020).
- Гуренко В. В., Бородин А. Ф., Назарков В. А. Сравнительный анализ фреймворков для веб-разработки // В сборнике: Технологии инженерных и информационных систем. 2017. С. 3–14.
- Байнов А. М., Кривоногова А. Е., Николаев А. С., Богомолова О. И. Обзор современных фреймворков и инструментов, используемых для разработки web-приложений // В сборнике: Наука без границ. 2020. С.19–23.
- Баранов А. С. Достоинства и особенности фреймворка Spring // В сборнике: Молодежная наука в развитии регионов. 2017. С. 117–188.
- Сафронов М. А., Зингеренко Ю. А. Проектирование и разработка интернет-приложений с расширенными возможностями. RIA — Design and Development // В сборнике: Актуальный направления развития научной и образовательной деятельности. 2014. С. 239–241.
- Гранкин Ю. В., Ковалев Д. В., Ковалевский С. С. Инструменты для разработки программного обеспечения корпоративного уровня // В сборнике: Технические науки: теория и практика. 2014. С. 32–35.
- Мухамедзянов Д. Д. JAVA.Серверные приложения // Солон-Р. 2010. С. 336.
- Палаш Б. В. Анализ современных веб-фреймворков // Постулат. 2018. № 6 (32). С. 109.
- Шабров Н. В., Забуга А. А. Выбор критериев для сравнения Mvc фреймворков // В сборнике: Наука. Технологии. Инновации. Материалы всероссийской научной конференции молодых ученых в 10 частях. 2013. С. 56–58.
- M.Nash Java Frameworks and Components // JGlobal Ltd. 2003.