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

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

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

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

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

Текст 4 страницы из PDF

Задает имя отношения.ƒ <ejb-relationship-role>Обязательно два. Описывает одну роль в рамах отношения. В описании ролидолжны присутствовать следующие данные.− Имя роли — во вложенном теге <ejb-relationship-role-name>.− Множественность — сколько экземпляров компонента могут играть такую рольв раках данного отношения с одним экземпляром в другой роли.

Описывается втеге <multiplicity> и может иметь значения One или Many.− Имя компонента, экземпляры которого играют данную роль в этом отношении.Определяется в теге <relationship-role-source> внутри тега <ejb-name> ввиде имени, которое присвоено компоненту в рамках данного дескриптора.− Имя поля, которое хранит ссылку или коллекцию ссылок, поддерживающие этоотношение в рамках экземпляра компонента. Определяется в теге <cmr-field>,во вложенном теге <cmr-field-name>, и для него в классе компонента должнобыть определено абстрактное свойство с тем же именем.•<assembly-descriptor>Этот обязательный тег внутри <ejb-jar> содержит дополнительные указания для сборкикомпонентов, в частности следующие.o <container-transaction>Один или более, необязателен.Содержит необязательный элемент <description>, а также приведенные ниже.Для компонента данных должно быть по одному такому элементу на каждый методудаленного интерфейсов.

Сеансовые компоненты, транзакциями которых управляетEJB-контейнер, также должны подчиняться этому правилу.ƒ <method>Один или более.Содержит тег <ejb-name>, указывающий имя компонента, и <method-name>,указывающий имя метода или знак *, который обозначает применение указанногоатрибута ко всем методам.Может также включать элементы <description>, <method-params> и <methodintf>, который может иметь значения Remote, Home, Local, Local-Home, взависимости от того, в каком интерфейсе этот метод декларирован — для поддержкивозможности декларировать методы с одним именем и набором параметром вразных интерфейсах.ƒ <trans-attribute>Ровно один.Определяет атрибут транзакции, управляющий политикой включения в транзакцииили создания новых транзакций.Для компонентов данных атрибуты транзакции должны быть определены для всехметодов удаленного интерфейса и методов, декларированных в исходноминтерфейсе, для сеансовых компонентов — для всех методов удаленногоинтерфейса.Может иметь значения NotSupported, Supports, Required, RequiresNew, Mandatory,Never.

Об их смысле рассказывалось в предыдущей лекции.o <security-role>Один или более, необязателен.Определяет роли, служащие для контроля доступа к методам компонентов. В такомэлементе должен содержаться тег <role-name>, задающий имя роли.o <method-permission>Один или более, необязателен.Указывает правила доступа ролей, определенных в тегах <security-role>, к методамкомпонентов.Содержит необязательный тег <description>, один или несколько тегов <role-name> иодин или несколько тегов <method> (см. выше), кроме того, в нем может присутствоватьтег <unchecked/>, который обозначает отсутствие проверки прав доступа во времяработы, даже если они описаны.Каждый тег <method> содержит тег <ejb-name>, указывающий имя компонента, и<method-name>, указывающий имя метода или знак *, который обозначает применениеуказанного атрибута ко всем методам.o <exclude-list>Необязателен.Содержит один или несколько тегов <method> (см.

выше), определяющих методы,которые не должны вызываться при работе приложения. Каждый вызов такого методасоздает исключительную ситуацию.Уровень модели данных в .NETВ среде .NET нет средств, полностью аналогичных тем, которые предоставляются в J2EE дляразработки компонентов EJB. Уровень бизнес-логики в .NET-приложениях предлагаетсяреализовывать с помощью обычных классов, что значительно проще, чем реализовыватьспециальные наборы классов и интерфейсов для компонентов EJB. С другой стороны, связь сбазой данных в .NET не реализуется в виде аналогичного EJB объектного интерфейса, если,конечно, не разрабатывать его целиком самостоятельно (или с использованием библиотеккомпонентов от третьих партий).

Вместо этого предлагается для связи с базой данныхиспользовать набор компонентов ADO.NET [4], представляющих собой объектные оберткиреляционной структуры данных.Классы ADO.NET располагаются в сборке System.Data (дополнительные классы можно найти вSystem.Data.OracleClient и System.Data.SqlXml) и пространстве имен System.Data, вместе свложенными в него пространствами.Основным классом, с помощью которого представляются данные из базы данных, являетсяSystem.Data.DataSet.

Он представляет набор таблиц, связанных между собой некоторымисвязями и выполняющими определенные ограничения. Каждая таблица представляется объектомкласса System.Data.DataTable, каждая связь — объектом класса System.Data.Relation, каждоеограничение — объектом класса System.Data.Constraint. Структура таблиц описывается спомощью их полей (представляемых объектами System.Data.DataColumn). Содержимое однойтаблицы представлено как набор объектов-записей, имеющих тип System.Data.DataRow.Из перечисленных классов только DataSet и DataTable являются сериализуемыми, т.е.

толькоих объекты могут быть переданы в другой процесс или на другую машину.Объект класса DataSet может представлять собой и набор данных документа XML. Получитьтакой объект можно с помощью класса System.Xml.XmlDataDocument.Само взаимодействие с источником данных происходит с помощью объектов классовDataAdapter, DataReader, DbConnection, DbTransaction, DbCommand и производных от них,специфичных для того или иного вида источников данных (в рамках поставляемых в составесреды Visual Studio .NET библиотек имеются специфичные классы для работы с источникамиODBC, OleDB, MS SQL Server, Oracle). Все перечисленные классы находятся в пространстве именSystem.Data.Common, а их производные для данного вида источников данных — всоответствующем этому виду источников подпространстве System.Data.Объекты классов DataAdapter и DataReader служат для чтения и записи данных в видеобъектов DataSet.

Остальные классы используются для определения соединений, организациитранзакций, определения и выполнения SQL-команд по чтению или изменению данных.Ниже приводится простой пример работы с данными с помощью библиотек ADO.NET.DbConnection connection = new SqlConnection("Data Source=localhost;" +"Integrated Security=SSPI;Initial Catalog=DBCatalog");DbCommand command = new SqlCommand("SELECT ID, Title, ISBN FROM Book",connection);DataAdapter adapter = new SqlDataAdapter();Adapter.SelectCommand = command;connection.Open();DataSet dataset = new DataSet();adapter.Fill(dataset, "Book");connection.Close();Протокол HTTPПрежде, чем перейти к построению интерфейса пользователя в Web-приложениях на основеJ2EE и .NET, стоит рассмотреть основные элементы протокола HTTP, используемого для передачиданных между серверами и клиентами в таких приложениях. Поскольку основнаяфункциональность компонентов интерфейса Web-приложений связана с обработкой и созданиемсообщений HTTP, знание элементов этого протокола необходимо для понимания технологийразработки приложений такого рода.HTTP (Hypertext Transfer Protocol, протокол передачи гипертекста) представляет собойпротокол прикладного уровня, использующий для пересылки данных протокол транспортногоуровня.

Достаточно подробное описание его можно найти в [5,6].Сообщения HTTP бывают двух видов: запросы клиента и ответы сервера.Запрос HTTP состоит из идентификации метода запроса, универсального идентификаторазапрашиваемого ресурса (Universal Resource Identifier, URI), указания версии протокола и,возможно, набора заголовков с дополнительной информацией, а также поля данных общего вида.<Request> ::= GET <URI> CrLf| <Method> <URI> <HTTP-Version> CrLf<Req-Header>* ( <Data> )?<Req-Header> ::= <Field> : <Value> CrLfCrLf::= '\r''\n'Основные методы протокола HTTP следующие.•GETСлужит для получения любой информации по URI запроса, обычно — документа,хранящегося по указанному адресу или генерируемого по запросу с таким URI. Можетиметь заголовок If-Modified-Since, который предписывает не посылать телозапрашиваемого ресурса, если он не изменялся с указанной даты.•POSTСлужит для создания нового ресурса, связанного с указанным по URI.

Чаще всегоиспользуется для аннотации ресурсов, добавления сообщений в группы новостей,дистанционной работы с базами данных. Реальная обработка такого запроса зависит отсодержащегося в нем URI.Остальные методы — HEAD, PUT, DELETE, LINK, UNLINK — используются гораздо реже.Заголовки запроса служат для передачи дополнительной информации об этом запросе или оклиенте. Заголовок состоит из идентификатора поля и его значения, разделенных двоеточием, ибывает одного из следующих типов.•FromСодержит e-mail адрес пользователя, под чьим именем работает клиент.Пример: From: webmaster@yandex.ru•Accept, Accept-Encoding, Accept-Charset и Accept-LanguageВ таком заголовке через запятую перечисляются возможные форматы (соответственно,кодировки, используемые таблицы символов и языки) ответов на данный запрос.Пример: Accept: text/plain, text/html, text/x-dvi; q=.8; mxb=100000; mxt=5.0•User-AgentСодержит название используемой клиентской программы.•RefererИспользуется для указания адреса ресурса, с которого был получен данный запрос.•If-Modified-SinceИспользуется для отмены ответной пересылки документов, модифицированных не позднееуказанной даты, с целью снижения нагрузки на сеть.•AuthorizationСодержит авторизационную информацию, специфичную для используемых серверомпротоколов авторизации.•ChargeToСодержит информацию о том, куда выставить счет за обработку запроса.•PragmaСодержит дополнительные директивы для промежуточных серверов, например, проксисерверов.Пример запроса.GET /locate?keywords=HTTP+description HTTP/1.1Date: Mon, 15 Dec 2004 12:18:15 GMTAccept: image/gif, image/jpg, */*Accept-Charset: iso-8859-1, *, utf-8Accept-Language: enConnection: keep-AliveUser-Agent: Mozilla/4.7 [en] (Win98; u)Группакодов1xx2xxКодФраза-объяснение,следующая за кодом200201OKCreated301302Moved PermanentlyMoved Temporarily400401403404Bad RequestUnauthorizedForbiddenNot Found500Internal Server Error3xx4xx5xxЗначение кодаИнформационное сообщениеУспешная обработкаВcе нормальноДокумент созданПеренаправление запросаРесурс перемещенРесурс перемещен временноОшибка клиентаНекорректно составленный запросНужна аутентификация клиентаДоступ к ресурсу запрещенЗапрашиваемый ресурс отсутствуетОшибка сервераВнутренняя ошибка сервераТаблица 12.

Некоторые коды статуса ответа HTTP и их объяснение.Ответ сервера на HTTP-запрос состоит либо только из запрашиваемого клиентом документа,либо в дополнение к нему содержит код статуса ответа и, возможно, несколько заголовков ответа.<Response>::= ( <Content> )?| <HTTP-Version> <Code> <Explanation> CrLf<Resp-Header>* ( <Content> )?<Resp-Header> ::= <Field> : <Value> CrLfCrLf::= '\r''\n'Некоторые коды статуса ответа поясняются в Таблице 12.Возможны следующие заголовки ответа.•AllowedПеречисляются через пробел доступные для пользователя методы запросов по данномуURI.•PublicПеречисляет доступные всем методы запросов.•Content-Length, Content-Type, Content-Encoding и Content-LanguageЗадают размер содержимого в байтах (подразумевается, что содержимое имеет бинарныйформат и не должно разбиваться на строки при чтении), его формат или MIME-тип,кодировку и язык.•DateДата создания содержащегося документа или объекта.•Last-ModifiedДата последнего изменения содержащегося объекта.•ExpiresДата, послед которой содержащийся объект считается устаревшим.•URIURI содержащегося объекта.•TitleЗаголовок содержащегося документа.•ServerОписывает серверную программу.•Retry-AfterОпределяет промежуток времени на обработку запроса, до прохождения которого не надонаправлять запрос повторно, если ответа на него еще нет.Пример HTTP-ответа.HTTP/1.0 200 OKContent-Length: 2109Content-Type: text/htmlExpires: 0Last-Modified: Thu, 08 Feb 2001 09:23:17 GMTServer: Apache/1.3.12<HTML> <HEAD> <TITLE> … </TITLE> </HEAD><BODY> …</BODY></HTML>Уровень пользовательского интерфейса в J2EEКомпоненты пользовательского интерфейса в Web-приложениях, построенных как потехнологии J2EE, так и по .NET, реализуют обработку HTTP-запросов, приходящих от браузера, ивыдают в качестве результатов HTTP-ответы, содержащие сгенерированные HTML-документы сзапрашиваемыми данными.

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