Архитектура

Техническая информация о Системе.

Презентационный уровень

Основная цель презентационного уровня – реализация пользовательского интерфейса: механизма взаимодействия пользователя и Системы. Для реализации пользовательского интерфейса будет использованы технологии:

  • Java Server Pages (JSP) - технология, позволяющая веб-разработчикам создавать содержимое, которое имеет как статические, так и динамические компоненты.

 

  • Struts  – наиболее распространённая технология в java для реализации паттерна программирования Модель – представление – контроллер: механизмы для перехода между экранными формами Системы.

Данный уровень отвечает за получение необходимых данных из уровня работы с данными, и формирование интерфейса в формате HTML, который будет отображаться пользователю. Для реализации динамического поведения в интерфейсе (всплывающие окна) будет использован JavaScript.

Также на этом уровне производится проверка данных введенных пользователем на обязательность и допустимые форматы, например формат номера телефона.

Уровень работы с данными

Данный уровень содержит компоненты, реализующие бизнес логику:

  • вызов других подсистем (отчетность, интеграция)
  • проверка данных введенных пользователем согласно бизнес требованиям
  • набор механизмов для работы с базой данных и управление транзакциями
  • механизмы мониторинга и аудита
  • кэширование данных
  • средства для обработки ошибок
  • инициализация автоматических задач (например синхронизация справочной информации с внешними системами)

В основе реализации уровня будет использована технология Spring (http://spring.io).  Особенности ядра Spring Framework применимы в любом Java-приложении, и существует множество расширений и усовершенствований для построения веб-приложений на Java Enterprise платформе. По этим причинам Spring приобрёл большую популярность и признаётся разработчиками как стратегически важный фреймворк.

Для реализации работы с базой данных будет использована библиотека Hibernate – набор механизмов для работы с базами данных. Основным преимуществом является универсальность при работе с БД любых производителей, в том числе SQL Server. Есть возможность смены производителя БД, без переработки приложения.

Интеграция с внешними системами

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

Для реализации Системы на данном этапе проработки требований, в Системе требуется реализовть потребует следующие протоколы:

  • File / FTP
  • HTTP (вебсервисы)

Формат файлов и запросов для сервисов будет согласован в рамках реализации проекта.

Безопасность

Система обеспечит защиту от несанкционированного доступа системой паролей и проверку прав на выполнение определенных действий.  В основе реализации будет использованы библиотеки spring-security,  что позволит разграничивать права на всех уровнях приложения.

Также spring-security дает возможность различных способов аутентификации пользователя (проверка связи логина / пароль). Есть возможность хранить пароли в зашифрованном виде в базе данных, либо интеграция с внешними директориями пользователей, например Active Directory.

Логирование в файлы всех событий в системе позволит производить аудит действий в рамках Системы. Также файлы логов будут содержать всю необходимую информацию для разбора внештатных ситуаций. Возможно реализация сохранения значимых событий в базу данных, и реализация экранных форм для их удобного просмотра.