Enterprise JavaBeans. Упрощение разработки распределенных многозвенных приложенийКорпорация Borland всецело содействует созданию основы, на которой будут построены будущие критически важные приложения - открытой, распределенной, объектно-ориентированной архитектуры для нового предприятия глобального масштаба. Ведущий поставщик распределенной объектной технологии в индустрии программных средств, Borland, разрабатывает передовые продукты, которые позволяют ИТ-организациям, сохраняя их инвестиции в существующие приложения, переходить на распределенные объектно-ориентированные технологии и использовать новые возможности, предоставляемые Internet. В этой статье мы рассмотрим Enterprise JavaBeans и обсудим, как программные продукты компании Borland поддерживают этот новый стандарт для распределенной разработки на Web-основе. Оглавление
ОбзорEnterprise JavaBeans-спецификация, созданная отделением JavaSoft корпорации Sun Microsystems, определяет интерфейс прикладного программирования (API), который призван упростить разработку, развертывание и управление многозвенными, кросс-платформенными распределенными объектными приложениями. Используя Enterprise JavaBeans API, разработчики могут сконцентрироваться на написании бизнес-логики для серверов среднего звена и уделять меньше времени кодированию и тестированию в аспектах инфраструктуры распределенного приложения. Так как каждый компонент Enterprise JavaBeans инкапсулирует важную бизнес-функцию, разработчику не обязательно знать, как писать специализированные программы системного уровня, которые регулируют функции типа безопасности и управления путем многочисленных транзакций - обычно трудоемкие и сложные задачи. Однако EJB - это просто модель. Критические решения реализации оставлены поставщикам, которые предоставляют EJB-решение. ИТ-отделам необходима EJB-реализация, удовлетворяющая требованиям приложений промышленного класса. Это решение должно:
Продукт, который объединяет все эти качества, лучше всего охарактеризован термином сервер приложения ( application server). Application Server обеспечивает основанное на стандартах решение, которое использует мощные Enterprise-продукты типа VisiBroker: VisiBroker ORB, VisiBroker ITS и VisiBroker Naming Service. Так как технологии, соединяющие распределенные вычисления с объектным подходом, получили поддержку, у информационных технологий (ИТ) появились новые возможности. Распределенные объектные архитектуры, такие как CORBA, позволили ИТ в рекордные сроки создать приложения для неоднородных платформ, включающих различные источники данных. Разделив приложения на компоненты, и переместив бизнес-логику на серверы среднего звена (серверы приложений), ИТ значительно уменьшила цикл разработки приложений посредством многократного использования логики в этих объектах серверов среднего звена. Все еще относительно небольшое число организаций перешло к серверам среднего звена, так как сложность кодирования многозвенных приложений требует наличие персонала, который знаком со специализированным программированием системного уровня. Однако феноменальный рост вычислительных сетей стимулирует ИТ использовать многозвенный подход. Бизнес-приложения, созданные для работы в Web, требуют архитектуру тонкого клиента для поддержки клиентов, работающих с браузерами. Этим клиентам необходимо взаимодействие с ресурсами intranet, но часто ограничивает системные ресурсы и усложняет загрузку апплетов. Чтобы сократить затраты ресурсов для этих клиентов, отделы ИТ стремятся создать переносимые решения на стороне сервера, которые соединяют гетерогенные платформы и интегрируются с наследуемыми системами. Так как Java и CORBA становятся широко распространенными, IT-отделы рассматривают включение этих технологий в свои решения. Чтобы удовлетворять растущие потребности, ИТ-отделам необходима модель разработки "написано однажды, работает везде", которая основана на промышленных стандартах Java и технологиях CORBA. Им необходимо решение, которое упрощает разработку, развертывание и управление этими многозвенными приложениями, чтобы большее количество разработчиков приложений могли создавать сложные распределенные приложения, не уделяя внимания таким сложным задачам, как безопасность и транзакции. Зачем нужны Enterprise JavaBeans?Хотя Java дает значительные преимущества при разработке распределенных приложений, этот язык не позволяет легко преодолевать сложности системного уровня, что необходимо в случае многозвенных распределенных приложений. Поскольку Java рассчитан на серверы среднего звена, разработчики испытывают потребность в расширении Java, справляющемся с такими сложными элементами, как групповые операции, защита и распределение, с тем, чтобы можно было сосредоточиться на написании бизнес-логики. Техническое описание Enterprise JavaBeans обрисовывает API, расширяющий компонентную модель JavaBeans и позволяющий использовать Java для построения независящих от платформы приложений, критичных к производительности, и выполняемых на стороне сервера. Эти серверные приложения построены на многократно используемых программных блоках (Enterprise JavaBeans), хранящихся на серверах среднего звена и отражающих логику бизнес-процессов. Отделяя семантику приложений от вопросов инфраструктуры (таких как транзакции, распределенность и безопасность), EJB упрощает разработку приложений и позволяет проектировщикам создавать сложные проблемно-зависимые распределенные приложения, не беспокоясь о базовой инфрастуктуре. Что такое Enterprise JavaBeans? Техническое описание Enterprise JavaBeans определяет компонентную модель, направленную на развитие и развертывание приложений Java, основанных на многозвенной распределенной объектной архитектуре. Компонентная модель EJB обеспечивает среду, поддерживающую многократно используемые компоненты приложений (Enterprise JavaBeans), хранящиеся на серверах среднего звена предприятия. Эти компоненты Enterprise JavaBeans являются предварительно разработанными модулями кода приложений, из которых можно собрать рабочие распределенные приложения. В настоящее время в Java есть компонентная модель, называемая JavaBeans. Enterprise JavaBeans создает расширение компонентной модели JavaBeans, поддерживающее компоненты на базе сервера. Компоненты выполняются внутри контейнеров. По существу, контейнер Enterprise JavaBeans является исполнительной компонентной системой, умеющей обращаться со сложностями системного уровня, такими как организация поточной обработки, транзакции, управление состоянием и разделение ресурсов. Внутри этого контекста приложения разработчики могут писать компоненты бизнес-логики, которые автоматически наследуют расширяемость и атрибуты исполнительной компонентной системы, ориентированные на предприятие. Эти компоненты бизнес- логики используют системные услуги исполнительной компонентной системы, не нуждаясь в понимании того, как в действительности исполнительная компонентная система справляется со сложными задачами типа защиты и групповых операций.
Рис. 2. Архитектура Enterprise JavaBeans. Поскольку EJB строится на основе языка Java, он поддерживает модель развертывания приложений "один раз напиши и запускай где угодно". Можно не только выполнять эти компоненты на любой платформе. Их можно полностью переносить в любой контейнер, принадлежащий поставщику Enterprise JavaBeans (исполнительную компонентную систему) EJB также упрощает разработку приложений, извлекая выгоду из простоты программирования и переносимости Java в качестве языка. Оно определяет платформу, которая, с помощью компонентной модели, спроектированной для поддержания многозвенных распределенных объектных приложений, упрощает программирование и развертывание объектов для серверов среднего звена. Простота многозвенного программирования Разработка с применением концепции многозвенности увеличивает расширяемость, эффективность и надежность распределенных объектных приложений. Можно размножить серверные компоненты и распределить их между любым числом серверов, тем самым, повышая доступность системы. Возможна быстрая модификация этих компонент, когда это диктуется коммерческими правилами и экономическими условиями. А независимость этих компонент от местонахождения позволяет системным администраторам легко переконфигурировать загрузку системы. Однако, разработка сервера в многозвенном приложении намного сложнее, чем разработка в традиционной системе клиент/сервер. Программисты обычно вынуждены задумываться над вопросами совместимости, блокировки, управления транзакциями, безопасности и расширяемости. Они должны также организовывать доступ к системным ресурсам, таким как потоки, память, соединения с базами данных и сетевые соединения. Сложность этих проблем в прошлом ограничивала разработку многозвенных приложений. EJB упрощает многозвенную разработку, идентифицируя две типовые проектные модели:
Рис. 3. Session Beans и Entity Beans. Если многозвенное приложение может оставаться в рамках этих двух проектных моделей, программисты могут сфокусироваться на написании бизнес-логики и переложить решение сложных операционных проблем на исполнительную компонентную систему EJB. После создания сервера или его компонентов, EJB существенно упрощает развертывание этих решений, заново используя упакованный формат Java Beans (файлы Jar) в качестве стандартного формата упаковки. EJB также определяет стандартную оперативную среду, которую должна предоставлять каждая исполнительная компонентная система EJB, т.е. обеспечивающую взаимодействие между разными реализациями спецификаций EJB. Исполнительная компонентная система должна включать средства, поддерживающие установку Enterprise JavaBeans, скомпонованного в стандартном формате файлов JAR. Эти инструменты должны динамически находить все реализации Enterprise JavaBeans и контролировать следующие детали процедуры установки:
Далее, эти компоненты серверов можно установить на любую реализацию EBJ поставщика, так как бизнес-логика компонент сервера не связана с деталями реализации на конкретной исполнительной компонентной системе. Изготовление на заказ без программирования Доступ к компонентам сервера осуществляется через хорошо определенный интерфейс. По природе интерфейса, компонент сервера является многократно используемым блоком для построения программ. Каждый компонент выполняет определенный набор функций, доступных через интерфейс любому другому приложению. Конкретная бизнес-функция может быть реализована один раз и затем может использоваться многократно в любом приложении, требующем эту функцию. Если организация хранит полную библиотеку компонентов, разработка приложения превращается в сборку соответствующих компонентов с получением конфигурации, выполняющей требуемые функции приложения. Долговременная перспектива EJB - это производство готовых серверных компонент, которые можно транслировать в полномасштабные решения для предприятия, совсем или почти не программируя. Поставщики программ могли бы производить многочисленные специализированные коммерческие компоненты, а организации могли бы отбирать компоненты, подходящие для их коммерческих нужд. До сих пор поставлялось довольно много готовых сторонних компонентов разработок, предназначенных для стороны клиента. На настоящий момент рынок компонентов для серверов все еще очень юн. Так как все больше организаций принимают серверную компонентную архитектуру, этот рынок должен быстро повзрослеть. Лидирующие промышленные компании, такие как IBM, Oracle, Sybase, Informix, Netscape, Novell, NCR, и Symantec, поддерживают технические характеристики Enterprise JavaBeans, так как они работают с существующими у них программными системами и базами данных для предприятий. А компании, развивающие программные приложения, уже начинают реализовывать приложения с использованием серверных компонентов. В конечном счете, эти компании начнут торговать отдельными компонентами для серверов. Требования для реализации EJBEJB представляет собой архитектуру и предлагает много вариантов осуществления различных программных решений различными поставщиками. Корпорация Borland создала мощную реализацию EJB за счет применения такого признанного лидера инфраструктуры CORBA, каким является VisiBroker. Так как именно предприятия будут оценивать реализации EJB, они будут соизмерять способности этих реализаций удовлетворять производственные потребности:
Поддерживает стандартные протоколы для связи предприятия EJB-решение должно подключить оставшиеся информационные ресурсы. Обычно корпорации имеют высокую неоднородность вычислительной среды, являющуюся результатом воздействия волн технологического прогресса и ведомственной автономности. Протокол, используемый EJB, должен объединить эти среды. По-видимому, с EJB будут использоваться следующие протоколы:
Таблица 1: Сравнение свойств протоколов.
С "родной" реализацией IIOP - общепризнанным стандартом коммуникации для Internet и intranet, VisiBroker ORB компании Borland может взаимодействовать с Java и не Java-приложениями (включая C, C++, Smalltalk, Delphi и Visual Basic). Inprise-реализация IIOP - признанный стандарт de-facto, используемый такими лидерами, как Oracle, Silicon Graphics и Netscape. Интегрируется с популярными интерактивными средами разработки Разработчикам, использующим EJB, иногда приходится выполнять повторяющиеся операции кодирования. Подобные задачи существенно упрощаются при использовании интерактивной среды разработки (IDE). Например, разработчик должен создать код EJB, чтобы связать компонент с его интерфейсом, home-интерфейсом и контейнером. Разработчикам необходимо также создать или модифицировать дескрипторы развертывания - задача, требующая значительных затрат времени при выполнении вручную. ИТ-специалистам необходимы EJB-решения, интегрированные со стандартом Java IDE, чтобы эти задачи кодирования автоматически выполнялись простым нажатием кнопки. Используя Borland Jbuilder-передовой IDE для Java, разработчики могут использовать BeansExpress для создания session-компонент и еntity-компонент, и автоматизировать необходимые задачи, такие как создание home и remote интерфейсов. Разработчики JBuilder могут также легко создавать Java-приложения на стороне сервера для доставки динамического веб-контента, используя мастер сервлетов Servlet Wizard. Сервлеты могут рассматриваться как серверные версии апплетов, которые расширяют функциональность веб-серверов подобно CGI-сценариям. Однако сервлеты обеспечивают более высокую производительность по сравнению с CGI и действительно являются платформенно-независимыми. Мастер сервлетов JBuilder Servlet Wizard оперирует сервлетами, которые обрабатывают вывод формы HTML, а также сервлетами, которые генерируют код HTML для внедрения в HTML-файл, его определивший. Поддерживает транзакции в распределенной среде EJB разработан для поддержки распределённых транзакций. В этом качестве для EJB необходимо решение, обеспечивающее полную двухфазную фиксацию транзакций для гарантии целостности данных при работе с несколькими базами данных. Реализация EJB должна гарантировать атомарность, непротиворечивость, изолированность и отказоустойчивость транзакций в распределенной среде. Используя службу транзакций на основе Java Transaction Service (JTS) - Java-технологию, связанную с CORBA Object Transaction Service, система выполнения компонентов EJB должна автоматически управлять запуском, фиксацией и откатом транзакций от имени компонентов EJB. Кроме того, ИТ необходима система выполнения компонентов, которая автоматически масштабируется для тысяч клиентов, обращающихся к тысячам объектов серверов, на серверах среднего звена. Система выполнения компонентов должна бесшовно интегрировать обновления в различных неоднородных источниках данных в пределах протокола контроля двухфазной фиксации транзакций. Borland VisiBroker Integrated Transaction Service (ITS), первая JTS- реализация CORBA Transaction Service, которая координирует двухфазную фиксацию для EJB-компонентов и гарантирует атомарность, непротиворечивость, изолированность и отказоустойчивость всех транзакций. Если хотя бы один ресурс (база данных или что-то другое) вовлечен в транзакцию, ITS выполняет протокол контроля однофазной фиксации. Это означает, что для ITS не обязательна запись на диск, тем самым повышается производительность. Кроме того, VisiBroker ITS обеспечивает взаимодействие с мейнфреймами и популярными базами данных из EJB (и CORBA) приложений. VisiBroker ITS обеспечивает бесшовный доступ к множеству источников данных, поддерживая как XA, так и не-XA среды. К данным из существующих систем (таких как TP Monitor и программы обмена сообщениями) можно обращаться через VisiBroker ITS, обеспечивая необходимое взаимодействие по всему предприятию. Рисунок 4 демонстрирует, как ITS координирует транзакцию, которая включает два ресурса - запасы и счета, хранимые в двух различных типах систем (база данных и TP-монитор). Рис. 4. VisiBroker ITS координирует транзакции, вовлекающие несколько ресурсов, включая базы данных и TP-мониторы. Обеспечивает доступ к корпоративным данным на основе широко используемых стандартов Любое EJB-решение должно интегрироваться с источниками данных организации. Решение, которое использует доступ к базам данных на основе промышленного стандарта взаимодействия, позволяет предприятиям воспользоваться преимуществами новых технологий - а не быть запертыми в рамках собственных частных решений. Inprise's EJB-реализация использует промышленный стандарт сетевого взаимодействия между Java и разнообразными типами баз данных(JDBC) для предоставления доступа к корпоративным базам данных. Для транзакционных EJB-приложений, VisiBroker ITS обеспечивает доступ к популярным базам данных, мейнфреймам и ПО обмена сообщениями. Позволяет взаимодействовать с многочисленными клиентами Компоненты сервера среднего звена (сервера приложения) полезны, только если клиенты могут обращаться к ним для обслуживания запросов. Бурный рост Internet привел к появлению разнообразного клиентского программного обеспечения для распределенных приложений. ИТ-отделам необходима реализация EJB, которая обеспечивает взаимодействие со всеми этими разнообразными клиентами:
Inprise's EJB реализация поддерживает множество клиентов, включая HTML или динамических HTML клиентов, Java апплеты, выполняемые в браузере, автономные Java-приложения и не Java-клиенты (подобно C++ или COM-клиентам). Рис. 5. Взаимодействие с различными типами клиентов. Обеспечивает необходимую безопасность для корпоративных данных Предприятиям необходимо надежное решение, которое обеспечивает конфиденциальность, целостность и аутентификацию. В то время как EJB определяет API безопасности (включая существующую безопасность API языка программирования Java, определенную в основном пакете java.security, и безопасность, относящуюся к методам - в интерфейсе javax.ejb.EJBContext), это не дает преимуществ какой-либо определенной технологии безопасности. Это означает, что компонентная система выполнения свободна в выборе технологии безопасности, которую она будет использовать. ИТ-специалистам необходимо EJB-решение, которое обеспечивает безопасную коммуникацию между компонентами распределенного приложения, защиту от случайного или злоумышленного повреждения данных, шифрование данных для конфиденциальности и аутентификацию клиентов и серверов. Кроме того, это решение должно масштабироваться для покрытия потребностей клиентов и должно быть применимо к Internet и корпоративным intranet. За счет применения VisiBroker ORB, Borland обеспечивает решение, с самого начала созданное для полного использования ресурсов Интернет и Web, в то же время, обеспечивающее безопасный, надежный метод выполнения транзакций в распределенной среде. Эта модель безопасности основана на криптографии с открытым ключом (сертификат X509) и протоколе защищенных сокетов (SSL) поверх IIOP. Эта модель безопасности гарантирует аутентификацию и кодирование, одновременно обеспечивая необходимый уровень масштабирования. Обеспечивает необходимый уровень масштабирования Распределенные транзакционные объектные приложения должны быть хорошо масштабируемы. По крайней мере тысячам клиентов должен быть обеспечен быстрый и надежный доступ к тысячам объектов сервера среднего звена, и произведенные изменения в данных должны быть точно и эффективно зарегистрированы, не вызывая снижения производительности работы базы данных. Информационным технологиям необходима система выполнения компонентов, которая поддерживает эти требования, и в то же время эффективно использует ресурсы; например, посредством повторного использования или мультиплексирования связей, или организации пула и разделения потоков, или активации объектов только в случае реальной необходимости. VisiBroker ORB предлагает необходимую функциональность для масштабируемых EJB-приложений посредством многопоточности, организации связного пула, балансировки загрузки и отказоустойчивости. VisiBroker ORB также повышает производительность, выбирая оптимальный механизм транспортировки, когда клиенты связывается с серверными объектами и гарантирует, что редко используемые объекты активизируются только когда необходимо использование динамической активизации объекта. Все эти функции обеспечивают необходимую для промышленных приложений масштабируемость. Кроме того, VisiBroker ITS улучшает масштабируемость для EJB-приложений, используя организацию связного пула баз данных. ITS мультиплексирует связи с базами данных, а не открывает новые связи с базами данных для каждого запроса. Это сохраняет системные ресурсы и улучшает масштабируемость. Предлагает высокую готовность для EJB-приложений Высокая готовность для всех аспектов распределенной вычислительной системы является требованием корпоративных приложений. Когда происходит сбой в серверном процессе, его клиенты должны быть способны продолжить работу либо используя тот же экземпляр (после перезагрузки), либо посредством связывания с другим работающим экземпляром. Подобно этому, агенты системы выполнения компонентов должны быть одинаково надежны, чтобы даже в случае сбоя, корпоративные приложения продолжали оставаться фактически незатронутыми. Информационным технологиям необходима система выполнения компонентов, которая выполняет эти требования динамически и автоматически. Одно из основных средств VisiBroker ORB - его Smart Agent--обеспечивает свободную в конфигурации самовосстанавливающуюся систему, которая может динамически обеспечивать отказоустойчивость серверов EJB и балансировать загрузку между копиями этих серверов. Используя репликацию и распределение, VisiBroker ORB исключает образование любых узких мест или одиночных сбоев, и поддерживает высокую работоспособность для возможности предоставления надежного доступа к критически важным бизнес-операциям. EJB требует Application ServerEJB это просто спецификация архитектуры. Как уже говорилось, она зависит от системы выполнения компонент, что делает правильные решения реализации для промышленно распределенных приложений. Эта так называемая "система выполнения компонент", в действительности является сервером приложений. Так же как реляционные базы данных являются реализацией реляционной модели, так и сервер приложений является реализацией модели EJB. Сервер приложений - такой как Borland Application Server - это правильная реализация для использования преимуществ Enterprise JavaBeans. Он обеспечивает каркас, необходимый для разработки и развертывания многократно используемых бизнес-объектов среднего звена. Сервер приложений CORBA гарантирует надежную взаимосвязь между этими среднезвенными объектами сервера и остальной частью предприятия. Построенный на инфраструктуре CORBA, Borland Application Server предлагает наилучший Java IDE (JBuilder), что позволяет создавать Session и Entity-компоненты и затем легко создавать Java приложения на стороне сервера. Borland Application Server гарантирует связь с этими серверными Java приложениями с помощью целого ряда клиентских технологий, включая HTML или динамический HTML, запускающиеся в броузере Java апплеты, независимые Java приложения, а также не Java клиенты (такие как C++ или COM-клиенты). Предоставляются средства мониторинга и управления, позволяющие централизованно управлять этими распространенными EJB приложениями. Borland Application Server подерживает транзакционные EJB приложения с первой JTS-согласованной реализацией спецификации CORBAservices Transaction Service - VisiBroker ITS. VisiBroker ORB гарантирует безопасность с помощью модели, основанной на криптографии с открытым ключом (сертификат X509), и Secure Socket Layer (SSL) над IIOP. VisiBroker Naming и Event Services - первой Java реализации этих спецификаций CORBAservices- предусматривает возможности для именования и управления объектами, и взаимодействия событий помещения/извлечения данных. VisiBroker ORB и VisiBroker ITS гарантируют расширяемость промышленного уровня и высокую отказоустойчивость. Таким образом, Borland Application Server использует IIOP - наиболее предпочтительный протокол для Интернет и внутренних сетей (как реализовано в VisiBroker ORB для Java), первая Java реализация CORBA ORB. IIOP реализация Borland - это индустриальный стандарт, де-факто используемый такими лидерами, как Oracle, Silicon Graphics и Netscape. Разработанный лидером в области промышленного класса Java и CORBA решений, Borland Application Server обеспечивает правильные решения реализации для сервера приложений - позволяя создавать промышленно-распределенные приложения, построенные на спецификации EJB. Borland предлагает уникальный портфель решений для построения промышленного класса распределенных приложений, производительность и мультиплатформенность которых обеспечиваются спецификацией Enterprise JavaBeans. Borland различными способами поддерживает EJB:
Возникновение EJB обозначило начало перехода к многозвенным серверам приложений, базирующимся на распределенной объектной обработке. С развитием этого перехода целью Borland стало обеспечение пользователей встроенной средой разработки, которая сводит создание распределенных, средне-звенных серверных обьектов до операций уровня "point-and-click". Делая это, Borland Application Server в стадии разработки позволяет собирать приложения из многократно используемых логических бизнес-компонент. С Borland Application Server отделы IT смогут разрабатывать промышленные приложения и, благодаря этому, смогут быстро реагировать на изменения требований рынка. Распределенные объктные продукты Borland включают VisiBroker для Java и VisiBroker для C++, VisiBroker ITS и JBuilder. |