- •1. Режимы работы с базой данных
- •2. Технология com (Component Object Model)
- •3. Модели «клиент-сервер» в технологии баз данных.
- •4. Основные принципы функционирования com (Component Object Model)
- •5. Модель файлового сервера.
- •6. Параллельное выполнение транзакций. Основные проблемы.
- •7. Модель удаленного доступа к данным.
- •8. Уровни изолированности пользователей.
- •9. Гранулированные синхронизационные захваты.
- •10. Модель сервера приложений.
- •11. Создание объекта и работа с объектом в технологии com (Component Object Model)
- •12. Модель сервера баз данных.
- •13. Интерфейсы технологии com (Component Object Model)
- •14. Типы параллелизма (Пути распараллеливания запросов).
- •15. Сервер com (Component Object Model).
- •16. Модели транзакций.
- •17. Технология mts (Microsoft Transaction Server).
- •18. Локальные базы данных
- •19. Технология ado (Microsoft ActiveX Object).
- •20. Способы завершения транзакций.
- •21. Архитектура «клиент-сервер». Двухзвенная структура.
- •22. Технология midas (Multitier Distributed Applications Server).
- •23. Архитектура «файл-сервер».
- •24. Журнализация и буферизация.
- •25. Архитектура «клиент-сервер». Трехзвенная структура.
- •26. Индивидуальный откат транзакций.
- •27. Технология corba ( Common Object Request Broker Architecture).
- •28. Объект corba ( Common Object Request Broker Architecture).
- •29. Службы corba (Common Object Request Broker Architecture) и их взаимодействие.
- •30. Библиотека сом.
- •31. Фабрика класса сом.
15. Сервер com (Component Object Model).
Модель COM предоставляет возможность создания многократно используемых компонентов, независимых от языка программирования. Такие компоненты называются COM-серверами и представляют собой исполнимые файлы (EXE) или динамические библиотеки (DLL), специальным образом оформленные для обеспечения возможности их универсального вызова из любой программы, написанной на поддерживающем COM языке программирования. При этом COM сервер может выполняться как в адресном пространстве вызывающей программы (In-Proc сервер), так и в виде самостоятельного процесса (Out-Of-Proc сервер) или даже на другом компьютере (Distributed COM). COM автоматически разрешает вопросы, связанные с передачей параметров и согласованием потоковых моделей клиента и сервера.
COM-сервер – это специальным образом оформленное и зарегистрированное приложение, которое позволяет клиентам запрашивать у себя создание реализованных в нем объектов. Сервер может быть выполнен в виде динамической библиотеки, либо исполнимого файла.
Сервер в виде DLL всегда выполняется в адресном пространстве активизировавшего его приложения (In-Process). За счет этого, как правило, снижаются накладные расходы на вызов методов сервера. В то же время такой сервер менее надежен, поскольку его память не защищена от ошибок в вызывающем приложении. Кроме этого он не может выполняться на удаленной машине без исполнимого модуля-посредника, который бы создал процесс, в который может быть загружена DLL. Примером такого модуля может служить Microsoft Transaction Server.
Сервер в виде исполнимого файла представляет собой обычный исполнимый файл Windows в котором реализована возможность создания COM-объектов по запросу других приложений. Примером такого сервера является пакет Microsoft Office, приложения которого являются COM-серверами.
COM реализует механизм автоматического поиска серверов по запросу клиента. Каждый COM-объект имеет уникальный идентификатор, Class Identifier (CLSID). Windows ведет в реестре базу данных зарегистрированный объектов, индексированную при помощи CLSID. Она расположена в ветке реестра HKEY_CLASSES_ROOT\CLSID.
16. Модели транзакций.
Транзакция - это последовательность операций над БД, и переводящих базу данных из одного непротиворечивого (согласованного) состояния в другое непротиворечивое состояние, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует (COMMIT) изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД.
В стандарте ANSI/ISO SQL определены модель транзакций и функции операторов COMMIT и ROLLBACK. Стандарт определяет, что транзакция начинается с первого SQL-оператора, инициируемого пользователем или содержащегося в программе, изменяющего текущее состояние базы данных. Все последующие SQL-операторы составляют тело транзакции. Транзакция завершается одним из четырех возможных путей:
- оператор COMMIT означает успешное завершение транзакции; его использование делает постоянными изменения, внесенные в базу данных в рамках текущей транзакции;
- оператор ROLLBACK прерывает транзакцию, отменяя изменения, сделанные в базе данных в рамках этой транзакции; новая транзакция начинается непосредственно после использования ROLLBACK;
- успешное завершение программы, в которой была инициирована текущая транзакция, означает успешное завершение транзакции (как будто был использован оператор COMMIT);
- ошибочное завершение программы прерывает транзакцию (как будто был использован оператор ROLLBACK).
В этой модели каждый оператор, который изменяет состояние БД, рассматривается как транзакция, поэтому при успешном завершении этого оператора БД переходит в новое устойчивое состояние.