Lecture14 (Лекции по Технологии программирования. Компонентный подход)

PDF-файл Lecture14 (Лекции по Технологии программирования. Компонентный подход) Основы программной инженерии (40588): Лекции - 6 семестрLecture14 (Лекции по Технологии программирования. Компонентный подход) - PDF (40588) - СтудИзба2019-05-12СтудИзба

Описание файла

Файл "Lecture14" внутри архива находится в папке "Лекции по Технологии программирования. Компонентный подход". PDF-файл из архива "Лекции по Технологии программирования. Компонентный подход", который расположен в категории "". Всё это находится в предмете "основы программной инженерии" из 6 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Технологии программирования. Компонентный подходВ. В. КуляминЛекция 14. Разработка различных уровней Web-приложений в J2EE и.NETАннотацияРассматриваются используемые в рамках Java Enterprise Edition и .NET техники разработкикомпонентов Web-приложений, связывающих приложение с базой данных и представляющихсобой элементы пользовательского интерфейса.Ключевые словаКомпонент EJB, компонент данных, сеансовый компонент, компонент, управляемыйсообщениями, протокол HTTP, сервлет Java, серверная страница Java (JSP), Web-форма .NET.Текст лекцииОбщая архитектура Web-приложенийВ данной лекции мы рассмотрим техники разработки компонентов Web-приложений на основеплатформ J2EE и .NET.

Общая архитектура такого приложения может быть представлена схемой,изображенной на Рис. 74. Обе платформы предоставляют специальную поддержку для разработкикомпонентов на двух уровнях: уровне интерфейса пользователя (WebUI) и уровне связи сданными.Клиент —Web-браузерHTMLстраницыWeb-серверHTTPКомпонентыWebUIКомпонентымоделиданныхХранилищеданных(СУБД)База данныхРисунок 74. Общая схема архитектуры Web-приложений J2EE и .NET.Пользовательский интерфейс Web-приложений основан на генерации динамических страницHTML, содержащих данные, которые запрашивает пользователь. Уровень модели данныхпредоставляет приложению возможность работать с данными, обычно хранящимися в виде наборатаблиц и связей между ними, как с набором связанных объектов.Основные отличия между техниками разработки компонентов этих двух уровней,используемыми в рамках J2EE и .NET, можно сформулировать следующим образом.• В J2EE компоненты EJB предназначены не только для представления данных приложения ввиде объектов, но и для реализации его бизнес-логики, т.е.

объектов предметной области иосновных способов работы с ними.В .NET нет специально выделенного вида компонентов, предназначенного для реализациибизнес-логики — она может реализовываться с помощью обычных классов, что частоудобнее. Это положение должно измениться с выходом EJB 3.0.• EJB компоненты являются согласованным с объектно-ориентированным подходомпредставлением данных приложения.

Работа с ними организуется так же, как с объектамиобычных классов (с точностью до некоторых деталей).В .NET-приложениях все предлагаемые способы представления данных являютсяобъектными обертками вокруг реляционного представления — в любом случае приходитсяработать с данными как с набором таблиц. В .NET нет автоматической поддержки ихпреобразования в систему взаимосвязанных объектов и обратно.Уровень бизнес-логики и модели данных в J2EEВ рамках приложений, построенных по технологии J2EE связь с базой данных и бизнес-логику,скрытую от пользователя, принято реализовывать с помощью компонентов Enterprise JavaBeans.На момент написания этой лекции последней версией технологии EJB является версия 2.1, впервой половине 2006 года должны появиться инструменты для работы с EJB 3.0 (в рамках J2EE5.0).Возможны и другие способы реализации этих функций.

Например, бизнес-логика может бытьреализована непосредственно в методах объектов пользовательского интерфейса, а обменданными с базой данных — через интерфейс JDBC. При этом, однако, теряется возможностьпереиспользования функций бизнес-логики в разных приложениях на основе единой базы данных,а также становится невозможным использование автоматических транзакций при работе сданными. Транзакции в этом случае нужно организовывать с помощью явных обращений к JTA(см.

предыдущую лекцию).Компонент Enterprise JavaBeans (EJB) является компонентом, представляющим в J2EEприложении элемент данных или внутренней, невидимой для пользователя логики приложения.Для компонентов EJB определен жизненный цикл в рамках рабочего процесса приложения —набор состояний, через которые проходит один экземпляр такого компонента. Компоненты EJBработают внутри EJB-контейнера, являющегося для них компонентной средой.

Функции EJBконтейнера следующие.• Управление набором имеющихся EJB-компонентов, например, поддержкой пулакомпонентов для обеспечения большей производительности, а также жизненным цикломкаждого отдельного компонента, в частности, его инициализацией и уничтожением.• Передача вызовов между EJB-компонентами, а также их удаленных вызовов. НесколькоEJB-контейнеров, работающих на разных машинах, обеспечивают взаимодействие наборовкомпонентов, управляемых каждым из них.• Поддержка параллельной обработки запросов.• Поддержка связи между EJB-компонентами и базой данных приложения и синхронизацияих данных.• Поддержка целостности данных приложения с помощью механизма транзакций.• Защита приложения с помощью механизма ролей: передача прав ролей при вызовах междукомпонентами и проверка допустимости обращения в рамках роли к методам компонентов.Для разработки набора компонентов EJB нужно, во-первых, для каждого компонента создатьодин или несколько классов и интерфейсов Java, обеспечивающих реализацию самойфункциональности компонента и определение интерфейсов для удаленных обращений к нему, и,во-вторых, написать дескриптор развертывания — XML-файл, описывающий следующее.• Набор EJB-компонентов приложения.• Совокупность элементов кода на Java, образующих один компонент.• Связь свойств компонента с полями таблиц БД и связями между таблицами.• Набор ролей, правила доступа различных ролей к методам компонентов, правила передачиролей при вызовах одними компонентами других.• Политику компонентов и их методов по отношению к транзакциям.• Набор ресурсов, которыми компоненты могут пользоваться в своей работе.Правила создания EJB компонента зависят от его вида.

Различают три таких вида EJBкомпонентов.•Компоненты данных (сущностные, entity beans).Представляют данные приложения и основные методы работы с ними.• Сеансовые компоненты (session beans).Представляют независимую от пользовательского интерфейса и конкретных типов данныхлогику работы приложения, называемую иногда бизнес-логикой.• Компоненты, управляемые сообщениями (message driven beans).Тоже предназначены тоже для реализации бизнес-логики. Но, если сеансовые компонентыпредоставляют интерфейс для синхронных вызовов, компоненты, управляемыесообщениями, предоставляют асинхронный интерфейс.

Клиент, вызывающий метод всеансовом компоненте, ждет, пока вызванный компонент не завершит свою работу.Компоненту же, управляемому сообщениями, можно отослать сообщение и продолжатьработу сразу после окончания его передачи, не дожидаясь окончания его обработки.Далее описываются основные правила построения EJB компонентов разных видов. Болеедетальное описание этих правил можно найти в [1,2].Компоненты данных и сеансовые компонентыКомпонент данных или сеансовый компонент могут состоять из следующих элементов: параинтерфейсов для работы с самим компонентом — удаленный интерфейс и локальный интерфейс;пара интерфейсов для поиска и создания компонентов — удаленный исходный интерфейс илокальный исходный интерфейс; класс компонента, реализующий методы работы с ним; и, длякомпонентов данных, — класс первичного ключа.

Обязательно должен быть декларирован класскомпонента и один из интерфейсов — удаленный или локальный. Для компонентов данныхобязательно должен быть определен класс первичного ключа.• Удаленный интерфейс (remote interface).Этот интерфейс декларирует методы компонента, к которым можно обращаться удаленно,т.е.

из компонентов, работающих в рамках другого процесса или на другой машине.Удаленный интерфейс должен наследовать интерфейс javax.ejb.EJBObject (в своюочередь, наследующий java.rmi.Remote).Для компонента данных он определяет набор свойств (в смысле JavaBeans, т.е. пар методовType getName()/void setName(Type)), служащих для работы с отдельными полямиданных или компонентами, связанными с этим компонентом по ссылкам. Это могут быть ичасто используемые дополнительные операции, как-то выражающиеся через операции сотдельными полями данных, в том числе и вычислимые свойства. Например, для книги вбазе данных приложения хранится набор ссылок на данные об ее авторах, а число авторовможет быть часто используемым свойством книги, вычисляемым по этому набору ссылок.Для сеансового компонента методы удаленного интерфейса служат для реализациинекоторых операций бизнес-логики или предметной области, вовлекающих несколькокомпонентов данных.• Локальный интерфейс (local interface).По назначению этот интерфейс полностью аналогичен удаленному, но декларирует методыкомпонента, которые можно вызывать только в рамках того же процесса.

Этот интерфейсслужит для увеличения производительности приложений, в которых взаимодействия междукомпонентами происходят в основном в рамках одного процесса. При этом они могутиспользовать локальные интерфейсы друг друга, не привлекая сложный механизмреализации удаленных вызовов методов. Однако, при использовании локального интерфейскомпонента нужно обеспечить развертывание этого компонента в рамках того же EJBконтейнера, что и вызывающий его компонент.Локальный интерфейс должен наследовать интерфейсу javax.ejb.EJBLocalObject.• Удаленный исходный интерфейс (remote home interface).Исходные интерфейсы служат для поиска и создания компонентов. Такой интерфейс может••декларировать метод поиска компонента данных по значению его первичного ключаfindByPrimaryKey(…) и метод создания такого компонента с указанным значениемпервичного ключа create(…).

Могут быть также определены методы, создающиекомпонент по набору его данных или возвращающие коллекцию компонентов, данныекоторых соответствуют аргументам такого метода. Например, метод, создающийкомпонент, который представляет книгу с данным названием, createByTitle(Stringtitle), или метод, находящий все книги с данным набором авторов CollectionfindByAuthors(Collection authors).Удаленный исходный интерфейс предназначен для создания и поиска компонентов извнетого процесса, в котором они работают. Его методы возвращают ссылку на удаленныйинтерфейс компонента или коллекцию таких ссылок.Такой интерфейс должен наследовать интерфейсу javax.ejb.EJBHome (являющемусянаследником java.rmi.Remote).Локальный исходный интерфейс (local home interface).Имеет то же общее назначение, что и удаленный исходный интерфейс, но служит дляработы с компонентами в рамках одного процесса.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5231
Авторов
на СтудИзбе
424
Средний доход
с одного платного файла
Обучение Подробнее