Разработка алгоритмов решения задачВ качестве платформы для разработки приложения была выбрана Java Enterprise Edition Platform. Эта платформа представляет набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий. Платформа J2EE использует модель многоуровневого распределенного приложения. Логически приложение разделено на компоненты в соответствии с их функциональностью. Различные компоненты, составляющие J2EE-приложение, установлены на различных компьютерах в зависимости от их уровня в многоуровневой среде J2EE, которой данный компонент принадлежит. Части J2EE-приложения: · Компоненты клиентского уровня работают на клиентской машине. · Компоненты Web-уровня работают на J2EE-сервере. · Компоненты бизнес-уровня работают на J2EE-сервере. · Программное обеспечение уровня корпоративной информационной системы (EIS) работает на EIS-сервере. Схематично структура j2ee приложения представлена на рисунке 2. Рисунок 2 – Структура j2ee приложения. Хотя J2EE-приложение состоит из трех или четырех уровней, показанных на рисунке 2, многоуровневые J2EE-приложения обычно принято называть трехуровневыми, т. к. они расположены на трех различных системах: клиентский компьютер, сервер J2EE и сервер базы данных или обычный сервер. Трехуровневые приложения, работающие данным способом, расширяют стандартную архитектуру клиент-сервер, добавляя многопоточный сервер приложений между клиентской частью и сервером базы данных. J2EE-клиентом может быть Web-клиент или клиент приложения. Web-клиент состоит из двух частей: динамические Web-страницы, написанные на языках разметки различного типа (HTML, XML и т.д.), генерируемые Web-компонентами на Web-уровне, и Web-браузер, визуализирующий полученные от сервера страницы. Web-клиент иногда называют тонким клиентом. Тонкие клиенты обычно не выполняют таких функций как запрос к базе данных, реализация сложных бизнес-правил или связь с серверными приложениями. При использовании тонкого клиента подобные полновесные операции переносятся на корпоративные компоненты, выполняющиеся на J2EE-сервере и использующие безопасность, скорость, сервисы и надежность J2EE-серверных технологий. Клиент J2EE-приложения работает на клиентской машине и обеспечивает пользователей возможностью работать с задачами, требующими более богатого пользовательского интерфейса, чем тот, который предоставлен языками разметки страниц. Они обычно имеют графический пользовательский интерфейс, созданный при помощи Swing или AWT API, хотя, безусловно, возможен и интерфейс командной строки. Клиенты приложения имеют непосредственный доступ к корпоративным компонентам, исполняющимся на бизнес-уровне. Тем не менее, клиент приложения J2EE может открыть HTTP соединение для коммуникации с сервлетом, работающим на Web-уровне, если существуют такие требования к приложению. J2EE Web-компоненты могут быть либо сервлетами, либо страницами JSP. Сервлеты - это классы языка Java, которые динамически управляют запросами и конструируют ответы. JSP-страницы являются текстовыми документами, которые исполняются так же, как и сервлеты, но предлагают более естественный подход к созданию статического содержания. Бизнес-код, который является логикой, решающей задачи непосредственно бизнес-области, такой как банк, розничная торговля или финансы, управляется корпоративными компонентами, выполняющимися на бизнес-уровне. Как уже говорилось выше, платформа предусматривает набор спецификаций, в которые входят такие паттерны проектирования как MVC(Model – View - Controller) и DAO (Data Access Object). Эти паттерны являются основными при проектировании web приложения и уточняют модель j2ee приложения. MVC – позволяет создавать расширяемые программы, удобные для сопровождения. При этом инкапсулируются функции и уменьшаются побочные эффекты при внесении изменений. Такой подход позволяет разделить бизнес-объекты и JSP-документы, что очень важно для большинства проектов, где бизнес логика постоянно претерпевает изменения. Графически mvc паттерн представлен на рисунке 3. Запросы передаются сервлету (контроллеру), который обращается к бизнес-объектам и создаёт содержимое. Это содержимое сохраняется в компоненте bean, к которому имеет доступ jsp-документ. Документ представляет содержимое, применяя для этого, как правило, средства HTML. DAO реализует необходимый для работы с источником данных механизм доступа. Источником данных может быть персистентное хранилище (например, RDBMS), внешняя служба (например, B2B-биржа), репозиторий (LDAP-база данных), или бизнес-служба, обращение к которой осуществляется при помощи протокола CORBA Internet Inter-ORB Protocol (IIOP) или низкоуровневых сокетов. Использующие DAO бизнес-компоненты работают с более простым интерфейсом, предоставляемым объектом DAO своим клиентам. DAO полностью скрывает детали реализации источника данных от клиентов. Поскольку при изменениях реализации источника данных представляемый DAO интерфейс не изменяется, этот паттерн дает возможность DAO принимать различные схемы хранилищ без влияния на клиенты или бизнес-компоненты. По существу, DAO выполняет функцию адаптера между компонентом и источником данных. На рисунке 4 показана диаграмма классов, представляющая взаимоотношения в паттерне DAO. BusinessObject представляет клиента данных. Это объект, который нуждается в доступе к источнику данных для получения и сохранения данных. DataAccessObject является первичным объектом данного паттерна. DataAccessObject абстрагирует используемую реализацию доступа к данным для BusinessObject, обеспечивая прозрачный доступ к источнику данных. DataSource представляет реализацию источника данных. ValueObject используемый для передачи данных. DataAccessObject может использовать Value Object для возврата данных клиенту. DataAccessObject может также принимать данные от клиента в объекте Value Object для их обновления в источнике данных.
|