Архитектура решения  Naumen University

В качестве постоянного хранилища данных используется реляционная база данных. В базу данных помещаются только данные в виде набора реляционных сущностей (связанных таблиц) без элементов программируемой логики (триггеров, хранимых процедур, представлений и т.п.). Система может использовать сервер, который удовлетворяет определенным требованиям к функциональности (поддержка транзакций, вложенных выборок [subselects], LOB-типов данных и др.) и для которого существует драйвер JDBC (Java Database Connectivity) уровня не ниже 2. Система совместима с СУБД Oracle 9/10, Microsoft SQL Server 2000/2005, PostgreSQL 8.1.
 


Сервер приложения реализуется в виде веб-приложения, которое может исполняться в контексте любого сервера Java-приложений, работающего на версии Java не ниже 1.5 и реализующего стандарты Java-сервлетов не ниже 2.4. Система совместима с серверами Tomcat 5.0 и выше, Resin 3 и выше.

Сервер приложений имеет модульную архитектуру: функциональность системы сосредоточена в нескольких модулях, работающих независимо друг от друга и взаимодействующих через общую шину сервисов. Модули разрабатываются в соответствии со спецификацией OSGi R4 и с использованием Equinox - свободно-распространяемой реализацией спецификации, созданной консорциумом Eclipse. При инсталляции системы устанавливается тот набор модулей, который необходим для достижения требуемой функциональности.

Работа с базой данных внутри сервера приложений реализуется с использованием библиотеки Hibernate 3.0. Данная библиотека является свободно-распространяемой реализацией концепции ORM (object-relationship mapping). Hibernate включает в себя средства описания структуры базы данных, на основе объектной модели приложения, средства автоматической трансляции операций над объектам приложения в операции над реляционной структурой. Также Hibernate предоставляет модель транзакций на уровне операций с объектами приложения, независимость кода уровня приложения от выбранного реляционного хранилища.

Уровень бизнес-логики включает в себя набор объектов, сохраняемых в базе данных, и операций с этими объектами. Каждая операция с точки зрения состояния базы данных является транзакцией, т.е. полностью выполняется и запоминается в базе данных или "откатывается" без изменений в базе данных. В виде таких бизнес-операций представлены только операции, изменяющие данные.

В общем случае для СУБД и других приложений может быть использован единый сервер, но выделение отдельного сервера для СУБД позволит обеспечить масштабируемость системы.

Интеграция с другими подсистемами

В основу подхода к интеграции программных систем положена концепция "сервисной шины предприятия" (Enterprise Service Bus, ESB или, в другой терминологии, SOA). Концепция реализуется через технологии web-сервисов (SOAP, WSDL, UDDI, BPEL4WS). В настоящее время концепция сервисной шины является основным подходом к интеграции приложений от различных разработчиков в индустрии программного обеспечения.

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

Внедрение предлагаемой архитектуры в проекте позволит, с одной стороны, системно решить задачу интеграции, а с другой – создаст основу для наращивания функциональности программной инфраструктуры проекта без его привязки к нестандартным решениям.