- •Содержание
- •2 Вопросы для текущего контроля знаний по темам 70
- •Введение
- •1 Разработка приложений с элементами системного программирования на основе использования технологий межпрограммного обмена данными
- •1.1 Лабораторная работа №1. Обмен данными между потоками с использованием сообщения wm_copydata
- •Краткие теоретические сведения
- •1.1.2 Ход выполнения работы
- •1.1.3 Задание на лабораторную работу 1
- •Варианты индивидуального задания
- •1.1.4 Контрольные вопросы к лабораторной работе 1
- •1.2 Лабораторная работа №2. Обмен данными между приложениями с использованием технологии динамического обмена данными – Dynamic Data Exchange (dde)
- •1.2.1 Краткие теоретические сведения
- •Глобальные данные
- •Посылка и прием данных
- •Завершение сеанса
- •Компонент tddeServerConv
- •Компонент tddeServerItem
- •Компонент tddeClientItem
- •1.2.2. Ход выполнения работы
- •1.2.3 Задание на лабораторную работу 2
- •1.2.4 Контрольные вопросы к лабораторной работе 2
- •1.3 Лабораторная работа №3. Обмен данными между приложениями с использованием технологии динамического обмена данными с помощью файлов, отображаемых в память
- •1.3.1 Краткие теоретические сведения Создание объекта файлового отображения
- •Совместное использование отображаемых данных
- •1.3.2 Ход выполнения работы
- •1.3.3 Задание на лабораторную работу 3
- •1.3.4 Контрольные вопросы к лабораторной работе 3
- •1.4 Лабораторная работа №4. Обмен данными между приложениями с использованием технологии динамического обмена данными с помощью сокетов
- •1.4.1 Краткие теоретические сведения Сокеты
- •1.4.2 Ход выполнения работы
- •1.4.3 Контрольные вопросы к лабораторной работе 4
- •1.5 Лабораторная работа №5. Обмен данными между приложениями с использованием технологии динамического обмена данными с помощью именованных каналов
- •1.5.1 Краткие теоретические сведения Каналы
- •1.5.2 Ход выполнения работы
- •1.5.3 Контрольные вопросы к лабораторной работе 5
- •1.6 Лабораторная работа №6. Использование технологии сом при разработке приложений в Delphi. Создание и использование внутреннего сервера
- •1.6.1 Краткие теоретические сведения
- •1.6.2 Ход выполнения работы
- •1.6.3 Контрольные вопросы к лабораторной работе 6
- •2 Вопросы для текущего контроля знаний по темам
- •Список литературы
- •107/2009. Підп. До друку 25.12.09. Формат 60 х 84/8.
- •84313, М. Краматорськ, вул. Шкадінова, 72.
1.6.3 Контрольные вопросы к лабораторной работе 6
-
Расшифруйте аббревиатуру COM как технологию межпрограммного обмена данными. Поясните возможности технологии для прикладного и системного программиста.
-
Что такое COM-сервер и COM-клиент?
-
Какую роль играют интерфейсы при организации обмена данными между COM-клиентом и COM-сервером? В чем отличие в целях и реализации применения интерфейсов в обычном объектно-ориентированном программировании?
-
Что такое «библиотека COM» в операционной системе? Каковы цели ее организации и ка-кие функции она содержит? Опишите назначение и параметры функции CoCreateInstance.
-
Нарисуйте схему вызова COM-сервера и создание COM-объекта с использованием вызова соответствующей функции библиотеки COM и реестра.
-
Каковы параметры вызова функций CreateComObject и CreateOleObject, в чем разница работы этих функций и значения каких типов они возвращают? Конструкторы каких классов используют их в своих реализациях?
-
Какие виды COM-серверов вы знаете? Охарактеризуйте их.
-
Какой вызов метода обязательно располагается в разделе Initialize юнита, реализующего класс COM-объекта в проекте сервера и каковы параметры его вызова?
-
Что такое CoClass, зачем он нужен, где находится его объявление и реализация конструк-торов? Что содержится в реализации конструкторов?
-
Что такое фабрика класса, зачем она нужна, где и когда создается объект ее класса?
-
Что такое маршаллинг, какую часть работы технологии COM он обеспечивает?
-
Каким образом (два варианта) клиентское приложение может узнать доступные типы данных, методы и свойства СОМ-сервера?
-
Что такое библиотека типов, на каком языке пишется исходный ее текст, в каком виде она обычно хранится и может ли она быть импортирована в проект Delphi? Обязательно ли она нужна в составе проекта клиента?
-
Опишите возможности редактора библиотеки типов в Delphi.
-
Кратко опишите содержимое юнита библиотеки типов, получаемой при создании СОМ-сервера в Delphi.
-
Какие спецификации (разновидности реализации и использования) имеет COM-технология?
-
Являются ли CreateComObject и CreateOleObject функциями Windows API?
-
Как называется интерфейс, существующий по умолчанию у всех COM-объектов и с помощью которого можно получить указатель на любой другой интерфейс объекта?
-
При установке использующего СОМ приложения какая информация записывается в системный реестр обо всех предоставляемых им объектах СОМ?
-
Укажите используемые виды COM-серверов.
2 Вопросы для текущего контроля знаний по темам
-
Перечислите технологии межпрограммного обмена данными в очередности их возникновения и с указанием возможности обмена между приложениями на различных компьютерах.
-
Каковы цели межпрограммного обмена данными в динамическом режиме? Приведите примеры, в каких случаях это необходимо.
-
Какова структура данных сообщения и какие данные содержат ее поля? Что порождает сообщения и какой программный комплекс занимается рассылкой сообщений по очередям? Какие очереди сообщений вы знаете?
-
С помощью каких функций Windows API можно организовать посылку сообщения окну данного потока или окну другого потока? Какие виды сообщений можно послать?
-
Каким образом в Delphi можно организовать обработку нестандартного сообщения (двумя различными методами класса формы)?
-
Зачем регистрировать в системе пользовательские сообщения, которыми будут обмениваться приложения для решения своих задач? С помощью какой функции это делается?
-
Какой максимальный объем данных можно передать с помощью обычного сообщения? Какое сообщение позволяет передавать большие объемы данных?
-
Опишите назначение полей сообщения WM_COPYDATA.
-
Что такое атомы? Зачем их использовать, например, при работе DDE?
-
Какие виды атомов используется при обмене данными между приложениями в DDE?
-
Где и зачем используется протокол обмена данными DDE?
-
Перечислите 9 сообщений протокола DDE.
-
Нарисуйте схему обмена сообщениями для установления связи между клиентом и сервером и обмена данными в рамках технологии DDE.
-
Какие функции Windows API для посылки сообщения используются для установления связи в DDE, а какой для обмена сообщениями после установки связи?
-
Какова схема надстроек программных средств над протоколом DDE в операционной системе и средстве разработки (на примере Delphi)?
-
Какой протокол межпрограммного обмена данными построен как дальнейшее развитие DDE?
-
Что такое conversation, topic, item при организации DDE и зачем они нужны?
-
В чем разница между работой сервера и клиента DDE?
-
Каково назначение компонентов TddeServerConv и TddeServerItem?
-
Каково назначение компонентов TddeClientConv и TddeClientItem?
-
Что такое «объект файлового отображения»? Какая функция используется для его создания? Может ли этот объект использовать обыкновенный файл на диске?
-
Какие функции используются для подключения адресного пространства процесса к созданному другим приложением объекту файлового отображения? А для отключения?
-
В чем достоинства использования для обмена данными файла, отображаемого в память, по сравнению с обычным записью и чтением в файл?
-
В чем недостатки использования для обмена данными файла, отображаемого в память, по сравнению с обычным записью и чтением в файл?
-
Что такое каналы в UNIX и Windows, каков принцип их работы?
-
Каковы правила наименования каналов, для каких целей их создавала фирма Microsoft и в каких режимах чтения и записи могут работать с каналами серверы и клиенты?
-
Какие два вида каналов вы знаете? Можно ли их использовать для связи между приложениями, работающими на различных хостах?
-
В чем разница между сервером и клиентом с точки зрения создания и использования каналов?
-
Какие режимы открытия каналов и работы каналов вы знаете?
-
Возможна ли необходимость асинхронного ввода-вывода при работе с каналами и каким образом она реализуется?
-
Каким образом программист может подождать завершения работы с каналом, как, собственно, и завершения любого асинхронного вывода-вывода?
-
Какую структуру данных с созданием какого объекта синхронизации надо организовать для асинхронного вывода-вывода в канале (как, собственно, и в другом устройстве ввода-вывода)?
-
Что такое хост? Может ли на компьютере быть несколько хостов? Как нумеруются хосты и что такое порты, по которым ведется соединение?
-
Что такое UNC (Universal Naming Conventional) и каким образом в соответствии с ним даются имена хостам и каналам? С помощью какой системы осуществляется поддержка соответствия имен хостов и IP-адресов?
-
На каком уровне семиуровневой архитектуры OSI находятся сокеты и между какими другими уровнями? Какие в связи с этим у них преимущества?
-
Что такое сокет по своей сущности и с точки зрения системного программиста? Какой API сокетов поддерживается в настоящий момент в Windows?
-
В чем разница между функционированием серверного сокета и клиентского сокета? Возможна ли ситуация асинхронного ввода-вывода при работе с сокетами?
-
Какое имя надо дать хосту, что иметь возможность отладить межпрограммное взаимодействие на одной машине (дайте четыре варианта).
-
Какие возможности предоставляет разработчику компонент Delphi TServerSocket?
-
Какие возможности предоставляет разработчику свойство Socket: TServerWinSocket компонента Delphi TServerSocket?
-
Какие возможности предоставляет разработчику компонент Delphi TClientSocket?
-
Какие возможности предоставляет разработчику свойство Socket: TClientWinSocket компонента Delphi TClientSocket?
-
В чем смысл задания блокирующего и неблокирующего (асинхронного) типа сокетов? В каком случае необходимо создание отдельного потока для работы с сокетом?