Развитие сетевых технологий, как аппаратных, так и программных, ускорило процесс внедрения решений, ориентированных на дистанционное обслуживание пользователей информационных систем. На современном этапе развития веб-технологий повсеместное распространение получили электронные образовательные системы с тонким клиентом и серверной частью, предполагающей развертывание программно-аппаратной инфраструктуры, зависимой от требований задачи. Серверные веб-технологии являются оптимальным решением для предоставления информационных услуг. Подобная стратегия построения веб-приложений обладает рядом преимуществ по сравнению с технологией, предполагающей использование толстого клиента: простота сопровождения; высокая доступность сервиса; максимальный охват пользователей; относительно проработанные и надежные механизмы защиты. Но технология, предполагающая использование сугубо тонких клиентов, обладает рядом недостатков: ограниченные возможности масштабирования; высокая степень зависимости от программной и аппаратной части сервера. На рис. 1 представлена схема подобной архитектуры. Очевидно, что любой компонент этой системы может представлять угрозу бесперебойному функционированию всей системы.
Система управления базами данных (СУБД), функционирующая на стороне сервера в большинстве своем обладает ограниченными возможностями масштабирования, и, за редким исключением (продукты Oracle), не предполагает распределение нагрузки.
Веб-приложение, функционирующее на сервере приложений (например, созданное с использованием технологий MS ASP.NET MVC, PHP), также потенциально уязвимо для угроз различного происхождения.
Рисунок 1. Схема функционирования веб-приложения, построенного по технологии «клиент-сервер».
Таким образом, несмотря на то, что функции системы, представленные на рис. 1 разнесены по отдельным аппаратным узлам и фактически выполняются разными программными средствами, надежность, масштабируемость и отказоустойчивость всего решения повышается незначительно, а из-за увеличения архитектурной сложности затрудняется сопровождение.
Для построения высоконадежных распределенных систем, архитектуру и конфигурацию связей которых может выбирать сам разработчик, предлагается использовать технологии Java EE. Данная технология предполагает использование компонент, аналогичных традиционному подходу (браузеры, веб-сервера, сервера приложений, сервера СУБД), но существенно расширяет подходы к их взаимодействию. Таким образом, Java EE не является программным продуктом или шаблоном проектирования приложений – это технологическая платформа для разработки распределенных информационных систем масштаба предприятия.
На рис. 2 представлена архитектура информационной подсистемы, спроектированной с использованием Java EE подхода.
Рисунок 2. Архитектура распределенных приложений Java EE.
Очевидно, что компоненты архитектуры данного решения разнесены по уровням в зависимости от их функциональной принадлежности (как и на рис. 1), но схема Java EE предполагает произвольное масштабирование программных компонент и широкие возможности наращивания аппаратных средств.
Например, на уровне получения HTTP-запросов можно добавить требуемое количество компьютеров (веб-серверов) для обслуживания запросов конечных пользователей. При этом масштабирование динамическое – оно заложено в архитектуру системы. Подобное динамическое масштабирование применяется к компонентам различных уровней.
Следует отметить, что подобная распределенная архитектура реализуется из компонентов свободно распространяемого программного обеспечения, а также предполагает использование бесплатных средств разработки, что является важным для развития экономически эффективных проектов.
Особого внимания при проектировании подобных систем заслуживает особенность развертывания: администратор системы может не иметь средств разработки и добавление нового элемента системы может быть произведено (в том числе удаленно) с использованием механизма автоматического развертывания (auto-deployment) [1].
Каждый уровень распределенных приложений Java поддерживается целым стеком технологий, позволяющих максимально полно учитывать требования к проектируемой информационной системе по надежности, масштабируемости, объему данных [2].
Таким образом, использование технологий Java EE позволяет обеспечить предприятия широким набором инструментов для построения распределенных, отказоустойчивых и масштабируемых систем высокой степени доступности, связанных не только с предоставлением информационных услуг, но предполагающих автоматизацию управленческой деятельности предприятий, реализующих широкие функции по комплексной автоматизации.
Список литературы:
[1] Pilgrim P. Java EE 7 Developer Handbook/. Peter A. Pilgrim – UK: Packt Publishing, 2013. – 633 p.
[2] https://docs.oracle.com/javaee/7/index.html – Официальная страница поддержки и документации Java EE.[schema type=»book» name=»РАСПРЕДЕЛЕННЫЕ ПРИЛОЖЕНИЯ НА ОСНОВЕ ТЕХНОЛОГИИ JAVA EE» author=»Николаев Евгений Иванович» publisher=»БАСАРАНОВИЧ ЕКАТЕРИНА» pubdate=»2017-05-08″ edition=»ЕВРАЗИЙСКИЙ СОЮЗ УЧЕНЫХ_ 28.02.2015_02(11)» ebook=»yes» ]