Главная » Java, Web » Серверные компоненты EJB и среда J2EE

0

Серверные компоненты EJB Java — технология, реализованная в пакете J2EE (Java 2 Enterprise Edition — Java 2 для предприятий) от компании Sun. Серверные компоненты EJB предназначены для создания распределенных приложений. Их использование позволяет создавать надежные распределенные приложения, а также реализовывать механизмы быстрой обработки запросов, разрабатывать системы защиты пользователей от несанкционированного

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

Разработка приложений на платформе J2EE подразумевает использование встроенных серверов. Существует несколько вариантов серверов от различных разработчиков, в том числе сервера от компаний Sun, IBM, Borland.

Технология разработки клиент-серверных приложений (см. главу 2) стремительно развивалась еще в начале 90-х. Многие информационные системы того времени были основаны на архитектуре клиент-сервер. Программа, реализующая пользовательский интерфейс, как правило, устанавливалась на обычном персональном компьютере и осуществляла функции клиента, представляя собой пользовательский уровень. Данные поставщика услуг и серверные данные были доступны клиенту при обращении к серверу. Сервер хранил данные в виде базы данных (рис. 5.1).

Рис. 5.1. Архитектура клиент-сервер

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

Поскольку недостатки клиент-серверной архитектуры довольно скоро стали очевидны, появилась необходимость создания новой, более совершенной модели. Появилась модель многоуровневой архитектуры (рис. 5.2).

Рис. 5.2. Многоуровневая архитектура

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

Клиентом в приложении J2EE может быть HTML-страница, содержащая апплет, или просто страница без апплета. Клиентом также может быть Java- приложение. Это приложение может быть мультиплатформенным и может быть запущено с любого устройства, в том числе с карманного компьютера или с сотового телефона.

В качестве приложений среднего звена могут использоваться, например, серверные страницы Java, сер влеты, которые работают на том или ином Web-сервере и осуществляют бизнес-логику и реализуют пользовательский интерфейс. Серверные компоненты EJB выполняются в контейнере EJB. Компоненты EJB осуществляют основные функции бизнес-логики приложения. Контейнер предоставляет компонентам EJB набор сервисов, эти сервисы всегда доступны, разработчик программ не должен вновь и вновь заботиться о них, они уже готовы для использования.

Рис. 5.3. Детализированная модель многоуровневой архитектуры

Серверный уровень, соответствующий информационному серверу предприятия (Enterprise Information Server, EIS), — это уровень, на котором расположены данные. Как правило, он содержит базы данных. Не все разрабатываемые приложения будут включать в себя все перечисленные компоненты. Приложение создается таким, чтобы максимально удовлетворить нужды предприятия наиболее эффективным образом.

Каковы преимущества распределенных многоуровневых приложений? Разработчики J2EE отмечают следующие достоинства распределенной модели. Распределенные приложения позволяют уменьшить уровень сложности создаваемых приложений за счет упрощения архитектуры приложения и распределения ролей между разработчиками. К примеру, бизнес-логика приложения может быть осуществлена в контейнере EJB и на Web-сервере. Общий набор функций может быть достаточно большим и таким образом задача становится сложной. Но EJB-контейнер будет обрабатывать транзакции, создавать и хранить экземпляры объектов автоматически, без участия программиста. В то же время Web-сервер может работать с сер влетами, потоками, сокетами. В этом случае программист должен позаботиться не столько том, как написать код, но как наиболее эффективно осуществить связь между частями приложения, причем эта задача главным образом будет решаться во время размещения приложения на сервере.

Каждый разработчик обычно является специалистом в той или иной области и решает свою собственную задачу. Содержимое HTML-страницы, работа со стилями CSS (Cascading Style Sheets — каскадные листы стилей) — это область применения опыта и знаний Web-мастера или дизайнера. Старший разработчик может отвечать за создание и воплощение бизнес-логики приложения, включая разработку приложения на основе серверных компонентов, серверных компонентов EJB. Web-программист отвечает за разработку пользовательского интерфейса и логики представления приложения пользователю, при этом он может использовать серверные страницы Java, а также сервлеты. Координатор проекта может отвечать за сборку всех частей проекта в общее целое, при этом могут создаваться самостоятельные файловые единицы, например, архивы предприятия, EAR (Enterprise Arc hive). Администратор проекта ответственен за установку приложения. Разделение задач разработки приложения между специалистами позволяет использовать опыт людей наиболее эффективным способом.

Еще одним преимуществом создания приложений с использованием J2EE является то, что такие приложения оказываются легко изменяемыми, можно без существенных затрат изменить приложение. Когда система разрастается, средний уровень приложения, осуществляющий бизнес-логику и логику представления, может быть переделан или создан заново, при этом все же нет необходимости устанавливать приложение на каждую машину заново.

Преимуществом также является то, что создаваемое приложение может использовать уже существующие информационные ресурсы и системы. Java поддерживает работу с базами данных посредством JDBC. Этот механизм представляет собой набор средств для работы с базами данных на основе языка SQL. Интерфейс имен JNDI (Java Naming and Directory Interface) может использовать сервис имен. Сервис сообщений JMS (Java Messaging Service) представляет собой интерфейс для отправки и получения сообщений. Сервисы, предоставляемые технологией CORBA, доступны посредством использования технологии JavalDL (Java Interface Definition Language — язык описания интерфейса для Java).

J2EE предоставляет улучшенные возможности защиты информации от несанкционированного доступа. Кроме того, разработчик имеет возможность сделать выбор из широкого ассортимента средств, предоставляемых компанией Sun. Одним из наиболее популярных средств разработки Java- приложений является J Builder от компании Borland.

Среда разработки J Builder Enterprise Edition включает в себя большой набор средств разработки приложений J2EE. Наиболее популярные из них мы рассматриваем в этой книге. К клиентской части относятся апплеты. Аппле- ты — это Java-приложения, которые загружаются на компьютер клиента в браузер и выполняются на компьютере клиента. Среда J Builder имеет ряд возможностей, облегчающих создание пользовательских интерфейсов Java (находящихся в меню Application Wizard | UI designer). При создании клиентских приложений полезным бывает использование готовых или созданных самостоятельно компонентов EJB Java (не путать с серверными компонентами EJB). Компоненты EJB помогут облегчить процесс создания приложения (апплета).

Уровень бизнес-логики и пользовательского интерфейса, включая Web- сервер и серверные компоненты EJB, может быть реализован с использованием контейнера сервлетов — набора средств, носящих название Tomcat. Сервер приложений, работающих с серверными компонентами EJB, — это сервер Borland Enterprise Server. Среда разработки позволяет создавать приложения не только для этого сервера, но и для ряда других Java-серверов, таких как Web Logic, WebSphere, iPlanet и других.

Сервер позволяет создавать приложения среднего уровня (уровня бизнес- логики и реализации пользовательского интерфейса) на основе популярных технологий, включая сервлеты и серверные страницы Java. Разработка сервлета в J Builder осуществляется с использованием проводника создания сервлета Servlet Wizard, а серверных страниц — с помощью Java Server Page Wizard.

J Builder содержит библиотеку компонентов, упрощающих создание сервлетов и JSP-страниц. Эта библиотека состоит из интернет-компонентов IB. Интернет-компоненты IB облегчают процесс создания приложений, работающих с данными, также они помогают организовать представление данных пользователю наиболее удобным образом.

Уровень бизнес-логики может включать в себя контейнер серверных компонентов EJB. J Builder 7 оснащен набором средств работы с серверными компонентами EJB спецификации EJB 1 и EJB 2.0. Разработка приложений на основе серверных компонентов EJB упрощается, если использовать проводника серверных компонентов EJB (File | New | EJB). После создания серверного компонента EJB создается дескриптор размещения компонента EJB. Дескрипторы можно редактировать в редакторе дескрипторов.

Все Web-приложения и их компоненты, а также серверные компоненты EJB, могут быть объединены в один файл архива EAR. Для этого можно использовать проводник создания архива EAR Wizard.

J2EE позволяет работать с базами данных посредством драйверов JDBC (Java Database Connectivity). JDBC — это стандарт доступа к базам данных, используемых в Java для осуществления доступа к данным на сервере Enterprise Information Systems (EIS). На основе JDBC создаются SQL- запросы к базам данных. В среде J Builder содержится библиотека DataExpress, облегчающая работу с базами даных. В J Builder содержится также база данных jDatastore. Сервис сообщений JMS служит для передачи сообщений от одного компонента и процесса распределенного приложения к другому. Существуют различные реализации сервиса сообщений. J Builder использует средства SonicMQ 3.5. Кроме того, существует возможность создания серверных компонентов EJB третьего типа, компонентов EJB, основанных на сообщениях (компонентов EJB типа message-driven). Этот тип серверных компонентов EJB использует сервис сообщений, встраивая его внутрь компонента EJB.

Для нахождения объектов в распределенных приложениях используется интерфейс имен JNDI. В J2EE также широко применяется язык XML. Так, Web компоненты и серверные компоненты EJB имеют дескрипторы размещения, записанные в файле XML и содержащие информацию о расположении и поведении компонентов.

Источник: Будилов В. А. Интернет-программирование на Java. — СПб.: БХВ-Петербург, 2003. — 704 е.: ил.

По теме:

  • Комментарии