Применение платформы J2EE для разработки корпоративного приложения 'Внешняя зона' в автоматизированных системах управления специального назначения
В настоящий период развития инфокоммуникационных систем и сетей связи время всеми ведущими ИТ-компаниями проводятся исследования и разработки по внедрению новых моделей управления сложными информационными системами. Данные разработки реализовывают техническое и информационное обеспечение различного вида выполняемых специальных задач, во время которых все действующие объекты совместно используют информацию с помощью единых интерфейсов, стандартов и протоколов. Эффективность системы управления сил специального назначения на современном этапе недостаточно невысока и не соответствует стоящим перед ней задачам, так как построена по 'стволовому' принципу и не обеспечивает ни техническую, ни информационную совместимость систем и средств управления. Таким образом, для сил специального назначения наиболее актуальной является задача внедрения современных автоматизированных систем управления для управления ИТ-инфраструктурой и ресурсами данных информационных систем. Одним из важных ключевых вопросов является вопрос выбора наиболее производительных, качественных и экономически выгодных платформ проектирования, в том числе и для корпоративных приложений. Для уменьшения стоимости и увеличения скорости проектирования и разработки корпоративного приложения платформа J2EE предлагает компонентный подход к проектированию, разработке, сборке и внедрению корпоративных приложений. Платформа J2EE предлагает модель многоуровневого распределенного приложения, возможность повторного использования компонентов, интегрированный обмен данными на основе XML, унифицированную модель безопасности и гибкое управление транзакциями.
Ключевые слова: язык программирования, многоуровневая среда, сервер, базы данных, корпоративный компонент.
Зверев А.Б.,
Главный инженер ЗАО "НПЦ ИРС" Легков К.Е.,
Научный сотрудник СевероКавказского филиала МТУСИ, к.т.н., [email protected]
В системах связи специального назначения подключение автоматизированных рабочих мест для управления ИТ-инфраструктурой и ресурсами всей инфокоммуникационной системы осуществляется через внешние зоны, созданные на платформе ]2ЕЕ (рис. 1).
Данная платформа использует модель многоуровневого распределенного приложения. Логически приложение разделено на компоненты в соответствии с их функциональностью. Различные компоненты, составляющие ]2ЕЕ-приложение, установлены на различных компьютерах в зависимости от их уровня в многоуровневой среде ]2ЕЕ, которой данный компонент принадлежит. Основными частями ]2ЕЕ-приложения являются:
компоненты клиентского уровня — работают на клиентской машине;
компоненты ■леЬ-уровня — работают на ]2ЕЕ-сервере;
компоненты бизнес-уровня — работают на ]2ЕЕ-сервере;
программное обеспечение уровня корпоративной информационной системы (EIS) работает на EIS-сервере.
Хотя J2EE-пpилoжение состоит из трех или четырех уровней, многоуровневые J2EE-пpилo-жения обычно принято называть трехуровневыми, т.к. они расположены на трех различных системах: клиентский компьютер, сервер J2EE и сервер базы данных или обычный сервер. Трехуровневые приложения, работающие данным способом, расширяют стандартную архитектуру клиент-сервер, добавляя многопоточный сервер приложений между клиентской частью и сервером базы данных.
J2EE-пpилoжения состоят из компонентов. J2EE-кoмпoнента представляет собой законченный функциональный программный модуль, встроенный в приложение J2EE с соответствующими классами и файлами и взаимодействующий с другими компонентами. J2EE-специфика-ция определяет следующие J2EE-кoмпoненты: клиентские приложения и апплеты — это компоненты, работающие на клиентской машине;
компоненты технологии Java-сервлет и JavaServer Pages (JSP) — это web-компоненты, работающие на сервере;
корпоративные компоненты — это бизнес-компоненты, работающие на сервере.
J2EE-кoмпoненты пишутся на языке программирования Java и компилируются точно
так же, как и любая другая Java-программа. Отличием между J2EE-компонентами и "стандартными" классами Java является то, что J2EE-компоненты собираются в J2EE-приложение, находящееся в строгом соответствии со спецификацией J2EE, развернутое для функционирования в соответствующем месте и управляемое сервером J2EE.
J2EE-клиентом может быть Web-клиент или клиент приложения.
Web-клиент состоит из двух частей: динамические web-страницы, написанные на языках разметки различного типа (HTML, XML и т.д.), генерируемые web-компонентами на web-уровне, и web-браузер, визуализирующий полученные от сервера страницы.
Web-клиент иногда называют тонким клиентом, они обычно не выполняют таких функций как запрос к базе данных, реализация сложных бизнес-правил или связь с серверными приложениями. При использовании тонкого клиента подобные полновесные операции переносятся на корпоративные компоненты, выполняющиеся на J2EE-сервере и использующие безопасность, скорость, сервисы и надежность J2EE-серверных технологий.
Web-страница, полученная от web-уровня, может включать в себя встроенный апплет — небольшое клиентское приложение, написанное на языке Java и выполняющееся на установленной в web-браузере виртуальной машине Java.
Рис. 1. Место J2EE технологии в инфокоммуникационной системе
Однако системы клиента могут потребовать Java- Plug-in и файл политики безопасности для того, чтобы апплет успешно выполнялся в web-браузере.
Web-компоненты являются более предпочтительным API для создания клиентской Web-программы, т.к. на системах клиента не требуется никаких дополнений и файлов политики безопасности. К тому же web-компоненты предоставляют более ясную модульную структуру приложения, т.к. обеспечивают способ отделения программного кода приложения от кода оформления web-страниц.
Клиент J2EE-приложения работает на клиентской машине и обеспечивает пользователей возможностью работать с задачами, требующими более богатого пользовательского интерфейса, чем тот, который предоставлен языками разметки страниц. Они обычно имеют графический пользовательский интерфейс, созданный при помощи Swing или AWT API, хотя, безусловно, возможен и интерфейс командной строки.
Клиенты приложения имеют непосредственный доступ к корпоративным компонентам, исполняющимся на бизнес-уровне. Тем не менее, клиент приложения J2EE может открыть HTTP соединение для коммуникации с сервле-
том, работающим на web-уровне, если существуют такие требования к приложению.
Уровни сервера и клиента могут также включать компоненты, основанные на архитектуре компонентов JavaBeans, для управления потоком данных между клиентом приложения или апплетом и компонентами, выполняющимися на сервере J2EE, либо компонентами сервера и базой данных. Компоненты JavaBeans не считаются компонентами J2EE согласно спецификации J2EE.
Компоненты JavaBeans содержат переменные экземпляра и методы get и set для доступа к данным в переменных экземпляра. Компоненты JavaBeans, используемые таким образом, обычно просты по дизайну и реализации, но должны быть согласованы с правилами именования и дизайна, определенными в архитектуре компонентов JavaBeans.
Клиент связан с выполняющимся на J2EE-сервере бизнес-уровнем либо непосредственно, либо (как в случае с работающим в браузере клиентом) посредством JSP-страниц или сервлетов, работающих на Web-уровне (рис. 2).
J2EE web-компоненты могут быть либо сервлетами — классами языка Java, которые динамически управляют запросами и констру-
ируют ответы, либо страницами ]БР ^Р-страни-цы являются текстовыми документами, которые исполняются так же, как и сервлеты, но предлагают более естественный подход к созданию статического содержания.
Статические ЬЫ-страницы и апплеты связываются с 'леЬ-компонентами во время сборки приложения, но не считаются МЪЬ-компонента-ми по ]2ЕЕ-спецификации. Обслуживающие классы со стороны сервера также могут быть связаны с 'леЬ-компонентами и, подобно ЬЫ-стра-ницам, не считаются '^еЬ-компонентами.
Так же как и клиентский уровень, web-уровень, может включать в себя компонент ]ауаВеап$ для управления вводом пользователя и направления этого ввода в работающий на
Клиентский уровень
Web-броузер
Web-страницы
Апплеты
JavaBeans-
компоненты
Клиентское приложение JavaBeans- ' компоненты
Web-
уровень
Бизнес-
уровень
J2EE-cepeep
Рис. 2. Коммуникации сервера
Рис. 3. Web-уровень и J2EE-приложение
бизнес-уровне корпоративный компонент для обработки (рис. 3).
Бизнес-код, который является логикой, решающей задачи непосредственно бизнес-области, такой как банк, розничная торговля или финансы, управляется корпоративными компонентами, выполняющимися на бизнес-уровне. На рис. 4 показано, как корпоративный компонент получает данные от клиентской программы, обрабатывает их (при необходимости) и посылает их на уровень корпоративной информационной системы для хранения. Корпоративный компонент также извлекает данные из хранилища, обрабатывает (если необходимо) и посылает обратно в клиентскую программу
Существует три типа корпоративных компонентов: сессионные компоненты, компоненты управления данными и управляемые сообщениями компоненты. Сессионные компоненты представляют кратковременное общение с клиентом. Когда клиент заканчивает работу, сессионный компонент и его данные исчезают. В противоположность им, компоненты управления данными представляют постоянные данные, хранимые в одной строке таблицы базы данных. Если клиент завершает работу или сервер выключается, встроенный сервис гарантирует, что данные такого компонента будут сохранены.
Управляемые сообщениями компоненты комбинируют особенности сессионного компонента и JMS (службы сообщений Java) приемника сообщений, позволяя бизнес-компоненту получать сообщения JMS асинхронно.
Уровень корпоративной информационной системы образует программное обеспечение информационной системы и включает в себя системы корпоративной инфраструктуры, такие как планирование ресурсов предприятия (Е1^Р), управление транзакциями мейнфрейма, базы данных, и другие стандартные информационные системы. ]2ЕЕ-компоненты могут нуждаться в доступе к корпоративным информационным системам для взаимодействия, например, с базами данных.
Обычно многоуровневые приложения для тонких клиентов писать тяжело, потому что они включают в себя много строк сложного кода для управления транзакциями и состояниями, многопоточностью, обменом ресурсами и другими комплексными низкоуровневыми задачами. Основанная на компонентах и платформо-не-зависимая архитектура ]2ЕЕ облегчает написание ]2ЕЕ-приложений, потому что бизнес-логика локализуется в компонентах многократного использования. Кроме того, ]2ЕЕ-сервер обеспечивает основные сервисы в форме контейнера для каждого типа компонентов.
Контейнеры являются интерфейсом между компонентом и низкоуровневыми платформозависимыми функциональными возможностями, поддерживающими компонент. До того, как web-компонент, корпоративный компонент или компонент клиентского приложения может быть выполнен, он должен быть скомпонован в ]2ЕЕ-приложение и размещен внутри своего контейнера.
Процесс компоновки включает в себя определение установок контейнера для каждого компонента в J2EE-приложении и для самого J2EE-приложения. Установки контейнера настраивают внутреннюю поддержку, обеспечиваемую J2EE-сервером, которая включает в себя такие сервисы как безопасность, управление транзакциями, JNDI-поиск и удаленную связь. Вот некоторые из основных положений:
• модель безопасности J2EE позволяет сконфигурировать web-компонент или корпоративный компонент так, что доступ к системным ресурсам разрешается только авторизованным пользователям;
• модель транзакции J2EE позволяет вам определять взаимосвязи между методами, которые составляют простую транзакцию, так, что все методы в одной транзакции интерпретируются как один модуль;
• сервисы поиска JNDI обеспечивают унифицированный интерфейс к различным сервисам каталогов и имен на предприятии, так что компоненты приложения получают доступ к этим сервисам;
• модель удаленного доступа J2EE управляет низкоуровневыми взаимосвязями между клиентами и корпоративными компонентами, после того, как корпоративный компонент создается, клиент вызывает его методы так, как если бы они находились на той же виртуальной машине.
Тот факт, что J2EE-архитектура обеспечивает конфигурируемые сервисы, означает, что компоненты в J2EE-приложении могут вести себе по-разному, в зависимости от места их размещения. Например, корпоративный компонент может иметь установки безопасности, дающие ему определенный уровень доступа к базе данных в одном рабочем окружении и другой уровень доступа — в другом.
Контейнер также управляет неконфигури-руемыми сервисами, такими как время жизни корпоративного компонента и сервлета, ресурсный пул (объединение ресурсов) связи с БД, персистенция данных, доступ к API J2EE-платформы. Хотя сохраняемость данных является неконфигурируемым сервисом, J2EE-архи-тектура позволяет замещать сохраняемость, управляемую контейнером, при помощи включения соответствующего кода в реализацию корпоративного компонента в тех случаях, когда необходимо получить больший контроль, чем обеспечиваемый по умолчанию.
Процесс размещения устанавливает компоненты J2EE-приложения в J2EE-контейнеры (рис.5):
• J2EE-сервер: является частью времени исполнения J2EE-приложения. J2EE-сервер
Web броузер Web-страницы Апплеты JavaBeans-
КОМПОНСНГЫ
Клиентское
приложение
JavaBeane-
KO 44 поме НТК!
Рис.4. Бизнес- и EIS-уровень
Бизнес -уровень
EIS-
уровень
J2EE-cepeep
предоставляет EJB и web-контейнеры;
• корпоративный EJB-контейнер: управляет исполнением корпоративных компонентов для J2 EE-приложений, корпоративные компоненты и их контейнер выполняются на J2 EE-сервере;
• Web-контейнер: управляет исполнением JSP-страницы и сервлетов для J2 EE-приложения, web-компоненты и их контейнер выполняются на J2EE-сеpвеpе;
• контейнер клиентского приложения: управляет исполнением компонентов клиентского приложения, клиентские приложения и их контейнер выполняются на клиенте;
• контейнер апплетов: управляет выполнением апплетов, состоит из web-броузера и Java- plug-in, выполняющихся на клиенте совместно.
J2EE-кoмпoненты упаковываются раздельно и связываются в J2EE-пpилoжение. Каждый компонент, его файлы, такие как GIF и HTML-файлы, или сервисные классы на сервере и дескриптор размещения компонуются в модуль и добавляются в J2EE-пpилoжение. J2EE-пpилo-жение состоит из одного или нескольких модулей корпоративных компонентов, web-компонентов или компонентов клиентского приложения. Окончательное корпоративное решение может использовать одно J2EE-пpилoжение или состоять из двух и более J2EE-пpилoжений в зависимости от требований проекта.
J2EE-пpилoжение и каждый из его модулей имеет собственный дескриптор размещения. Дескриптор размещения является xml-документом с расширением .xml, описывающим установки размещения компонента. Дескриптор размещения модуля корпоративного компонента, например, описывает атрибуты транзакции и уровень безопасности для корпоративного компонента. Так как информация дескриптора размещения является описательной, она может меняться без изменения исходного кода компонента. Во время выполнения J2EE-сеpвеp читает дескриптор размещения и соответствующим образом обрабатывает компонент.
J2EE-пpилoжение со всеми своими модулями поставляется в файле корпоративного архива (EAR). EAR-файл является стандартным Java-архивом (JAR) с расширением .ear.
Использование модулей и EAR-файлов делает возможной компоновку нескольких раз-личньxJ2EE-пpилoжений, используя некоторые из тех же самых компонентов. Никакое дополнительное кодирование не требуется; это вопрос компоновки различных J2 EE-модулей в EAR-файлы.
Модули повторного использования дают возможность разделить процесс разработки и
Рис. 5. J2EE-сервер и контейнеры
размещения приложения на отдельные составляющие, так что разные люди и компании могут выполнять различные части процесса.
Первые две фазы включают приобретение и инсталляцию J2EE-приложения и инструментов. Когда программное обеспечение приобретено и установлено, J2EE-компоненты могут быть разработаны поставщиками компонентов приложения, скомпонованы сборщиками приложения и размещены установщиками.
Реляционная база данных обеспечивает постоянное место хранения данных приложения. Для реализации J2EE не требуется поддержки определенного типа базы данных. Это означает, что базы данных, поддерживаемые различными J2EE-продуктами, могут быть разными.
Для запуска J2EE SDK необходимо наличие: Java 2 Platform, Standard Edition (J2SE) SDK, которая предоставляет основные API для создания J2 EE-компонентов, основные инструменты разработки и виртуальную машину Java. J2EE SDK предоставляет API, используемые в J2EE-приложениях.
Корпоративный компонент представляет собой код с полями и методами, реализующий модули бизнес-логики. Корпоративный компонент можно представить в виде строительного блока, который может использоваться как самостоятельно, так и совместно с другими компонентами, для исполнения бизнес-логики на J2EE-сервере.
Существует три вида корпоративных компонентов: сессионные компоненты, компоненты управления данными, управляемые сообщениями компоненты. Корпоративные компоненты часто взаимодействуют с базами данных. Одним из преимуществ компонентов управления данными является отсутствие SQL-кода или использование JDBC API непосредственно для выполнения операций доступа к базе данных, так как EJB-контейнер сделает это сам. При необходимости, чтобы сессионный компонент
имел доступ к базе данных, требуется использование JDBC API.
JDBC API позволяет вызывать SQL-команды из методов языка программирования Java. JDBC API используется также в корпоративных компонентах при изменении установленной по умолчанию персистенции, управляемой контейнером, или при обращении к базе данных из сессионного компонента. При персистенции, управляемой контейнером, операции доступа к базе данных обрабатываются контейнером, т.е. реализация корпоративного компонента не содержит кода JDBC или SQL-команд. Также, возможно использование JDBC API в сервлете или JSP-странице для прямого доступа к базе данных, минуя корпоративный компонент.
JDBC API состоит из двух частей: интерфейса прикладного уровня, используемого компонентами приложения для доступа к базе данных, и интерфейса поставщика сервиса, используемого для подключения JDBC-драйвера к J2EE-платформе.
Технология Java Servlet 2.3
Технология Java Servlet позволяет определить классы сервлетов. Класс сервлета расширяет возможности серверов, доступные хост-приложениям при использовании ими модели программирования "запрос — ответ". Хотя сервлеты могут отвечать на запросы любого типа, они обычно используются в приложениях, поддерживаемых Web-серверами.
Технология JavaServer Pages.
Технология JavaServer Pages позволяет встраивать фрагменты кода сервлета прямо в текстовые документы. JSP-страница представляет собой текстовый документ, который содержит два типа текста: статичные шаблонные данные, которые могут быть представлены в любом текстовом формате, таком как HTML, WML и XML, а также JSP-элементы, которые определяют способ построения динамичного содержимого страницы.
Java Message Service
JMS представляет собой стандарт обмена сообщениями, позволяющий компонентам J2EE-приложения создавать, посылать, принимать и читать сообщения. Он обеспечивает двустороннее, надежное, асинхронное распределенное соединение.
Java Naming and Directory Interface 1.2
JNDI обеспечивает функции имен и каталогов. Интерфейс предоставляет приложениям методы для стандартных операций с каталогами, таких как назначение атрибутов объектам и поиск объектов по их атрибутам. Используя JNDI, J2EE-приложение может сохранять и восстанавливать любые типы именованных Java-объектов.
Поскольку JNDI не зависит от какой бы то ни было специализированной реализации, приложения могут использовать JNDI для доступа к многочисленным сервисам имен и каталогов, включая такие сервисы, как LDAP, NDS, DNS и NIS. Это позволяет J2EE-приложениям сосуществовать с традиционными приложениями и системами.
Java Transaction API 1.0
Java Transaction API (JTA) обеспечивает стандартный интерфейс для разделенных транзакций. J2EE-архитектура обеспечивает автоматическую фиксацию транзакции по умолчанию для управления фиксацией и откатом транзакций. Автофиксация означает, что любые другие приложения, просматривающие данные, будут видеть обновленные данные после каждой операции чтения или записи в базу данных. Однако если приложение выполняет две отдельные операции доступа к базе данных, зависящие друг от друга, необходимо использовать JTA API для разграничения целостной транзакций, включающей обе операции, на начало, откат и фиксацию.
JavaMail API
Приложение J2EE использует JavaMail API для отправления e-mail сообщений. JavaMail API состоит из двух частей: интерфейса прикладного уровня, используемого компонентами приложения для отправления почты, и интерфейса поставщика сервиса. J2EE-платформа включает JavaMail вместе с поставщиком сервиса, что позволяет компонентам приложения отправлять Интернет-почту.
JavaBeans Activation Framework
JavaBeans Activation Framework (JAF) используется JavaMail. Он предоставляет стандартные сервисы для определения типа произвольных частей данных, инкапсулирует доступ к ним, разрешает операции над ними, и создает соответствующий JavaBeans-компонент для выполнения этих операций.
Java API for XML Processing Java API for XMLProcessing (JAXP) поддерживает обработку xml-документов, используя DOM, SAX и XSLT. JAXP позволяет приложениям анализировать и преобразовывать xml-документы независимо от особенностей реализации xml-обработки.
J2EE Connector Architecture J2EE Connector Architecture используется для создания адаптеров ресурсов, поддерживающих доступ к информационной системе предприятия. Эти адаптеры могут быть включены в любой J2EE-пpoдукт. Адаптер ресурса — программный компонент, позволяющий компонентам J2EE-пpилoжения иметь доступ и взаимодействовать с базовым менеджером ресурсов. Т.к. адаптер ресурса специфичен для своего менеджера ресурсов, обычно существуют различные адаптеры для каждого типа базы данных или информационной системы предприятия.
Java Authentication and Authorization Servce l.O Java Authentication and Authorization Service (JAAS) предоставляет возможность приложению J2EE аутентифицировать и авторизовывать определенного пользователя или группу пользователей.
JAAS — Java-версия стандартной системы подключаемого модуля аутентификации PAM (Pluggable Authentication Module), которая расширяет архитектуру безопасности платформы Java 2 поддержкой пользовательской авторизации.
Инструмент размещения приложения J2EE-pеализация предоставляет инстру-
мент размещения приложения (deploytool) для компоновки, проверки и размещения J2EE4p^ ложений. Существует две версии: командная строка и GUI.
GUI-версия включает мастера для: пакетирования, конфигурирования и размещения J2EE-приложений;
пакетирования и конфигурирования корпоративных компонентов;
пакетирования и конфигурирования Web-компонентов;
пакетирования и конфигурирования клиентских приложений;
пакетирования и конфигурирования адаптеров ресурсов.
Кроме того, информация о конфигурации может быть установлена для каждого типа компонента или модуля на закладке "inspector".
Литература
1. Прокис Дж. Цифровая связь. Пер с англ. // Под ред. Д. Д. Кловского. — М.: Радио и связь, 2000. — 241 с.
2. Лепкзв К.Е., Донченко МА Требования к показателям качества информационного обмена в сетях беспроводного широкополосного доступа.// Сборник трудов СКФ МТУСИ, 2009. Ростов-на-Дону: СКФ МТУСИ, 2009. — С. 59-64.
3. Летков К.Е Методы оценки качества информационного обмена в сетях беспроводного широкополосного доступа // Сборник трудов СКФ МТУСИ, 2009. Ростов-на-Дону: СКФ МТУСИ, 2009. С. 64-68.
4. http://www.codenet.ru/webmast/lava/l2ee (02.12.2012).
J2EE application platform for enterprise application development "outer zone" in automated control systems for special purposes
Zverev AB, Chief Engineer of JSC "SPC IRS"
Legkov KE, Researcher North Caucasian branch MTUCI, Ph.D., [email protected]
Abstract
At present, the development of information and communication systems and networks while all the leading IT company conducts research and development to introduce new models of management of complex information systems. These developments implement technical and information support of various kinds to carry out special tasks, during which all ex'sting objects share information through a single interface, standards and protocols. The effectiveness of the control system of special forces at the present stage is not high enough and does not meet the challenges it faces, as constructed by the "stem" principle and does not provide any technical or compatibility of information systems and management tools. Thus, for the special forces is the most urgent task of introducing advanced automated control systems for the management of IT infrastructure and data resources information systems. One of the important issues is the key to select the most productive, high-quality and cost-effective design platform, including enterprise applications. To reduce the cost and increase the speed of designing and developing enterprise application platform J2EE component-based approach offers the design, development, assembly and deployment of enterprise applications. J2EE platform offers tiered distributed application model, the ability to reuse components, integrated communication based on XML, a unified security model, and flex'ble transaction control.
Keywords language, mulli-liered environment, server, database, enterprise bean.
References
1.PricisJ. Digital communications // Ed. D.D. Klovsky. M.: Radio i svyaz, 2000. 241 p.
2. Legkov K.E., Donchenko MA Requirements for indicators of the quality of information exchange in wireless broadband networks // Proceedings of the GFR MTUCI 2009. Rostov-on-Don: GFR MTUCI 2009. Pp. 59-64.
3. Legkov K.E. Methods for assessing the quality of information exchange in wireless broadband networks // Proceedings of the GFR MTUCI 2009. Rostov-on-Don: GFR MTUCI 2009. Pp. 64-68.
4. http://www.codenet.ru/webmast/java/j2ee.