Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

- elements [ ] — массив, содержащий ссылки на все интерактивные элементы, ко­торые входят в состав формы. Ссылки располагаются в массиве в той последо­вательности, в которой они включаются в состав формы.

- elements. length — число элементов в массиве elements ().

- method — строка, определяющая метод передачи данных, введенных пользовате­лем, на сервер.

- action — URL программы на сервере, предназначенной для обработки запроса.

Методы

- reset () — устанавливает все интерактивные элементы в составе формы в ис­ходное состояние. Вызов данного метода производит те же действия, что и щелчок на кнопке Reset.

- submit () — передает на сервер данные, введенные пользователем. Вызов дан­ного метода производит те же действия, что и щелчок на кнопке Submit.

События

- onReset — соответствует щелчку пользователя на кнопке Reset. Данное событие не следует путать с событием onClick, связанным с интерактивным элементом. Событие onReset связано с формой и позволяет разработчику сценария управ­лять процессом сброса интерактивных элементов в исходное состояние.

- onSubmit — обработчик данного события вызывается по щелчку на кнопке Submit. Следует различать событие onSubmit, связанное с формой, и событие onClick, связанное с кнопкой Submit. Событие onSubmit позволяет разработчику сценария контролировать процесс передачи данных на сервер.

Объект Element

В состав формы могут быть включены интерактивные элементы различных типов. Им соответствуют объекты Text, Password, Checkbox, Textarea и т. д. Однако для удобст­ва работы с разными компонентами формы в JavaScript определен обобщенный объ­ект Element, описывающий различные интерактивные элементы.

НЕ нашли? Не то? Что вы ищете?

Свойства

- form — содержит ссылку на объект Form, описывающий форму, которой принад­лежит данный интерактивный элемент.

- name — имя интерактивного элемента.

- value — текущее значение, связанное с данным интерактивным элементом.

- type — тип объекта, который описывает данный интерактивный элемент (Text, Password, Checkbox, Textarea и т. д.).

С различными интерактивными элементами связываются различные типы собы­тий. Описание соответствующих объектов и связанных с ними событий вы найдете в изданиях, специально посвященных программированию на JavaScript.

Независимые объекты

Кроме объектов, связанных с HTML-документом, в JavaScript предусмотрены пре­допределенные, или независимые объекты. Прежде чем обращаться к подобному объ­екту, его надо создать посредством оператора new. Поэтому, кроме свойств и методов, для независимых объектов также определены конструкторы.

Объект Array

Несмотря на то что массивы переменных в JavaScript отсутствуют, массив можно ис­кусственно создать с помощью объекта Array. Размеры созданного массива автоматически изменяются в процессе работы сценария. Чтобы увеличить размер массива, достаточно указать при записи элемента значение индекса, превышающее текущий размер массива.

Конструкторы

- Array() — создает массив нулевой длины.

- Array(длина) — создает массив, содержащий указанное число элементов.

- Array (элемент_1, элемент_2 ... элемент_n) — создает массив и инициализи­рует его указанными элементами. Длина массива устанавливается равной числу записанных в него элементов.

Свойства

Единственным интересующим нам свойством объекта Array является свойство length, в котором содержится текущая длина массива.

Методы

- reverse () — изменяет порядок следования элементов массива на обратный.

- join(строка-разделитель) — преобразует элементы массива в строки, затем производит конкатенацию полученных строк, вставляя между ними раздели­тель, указанный в качестве параметра. Строка-разделитель может отсутствовать.

- sort() — сортирует элементы массива в лексикографическом порядке.

Объект String

Строковое значение, поддерживаемое в JavaScript, по сути представляет собой объ­ект типа String. В некоторых броузерах внутренние представления строки символов и объекта String различаются, но в случае необходимости преобразование типов проис­ходит автоматически.

Конструкторы

Для объекта String предусмотрен один конструктор. В качестве параметра ему пе­редается строка символов, которой инициализируется данный объект.

Свойства

При работе с объектом String нас интересует лишь свойство length, значением ко­торого является длина строки.

Методы

- charAT(номер_символа) — возвращает символ, находящийся в указанной пози­ции строки.

- indexOf (подстрока) — ищет в строке указанную подстроку и возвращает индекс первого символа подстроки. Если подстрока не найдена, возвращается значение —1.

• lastlndexOf( подстрока) — ищет указанную подстроку, начиная с конца строки и возвращает индекс первого символа подстроки. Если подстрока не найдена, возвращается значение —1.

- toLowerCase() — возвращает копию строки, в которой все символы преобразо­ваны в нижний регистр.

- toUpperCase() — возвращает копию строки, в которой все символы преобразо­ваны в верхний регистр.

Объект Date

Объект Date предназначен для описания даты и времени. Считается, что вновь соз­данный объект Date определяет местное время. При работе с данным объектом ис­пользуются следующие соглашения о значениях:

- год — представляется как текущий год минус 1900;

- месяц — число в пределах от 0 до 11;

- число (день месяца) — число в пределах от 1 до 31;

- день недели — число в пределах от 0 до 6; 0 соответствует воскресенью, а 6 — субботе;

- часы — число в пределах от 0 до 23;

- минуты — число в пределах от 0 до 59;

- секунды — число в пределах от 0 до 59.

Конструкторы

- Date() — создает объект Date, описывающий текущие дату и время.

- Date (год, месяц, число) — создает объект Date и инициализирует его указанным значением даты.

- Date(год, месяц, число, часы, минуты, секунды) — создает объект Date и инициа­лизирует его указанными значениями даты и времени.

Методы

getYear() — возвращает год (компонент объекта Date, соответствующий году).

getMonth() — возвращает месяц.

getDate() — возвращает число (день месяца).

getDay() — возвращает день недели.

getHours () — возвращает часы (компонент объекта Date, соответствующий количе­ству часов, прошедших с начала суток).

getMinutes() — возвращает минуты.

getSeconds() — возвращает секунды.

setYear(год) — устанавливает значение года, указанное в качестве параметра.

setMonth(месяц) — устанавливает месяц.

SetDate(число) — устанавливает число (день месяца).

setHours(часы) — устанавливает количество часов, указанное в качестве параметра.

setMinutes (минуты) — устанавливает количество минут.

setSeconds (секунды) — устанавливает количество секунд.

toGMTString() — преобразует значение объекта Date в строку, определяющую время по Гринвичу.

toLocaleString() — преобразует значение объекта Date в строку, определяющую ме­стное время.

Вопросы для самоконтроля:

1. Конструкции языка JavaScript.

2. Создание стандартных объектов JavaScript.

3. Теги языка JavaScript

4. Разработка объектов JavaScript

5. Использование объектов JavaScript

Тема 5.5 Формы в JavaScript

Студент должен:

иметь представление:

о назначении языка JavaScript.

знать:

- определение и назначение языка JavaScript.

- конструкции языка JavaScript.

- стандартные объекты, методы и функции JavaScript.

- стандартные операторы JavaScript.

уметь:

- использовать конструкции языка JavaScript.

- создавать стандартные объекты JavaScript.

- применять теги языка JavaScript

- разрабатывать формы, с использованием тегов JavaScript

- применять формы на практике

Методические указания

Формы широко используются в Интернет. Информация, введенная в форму, часто посылается обратно на сервер или отправляется по электронной почте на некоторый адрес. Проблема состоит в том, чтобы убедиться, что введенная пользователем в форму информация корректна. Легко проверить ее перед пересылкой в Интернет можно с помощью языка JavaScript.

Во-первых, необходимо создать простой скрипт. Допустим, HTML-страница содержит два элемента для ввода текста. В первый из них пользователь должен вписать свое имя, во второй элемент - адрес для электронной почты. Если пользователь ввел свое имя (например, 'Stefan') в первый элемент, то скрипт создает выпадающее окно с сообщением ‘Hi Stefan!’.

Что касается информации, введенной в первый элемент, то будем получать сообщение об ошибке, если туда ничего не было введено. Любая представленная в элементе информация будет рассматриваться на предмет корректности. Это не гарантирует, что пользователь введет не то имя. Браузер даже не будет возражать против чисел. Например, если Вы ввведете '17', то получите приглашение 'Hi 17!'. Так что эта проверка не может быть идеальна. Второй элемент формы несколько более сложнее. Попробуйте ввести простую строку - например Ваше имя. Сделать это не удастся до тех пор, пока Вы не укажите @ в Вашем имени... Признаком того, что пользователь правильно ввел адрес электронной почты служит наличие символа @. Этому условию будет отвечать и одиночный символ @, даже несмотря на то, что это бессмысленно. В Интернет каждый адрес электронной почты содержит символ @, так что проверка на этот символ здесь уместна.

Предоставление информации, введенной в форму

Какие существуют возможности для передачи информации, внесенной в форму? Самый простой способ состоит в передаче данных формы по электронной почте (этот метод рассмотрим поподробнее). Если необходимо, чтобы за вносимыми в форму данными следил сервер, то нужно использовать интерфейс CGI (Common Gateway Interface). Последнее позволяет автоматически обрабатывать данные. Например, сервер мог бы создавать базу данных со сведениями, доступную для некоторых из клиентов. Другой пример - поисковые страницы, такие как Yahoo. Обычно в них представлена форма, позволяющая создавать запрос для поиска в собственной базе данных. В результате пользователь получает ответ вскоре после того, как нажимает на соответствующую кнопку. Ему не приходится ждать, пока люди, отвечающие за поддержание данного сервера, прочтут указанные им данные и отыщут требуемую информацию. Все это автоматически выполняет сам сервер. JavaScript не позволяет делать таких вещей. С помощью JavaScript нельзя создать книгу читательских отзывов, поскольку JavaScript лишен возможности записывать данные в какой-либо файл на сервере. Делать это можно только через интерфейс CGI. Можете создать книгу отзывов, для которой пользователи присылали сведения по электронной почте. Однако в этом случае нужно заносить отзывы вручную. Так можно делать, если не предполагается получать ежедневно по 1000 отзывов. Соответствующий скрипт будет простым текстом HTML. И никакого программирования на JavaScript здесь вовсе не нужно! Конечно за исключением того случая, если понадобится перед пересылкой проверить данные, занесенные в форму - и здесь уже действительно понадобится JavaScript. Команда mailto работает не повсюду - например, поддержка для ее отсутствует в Microsoft Internet Explorer 3.0.

Вопросы для самоконтроля:

1. Конструкции языка JavaScript.

2. Определение и назначение форм

3. Разработка формы, с использованием тегов JavaScript

4. Применение форм на практике

5. Формы и CGI

Тема 5.6 Рисунки на WEB с использованием JavaScript

Студент должен:

иметь представление:

о назначении языка JavaScript.

знать:

- определение и назначение языка JavaScript.

- конструкции языка JavaScript.

- стандартные объекты, методы и функции JavaScript.

- стандартные операторы JavaScript.

уметь:

- использовать конструкции языка JavaScript.

- вставлять рисунки различных форматов на Web- страницу

- вставлять анимацию на Web- страницу

- применять методы OnMouseOver, OnMouseDown

- разрабатывать и использовать сценарии JavaScript на Web документах

Методические указания

Рассмотрим объект Image, рисунок. Этот объект понятен для броузеров, начиная с версий Netscape Navigator 3.0 и Microsoft Internet Explorer 3.0. Объект Image, появивший­ся в версии языка JavaScript 1.1, позволяет осуществлять эффективную обработку изображений, например, создавать эффекты анимации.

Сначала рассмотрим пример того, как к объекту Image можно обра­титься при помощи JavaScript.

Массив изображений носит имя images. Изображения images — это свойства объекта document. Каждый документ на веб-странице имеет свой номер. Первое изображение имеет номер 0, второе изображение — номер один, и так далее. Таким образом, можно обратиться к рисунку посредством document.images[0].

Каждое изображение (картинка), содержащееся в HTML-документе, представляет собой самостоятельный объект Image. Объект Image обладает набором своих свойств, к которым можно обратиться при помощи JavaScript. Напри­мер, можно узнать размер изображения, используя свойства width и height.

Так document.images[0].width содержит информацию о ширине первой картинки на страничке в пикселях, соответственно documet.images[0].height содержит высоту картинки. Иногда использование порядковых номеров картинок на странице оказывается неприемлемым. Это особенно сильно ощущается, если страница содержит большое количество изображений. Обратиться к изображению в таком случае помогают имена, данные конкретным изображениям. Имена изображений можно записать, напри­мер, используя следующий ярлык: <img src="img.gif" name="ImageName" width=100 height=100>

Затем к этому изображению можно обращаться при помощи document.myName или document.images["ImageName"]. Здесь ImageName — это собственное имя данного рисунка.

В ярлыке <img> свойство src представляет адрес (URL) изображения, размещенного на страничке. При помощи JavaScript 1.1 мы имеем воз­можность присвоить свойству src новое значение адреса для уже суще­ствующего развернутого на странице изображения.

В результате данного присваивания на страницу будет загружено новое изображение, и старое изображение будет заменено новым.

Вопросы для самоконтроля:

1. Использование конструкций языка JavaScript, для вставки рисунков и анимации

2. Вставка рисунков различных форматов в Web - страницу

3. Вставка анимации в Web - страницу

4. Методы OnMouseOver, OnMouseDown

5. Разработка и использование сценариев JavaScript в Web документах

Тема 5.7 Java апплеты

Студент должен:

иметь представление:

- о назначении апплета

- строении апплета

- о работе апплета

знать:

- назначение апплета

- строение апплета

- работу апплета

уметь:

- использовать основную конструкцию языка JavaScript.

- создавать апплеты

- применять апплеты на страницах Web

Методические указания

Апплет- программа написанная на Java и выполняемая на стороне клиента.

Для включения аплета в состав Web-страницы используется дескриптор <APPLET>. Для него предусмотрено несколько атрибутов. Три атрибута, CODE, width и height, обязательны, остальные указывать не обязательно. Значением атрибута code является имя файла, содержащего аплет. Атрибуты WIDTH и HEIGHT задают ширину и высоту окна аплета в пикселях.

Назначение остальных атрибутов дескриптора <applet> приведено ниже.

- CODEBASE=URL, - указывается в том случае, если аплет и HTML-документ, в со­став которого он входит, хранятся в различных каталогах. Значением атрибута CODEBASE является URL каталога, в котором содержится аплет.

- ALT=строка - значением этого атрибута является строка символов. Она отобра­жается на экране в том случае, если броузер по каким-либо причинам не может отобразить аплет. Данный атрибут выполняет те же функции, что и одноимен­ный атрибут дескриптора <IMG>.

- ALIGN=тип_выравнивания - управляет выравниванием окна аплета. Значения дан­ного атрибута имеют тот же смысл, что и значения атрибута align дескриптора <IMG>.

- VSPACE и HSPACE - подобно дескриптору <IMG>, эти атрибуты задают размер сво­бодной области над и под аплетом, а также по бокам от него.

- NAME=имя - позволяет именовать аплет. Аплетам, как и другим компонентам Web-страницы, могут присваиваться имена.

При запуске аплету, включенному в состав Web-страницы, можно передавать па­раметры. Для этого надо воспользоваться дескриптором <PARAM>. Параметры опреде­ляются с помощью атрибутов NAME и VALUE данного дескриптора.

- name=имя — задает имя параметра.

- VALUE= имя — задает значение параметра.

Как имя, так и значение представляют собой строки символов. Дескрипторы <param> размещаются между открывающим и закрывающим дескрипторами <applet> ... </APPLET>.

Внешний вид Web-страницы, содержащей аплет, показан на рис. 6.1. Серый пря­моугольник в окне Web-броузера — это окно аплета.

Выполнение апплета

В процессе выполнения апплет последовательно проходит через следующие состояния.

- Инициализация (вызов метода init()). В процессе работы аплета инициализа­ция производится лишь один раз, поэтому на данном этапе необходимо при­нять все необходимые меры по подготовке программы к дальнейшей работе.

- Запуск (вызов метода start()). Метод start() может вызываться неоднократно. Первый раз он вызывается после завершения метода init(). Кроме того, он мо­жет вызываться при возобновлении работы аплета после временной остановки.

- Перерисовка окна аплета (вызов метода paint ()). Необходимость в перерисовке возникает, когда размеры окна изменяются, когда окно минимизируется, а за­тем восстанавливается, когда окно временно перекрывается другим окном, а также в некоторых других случаях. Именно в теле этого метода мы выполняли вывод строки символов.

- Остановка (вызов метода stop()). Обычно выполнение аплета приостанавлива­ется в тех случаях, когда окно броузера, в котором отображается Web-страница, содержащая аплет, становится неактивным. При этом вызывается метод stop(). Если пользователь снова активизирует окно с аплетом, работа аплета возобнов­ляется, при этом вызывается метод start().

- Удаление аплета из памяти (вызов метода destroy()). На этом этапе работа ап­лета окончательно завершается.

Вопросы для самоконтроля:

1. Использование конструкций языка JavaScript для создания апплетов

2. Определение апплета

3. Назначение апплета

4. Структура апплета

5. Принцип работы апплета

Тема 5.8 Сервлеты и апплеты: отличия

Студент должен:

иметь представление:

- о назначении апплета

- строении апплета

- о работе апплета

- об определении Java - сервлетов

- о работе Java - сервлетов

знать:

- назначение апплета

- строение апплета

- работу апплета

- определение Java - сервлетов

- работу Java - сервлетов

уметь:

- отличать апллеты от сервлетов

- применять апплеты на страницах Web

- использовать Java - сервлеты

Методические указания

Апплеты — это программы на Java, которые, как правило, предназначены для того, чтобы загружаться посредством браузера, а затем работать в окне браузера. Они могут использоваться для создания богатых графикой и интерактивными возможностями пользовательских интерфейсов, которые не способны выразить средствами обычного языка разметки HTML.

Сервлеты — программы на Java, которые работают на Web-серверах Java или серверах приложений Java. Как и программы CGI, сервлеты могут доставлять Web-службы непосредственно в браузер или действовать как промежуточное ПО, которое связывает браузер с серверными службами.

 Сервлеты — восходящая звезда

Хотя Java на стороне клиента не оправдал возложенных на него надежд, использование Java на сервере, похоже, имеет неплохие перспективы. Сейчас серверы Java-приложений предлагают огромное и продолжающее расти число Web-служб. И их lingua franca — это API-интерфейс для сервлетов, который определяет, как сервлет Java взаимодействует с хостом на базе Java. Подобное решение применяется очень широко, и хотя Enterprise JavaBeans постепенно превращается в стандарт, намного более простой API сервлета создает общую основу для взаимодействия серверных компонентов Java.

Поскольку сервлеты написаны на Java, они предлагают превосходную платформу для сетевых служб. Программисты Java не управляют памятью напрямую, поэтому сервлеты не порождают ошибки переполнения буфера, которые приводят к изъянам в защите ПО, написанного на Си или C++. Простые механизмы Java для обработки исключений и многониточных программ способствуют разработке надежных и оперативно реагирующих сетевых служб.

Сервлеты также имеют преимущества с архитектурной точки зрения, которые позволяют им в полной мере использовать все присущие Java достоинства. Если апплет, посланный по сети, окажется в несовместимой с ним виртуальной машине Java, то он, скорее всего, корректно работать не будет. Сервлет развертывается в более управляемой среде. Так как параметры JVM известны, проблем совместимости не возникает. Более того, среда, которая окружает данную виртуальную машину, может увеличивать производительность сервлета. Некоторые серверы Java-приложений могут компилировать сервлеты в «родной» для себя код и тем самым значительно увеличивать скорость выполнения. Другие серверы запускают параллельно несколько JVM, иногда в различных процессах хостовой ОС. Эти стратегии увеличивают масштабируемость и отказоустойчивость службы.

Апплеты Java еще могут оправдать надежды. Спрос на более богатый возможностями графический пользовательский интерфейс Web растет, и ни одна из технологий пока не готова предложить кроссплатформенные возможности, сравнимые с возможностями Java. В то же время, однако, сервлеты Java, безусловно, имеют успех.

Вопросы для самоконтроля:

1. Определение апплета

2. Определение сервлета

3. Структура апплета

4. Структура сервлета

5. Отличия апплетов от сервлетов

Тема 5.9 Технология COM

Студент должен:

иметь представление:

- о технологии СОМ

знать:

- определение технологии СОМ

- работу технологии СОМ

- состав технологии СОМ

уметь:

- создавать объекты СОМ

Методические указания

COM (Component Object Model) - спецификация, определяющая стандарт, которому должны следовать компоненты и клиенты. COM не зависит от языка программирования. Компоненты COM могут быть написаны на любом языке (C++, Delphi, Visual Basic, Java и др.).

Модель COM является объектно-ориентированной. COM поддерживает инкапсуляцию (все детали реализации компонента скрыты от клиента), наследование (наследование интерфейса, но не реализации) и полиморфизм.

Клиент работает с компонентом COM посредством интерфейсов, которые тот ему предоставляет. Интерфейс COM - это набор некоторых функций. После того, как интерфейс опубликован, его нельзя изменять, следует создавать новый интерфейс. Для идентификации COM объектов и интерфейсов в системе служит так называемый GUID ( Globally Unique IDentifier) - глобальный уникальный идентификатор. Для того, чтобы получить COM интерфейс нужно указать его GUID. Когда GUID относится к COM интерфейсу, он называется идентификатором интерфейса (IID). Когда GUID идентифицирует COM объект, он называется идентификатором класса (CLSID).

Чтобы клиент мог получитть доступ к COM объекту, тот должен быть зарегистрирован в реестре Windows. В частности, в реестре прописываются CLSID и IID.

Каждый COM интерфейс должен быть произведен от COM интерфейса IUnknown. Этот интерфейс определяет 3 метода : QueryInterface(), AddRef(),Release() .

Функция QueryInterface() предназначена для получения клиентом некоторого интерфейса от компонента COM.

Функции AddRef() и Release() служат для управления временем жизни объекта COM.

Вопросы для самоконтроля:

1. Определение технологии СОМ

2. Назначение технологии СОМ

3. Принцип работы технологии СОМ

4. Основные интерфейсы, используемые в технологии СОМ

5. Достоинства и недостатки технологии СОМ

Тема 5.10 Объекты технологии СОМ

Студент должен:

иметь представление:

- о технологии СОМ

знать:

- определение технологии СОМ

- работу технологии СОМ

- состав технологии СОМ

- объекты технологии СОМ

уметь:

- создавать объекты СОМ

Методические указания

Идентификация объектов. Глобальные уникальные идентификаторы (GUIDs).

Существуют объекты, реализующие некоторые функции. Единственный способ программно взаимодействовать с объектом – использовать его интерфейсы.

Имеются 4 способа получить первый указатель на интерфейс к объекту:

1. Вызвать функцию API, которая создает объект только одного типа и возвращает только один тип указателя на интерфейс. Многие функции OLE и COM API попадают в эту категорию. Например, функция CreateTypeLib, которая всегда создает тот же тип объекта (новую библиотеку типов) и возвращает тот же интерфейсный указатель ICreateTypeLib.

2. Вызов функции-члена через интерфейс объекта, который уже известен. Она возвращает указатель на интерфейс другого объекта. Т. е. клиент как бы проходит через множественные объекты в компоненте. Например, открытие потока внутри хранилища в составном файле требует вызова IStorage::OpenStream для получения нужного указателя IStream.

3. Реализовать на объекте свой собственный интерфейс, через который другие объекты будут передавать свои собственные указатели на интерфейс. Например, объект с подключением получает указатели для подключаемых интерфейсов через IConnectionPoint::Advise.

4. Вызвать функцию API, которая по данному идентификатору класса объектов создает объект и возвращает требуемый указатель на его интерфейс. Функция COM API CoCreateInstance, являющаяся аналогом оператора new языка С++ - основная функция в этой категории.

В соответствии с четырьмя способами получения первого указателя на объект есть четыре основных пути уникально идентифицировать класс:

1. по имени API-функции, которая создает или возвращает объект класса

2. по позиции объекта внутри иерархии компонент – т. е. через имя функции интерфейса, которая обеспечивает к нему доступ

3. по некоторому внутреннему имени класса или структуры, которое обеспечивается, когда объект создается и затем выставляется наружу клиенту

4. по глобальному уникальному идентификатору класса (CLSID)

Все способы объединяет одно – уникальность.

Но четвертый метод хитрее других. В нем компоненты уникально идентифицируются внутри всей системы или даже сети.

Распределенное окружение имеет потенциально миллионы компонент, объектов и интерфейсов, которые нужно уникально идентифицировать. Использование символьных “читабельных” имен для нахождения и связывания всех этих элементов будет приводить к коллизии. А ведь многие компоненты и интерфейсы разрабатываются в разное время разными людьми в различных местах. Как же гарантировать уникальность?

Проблема уникальной межсетевой идентификации не выдумана СOМ. Фактически, эта проблема появилась с Remote Procedure Calls (RPC). Поэтому организация Open Software Foundation (OSF) ввела понятие универсального уникального идентификатора (Universally Unique Identifier - UUID) как часть своего распределенного вычислительного окружения (Distributed Computing Environment - DCE).

UUID, который в COM и OLE известен как GUID (произносится “гуид”) – 128-битное (16-байтное) целое, которое фактически гарантированно уникально для всего мира в пространстве и времени.

В СОМ GUID используются для того, чтобы программно идентифицировать классы компонент (в таких случаях они называются class ID = CLSID) или интерфейсы (в таких случаях они называются interface ID = IID).

В различных ситуациях нужно поддерживать один или более GUID для обозначения собственных реализованных компонент или описанных интерфейсов. Для этой фундаментальной цели COM обеспечивает API-функцию CoCreateGuid, которая, на самом деле, вызывает функцию Win32 RPC API UUIDCreate.

Эта функция выполняет специфицированный OSF DCE алгоритм, который использует комбинацию следующей информации для генерации GUID:

1. текущие время и дату – 60 бит

2. глобальный уникальный идентификатор машины, получаемый от сетевой карты (а при ее отсутствии синтезируемый из изменяющихся машинных состояний) – 48-битное значение и т. п.

Шанс генерации двух одинаковых GUIDs ничтожно мал. Подсчитано, что используемый сейчас алгоритм генерации GUID начнет выдавать повторяющиеся значения в 3400 году.

Хотя можно создавать GUID с CoCreateGuid в период выполнения, обычно он получается однажды и присваивается разрабатываемой компоненте.

Обычно имеется некое средство с именем типа UUIDGEN. EXE или GUIDGEN. EXE, которое генерирует идентификатор. Он имеет вид:

3fad3020-16b7-11ce-80eb-00aa003d7352

в принятом шестнадцатиричном стандарте. Через несколько секунд идентификатор станет другим: b7-11ce-80eb-00aa003d7352

Свой собственный GUID нужно определить где-либо в исходном коде (GUID, определенные OLE, описываются в заголовочных файлах или связующих библиотеках).

Вопросы для самоконтроля:

1. Определение технологии СОМ

2. Принцип работы технологии СОМ

3. Объекты технологии СОМ

4. Компоненты СОМ

5. Функции СОМ

Тема 5.11 Распределенная СОМ

Студент должен:

иметь представление:

- о технологии СОМ

- о технологии «распределенная СОМ»

знать:

- определение технологии «распределенная СОМ»

- работу распределенной СОМ

- состав распределенной СОМ

уметь:

- определять объекты распределенной СОМ

Методические указания

С самого начала СОМ разрабатывалась с учетом обеспечения поддержки распределенных сред, т. е. способности клиента создавать объекты на других машинах и вызывать их методы по сети. Эти планы стали реальностью в 1996 году после выпуска распределенной СОМ (Distributed СОМ — DOOM). DCOM позволяет клиенту создавать и использовать объекты как на удаленных системах, так и на локальной. Более того, клиент может даже не осознавать различия между этими двумя случаями. Подобно тому, как клиенты СОМ имеют прозрачный доступ к объектам в динамических библиотеках и локальных процессах, DCOM обеспечивает прозрачный доступ к объектам в удаленных процессах. Фактически самое трудное в достижении подобной прозрачности — это обеспечить взаимодействие объектов, исполняющихся в разных процессах независимо от того, выполняются эти процессы на одной машине или нет. В этом смысле, с точки зрения проектирования, DCOM — довольно незначительное расширение оригинальной СОМ.

Возможность запускать удаленные объекты и вызывать их методы — важное достижение, но требуется большее. В частности, нужен способ контроля за тем, кто имеет право создавать объекты на данной машине, и обеспечение безопасного доступа к этим объектам по сети, которая может кишеть потенциальными врагами. С этой целью в основу DCOM положен набор сервисов контроля доступа. Приложения (включая программы, созданные до DCOM) могут использовать DCOM и работать вполне безопасно без добавления какого-либо кода, обязанного с защитой. С другой стороны, приложения, знающие о новых средствах DCOM контроля доступа, могут задействовать их явно.

Несмотря на отдельные сложные моменты, DCOM вообще проста для понимания. Она добавляет к знакомым основам СОМ всего 3 основных элемента: способ создания удаленного объекта, протокол вызова методов этого объекта и механизмы обеспечения безопасного доступа к нему.

Вопросы для самоконтроля:

1. Определение технологии СОМ

2. Определение технологии «распределенная СОМ»

3. Работа распределенной СОМ

4. Состав распределенной СОМ

5. Достоинства и недостатки распределенной СОМ

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6