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

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

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

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

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

Текст из PDF

Технологии программирования. Компонентный подходВ. В. КуляминЛекция 15. Развитие компонентных технологийАннотацияРассказывается о некоторых компонентных средах и технологиях, обрисовывающих направлениядальнейшего развития стандартных платформ разработки Web-приложений. Такжерассматриваются Web-службы, представляющие собой компонентную технологию другогоуровня.Ключевые словаStruts, JSF, объектно-реляционный преобразователь, Hibernate, JDO, аспектно-ориентированноепрограммирование, Spring, Web-службы, SOA, WSDL, SOAP, UDDI.Текст лекцииПрограммисты, которые долгое время работают с технологиями разработки Web-приложений,представленными в последних двух лекциях, отмечают ряд неудобств, связанных с разработкойотдельных компонентов, построением приложения в целом и настройкой отдельных аспектов егоработы. В данной лекции рассказывается о развитии компонентных технологий разработки Webприложений, нацеленном на повышение их гибкости, удобства их создания и поддержки, а такжена снижение трудоемкости внесения изменений в приложения такого рода.В ряде аспектов разработка отдельных компонентов в рамках .NET несколько проще, темразработка компонентов с той же функциональностью в рамках J2EE версии 1.4.

В то же времяразработка приложений в целом в рамках J2EE проще для начинающих разработчиков, посколькуимеющаяся по этой платформе документация четче определяет общую структуру приложений ираспределение ответственности между разными типами компонентов в нем.Большим достоинством J2EE является прозрачность и предсказуемость ее развития, посколькувсе его шаги открыты в рамках четко определенного процесса компании Sun для внесенияизменений в спецификации платформы и на каждом из этих шагов учитываются интересымножества участников. Развитие платформы J2EE определяется большим количеством открытыхпроектов отдельных разработчиков и организаций, предлагающих свои решения по построениюсред функционирования Web-приложений (Web application frameworks).Развитие же платформы .NET находится целиком в руках компании Microsoft и пока неявляется прозрачным для тех, кто не работает в ней или в одной из близких к ней компанийпартнеров.

На основании выступлений отдельных представителей компании можно делатьвыводы, касающиеся лишь общих планов развития платформы, без каких-либо техническихдеталей. Поэтому в данной лекции рассматриваются, в основном, направления развитиятехнологий J2EE.Развитие технологий J2EEРяд разработчиков выделяет следующие проблемы удобства разработки и поддержкиприложений J2EE версии 1.4.• Громоздкость разработки компонентов EJB и неудобство их использования для описанияструктуры предметной области.Для разработки простейшего такого компонента необходимо определить два интерфейса,класс компонента и написать дескриптор развертывания.Полученные классы и интерфейсы достаточно сильно отличаются от обычных классов Java,с помощью которых разработчики описывали бы предметную область в рамках обычногоприложения на платформе J2SE.

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

Однако для обеспечения правильнойсинхронизации данных в каждом из этих случаев достаточно много кода надо написатьвручную. Поскольку во многих приложениях объектные модели данных содержат классы,связанные отношением наследования, отсутствие вспомогательных механизмов,автоматически обеспечивающих отображение таких классов на структуру базы данных,приносит много неудобств.• Невозможность использовать в рамках приложения компоненты EJB, соответствующиеданным в базе данных, и временные объекты того же типа, для которых не нужно иметьсоответствующих записей в таблицах баз данных.Часто такая возможность оказывается удобной при программировании различных методовобработки данных внутри приложений.• Громоздкость разработки сервлетов для обработки простых (тем более, сложных) запросовпользователя.При этом необходимо полностью проанализировать запрос, часто — найти в содержащемсяв нем документе HTML поля формы, заполненной пользователем, и указанную имоперацию их обработки.

Только после этого можно переходить к собственно выполнениюэтого запроса, что, казалось бы, является основной функцией сервлета. Таким образом,большое количество усилий тратится только на то, чтобы выделить из запроса операцию,которую пользователь хочет произвести, а также ее аргументы.• Неудобство использования в рамках JSP-страниц специализированных элементовпользовательского интерфейса. Для сравнения: в рамках ASP.NET можно использоватьбиблиотечные и пользовательские элементы управления, которые помещаются на страницупри помощи специального тега, а в параметрах этого тега указываются, в частности,методы для обработки событий, связанных с действиями пользователя.Для решения этих проблем используются различные библиотеки, инструменты икомпонентные среды, созданные в сообществе Java-разработчиков.

Некоторые такие библиотеки итехники станут стандартными средствами в рамках платформы J2EE новой версии 5.0 [1].Jakarta StrutsСреда Jakarta Struts [2,3] создавалась затем, чтобы упростить разработку компонентов Webприложения, предназначенных для обработки запросов пользователей, и сделать эту обработкуболее гибкой.Основные решаемые такими компонентами задачи можно сформулировать следующимобразом:• выделить сам логический запрос и его параметры из HTML документа, содержащегося вHTTP-запросе;• проверить корректность параметров запроса и сообщить пользователю об обнаруженнойнекорректности наиболее информативным образом;• преобразовать корректный логический запрос и его параметры в вызовы соответствующихопераций над объектами предметной области;• передать результаты сделанных вызовов компонентам, ответственным за построение ихпредставления для пользователя.Как и в рамках базовой платформы J2EE, в Struts основным архитектурным стилем для Webприложений является образец «данные-представление-обработка».

При этом роль представленияиграют JSP-страницы, а роль обработчиков — сервлеты. Основные отличия Struts от стандартнойтехники J2EE связаны с большей специализацией сервлетов и некоторой стандартизацией обменаданными между сервлетом, обрабатывающим запросы пользователя, и JSP-страницей,представляющей их результаты.Клиент —Web-браузерHTMLстраницыWeb-серверHTTPWeb-контейнерActionServlet иRequestProcessorДействияJSPДействияДействиеДействияФормадействияКомпонентымоделиданныхХранилищеданных(СУБД)База данныхРисунок 79. Общая схема архитектуры Web-приложений на основе Struts.В рамках приложения на основе Struts используется ровно один стандартизированный сервлет(ActionServlet), анализирующий запросы пользователя и выделяющий из каждого запросадействие (action), которое пользователь пытается выполнить.

Для Интернет-магазина такимдействиями, например, могут быть аутентификация (предоставление своего имени и пароля),получение данных о товаре, поиск товара, добавление товара к уже заказанным, изменение заказа,предоставление прав на скидку, выполнение заказа, получение статуса выполнения заказа, отменазаказа и пр. Для каждого действия создается отдельный класс действия. Такой класс должен бытьнаследником класса org.apache.struts.action.Action из библиотеки Struts и перегружать методActionForward execute(ActionMapping, ActionForm, HttpServletRequest,HttpServletResponse) — именно он и вызывается для выполнения этого действия.Один из параметров метода execute() в классе действия имеет тип формы действияorg.apache.struts.action.ActionForm.

Для каждого действия определяется свой класс формыдействия, наследующий классу ActionForm. Объекты этого класса используются для передачипараметров действия — наиболее существенных данных запросов, описывающих данноедействие.В методе execute() класса действия обычно строятся или находятся компоненты бизнеслогики приложения, которые реализуют операции, соответствующие данному действию, а затемэти операции выполняются со значениями полей объекта формы действия в качестве аргументов.Привязка запросов к действиям описывается в дополнительном конфигурационном файлеstruts-config.xml в формате XML, в теге action-mappings. Одно действие описывается с помощьювложенного тега action, который имеет следующие атрибуты.•pathОпределяет шаблон URI, обращения к которым будут интерпретироваться как выполнениеданного действия.•typeОпределяет имя класса данного действия.•nameЗадает уникальное имя для данного действия.Привязка действий к определенным для них формам происходит с помощью тегов from-bean,вложенных в тег form-beans.

Каждый тег form-bean имеет атрибут name, указывающий имядействия для данной формы, и type, указывающий имя класса формы действия. Кроме того, такойтег может содержать вложенные теги form-property, описывающие свойства формы (в смыслеJavaBeans) при помощи таких же атрибутов name (имя свойства) и type (тип свойства).Помимо описанного механизма декомпозиции обработки запросов, среда Struts включаетбиблиотеки классов Java, в том числе, классов часто встречающихся действий, и библиотекипользовательских тегов, предназначенных для более удобного описания размещенных на JSPстраницах элементов HTML-форм.Java Server FacesJava Server Faces (JSF) [4,5] включают библиотеку элементов управления WebUI javax.faces идве библиотеки пользовательских тегов, предназначенных для использования этих элементовуправления в рамках серверных страниц Java.

C помощью тегов библиотеки jsf/html элементыуправления размещаются на странице, а с помощью тегов из jsf/core описывается обработкасобытий, связанных с этими элементами, и проверка корректности действий пользователя.В аспекте построения WebUI на основе серверных страниц Java технология Java Server Facesявляется развитием подхода Struts (Struts включают решения и для других аспектов разработкиприложений), предлагая более богатые библиотеки элементов WebUI и более гибкую модельуправления ими. Эта модель включает следующие элементы.• Возможность различного изображения абстрактного элемента управления (например,элемент управления «выбор одного из многих» может быть изображен как группа радиокнопок, комбо-бокс или список).• Возможность изменения визуальных стилей элементов управления.• Возможность привязки изображаемых элементом управления значений к свойствамкомпонентов модели данных.• Возможность привязки элементов управления к методам проверки корректности значений,устанавливаемых в них пользователем.В дополнение к библиотекам элементов WebUI JSF предлагает определять правила навигациимежду страницами в конфигурационном файле приложения.

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