Среда Java 2 Enterprise Edition

С момента появления технологии в 1998 году шум вокруг нее не утихает

Если же технология Java или ее еще более специализированный серверный вариант вам в новинку, посмотрите на рисунок, на котором представлены основные компоненты среды J2EE. Опытным разработчикам на Java, безусловно, известны все ключевые элементы J2EE, но все же для начала позвольте привести несколько кратких определений. Сервлет — это класс Java, поддерживающий функциональность CGI-сценариев. JavaServer Pages (JSP) — страницы dynamic HTML. Enterprise JavaBeans (или просто Enterprise Beans) — серверная компонентная архитектура, в которой реализуется бизнес-логика корпоративных приложений. JDBC — независимый от конкретной базы данных API-интерфейс для популярных баз данных, таких как Oracle, Sybase и Microsoft SQL Server.

В лучах прожекторов

С момента появления технологии Enterprise JavaBeans — а это произошло в начале 1998 года — шум вокруг нее не утихает. В нашу консалтинговую фирму, специализирующуюся на программном обеспечении Java, приходит довольно много разработчиков, желающих использовать только J2EE или EJB. На первый взгляд технология EJB представляется весьма элегантной, и многие новички не понимают, что с ее помощью нельзя создавать универсальные решения. Ведь эта архитектура поддерживает очень много дополнительных элементов, а они нужны далеко не каждому приложению. Иногда при проектировании программ лучше использовать локальные классы. Особенно это важно при реализации небольших проектов, в которых очень хорошо воплощаются принципы объектно-ориентированной архитектуры.

Кроме того, компоненты EJB вряд ли нужны в приложениях, не поддерживающих распределенную обработку, — например, в пакетных процессах, где скорость имеет гораздо более важное значение, чем безопасность и обслуживание транзакций. Благодаря распределенной природе EJB при организации взаимодействия между клиентом и сервером компонентов EJB данные должны быть сначала упорядочены («сериализованы»), а затем переведены в прежнее состояние. Эти операции сопряжены с массой накладных расходов, в результате чего производительность заметно снижается. В данном случае наилучшим вариантом представляется использование локальных классов на той же самой виртуальной машине JVM.

Знакомство с особенностями

Даже если архитектура EJB кажется подходящей для проектирования приложения, впоследствии разработчикам, возможно, придется столкнуться с серьезными трудностями, обусловленными недостатком теоретических и практических знаний конкретной технологии. Я был немало удивлен тем, что лишь очень немногие разработчики программ на Java, создающие приложения на базе J2EE, удосужились ознакомиться с документацией Sun на J2EE.

Велика вероятность того, что разработчики, не слишком хорошо знакомые с особенностями архитектуры EJB и рассчитывающие возложить задачу управления масштабируемостью на сервер приложений, в конечном итоге получат немасштабируемое программное обеспечение. Причины могут быть различными. К примеру, при использовании средств Container Managed Persistence (CMP) для создания объектных компонентов вместе с программными продуктами, в которых каждому объекту ставится в соответствие отдельная таблица (например, с WebLogic), производительность приложения, взаимодействующего со сложной базой данных, заметно снижается. В таких ситуациях некоторые разработчики используют механизм Bean Managed Persistence (BMP), обеспечивающий включение кода обращений к базе данных в компоненты Enterprise Bean. Но и здесь неопытный программист рискует нанести непоправимый урон производительности системы, поскольку частота вызова методов загрузки и извлечения данных ejbLoad() и ejbStore() не регламентирована никакими стандартами. Другими словами, неверное конструктивное решение приведет к тому, что компоненты Enterprise Bean будут обращаться к базе данных гораздо чаще, чем это действительно необходимо. Кроме того, при использовании средств BMP нужно продумать вопросы, связанные с переносимостью постоянных объектов на другие платформы.

Помимо принятия решения о том, когда, где и каким образом следует применять технологию Enterprise Beans, необходимо хорошо знать продукты, предлагаемые другими производителями. Это очень важно для построения эффективных, масштабируемых корпоративных приложений. К примеру, грамотное использование программного обеспечения TopLink компании WebGain или Javlin компании Excelon поможет существенно повысить производительность приложений, созданных на базе технологии EJB.

Кроме того, следует чаще прислушиваться к советам специалистов Sun Microsystems и других компаний по поводу того, когда и как лучше использовать Enterprise JavaBeans. Примеры практического применения Enterprise JavaBeans в реальном мире и реальных продуктах (а не только ссылки на существующие реализации) также могут оказаться весьма полезными. Разработчикам, не слишком хорошо знакомым со средой J2EE, я посоветовал бы познакомиться с мнением экспертов, прекрасно разбирающихся в архитектуре J2EE и обладающих опытом участия в соответствующих проектах. Важно также иметь представление об имеющихся на рынке серверах приложений, совместимых с J2EE, и других продуктах, предлагаемых сторонними разработчиками. Но самое главное, постоянно следить за информацией, публикуемой Sun. Прежде чем принять решение об использовании J2EE, нужно хорошо понять все особенности функционирования данной технологии.

Поделитесь материалом с коллегами и друзьями