Программная технология CORBA
CORBA (Common Object Request Broker Architecture) – это стандарт, набор спецификаций для промежуточного программного обеспечения (middleware) объектного типа . Задача ППО, как известно, и заключается в связывании программных приложений для обмена данными. Эволюция ППО – это путь от программ передачи информации между конкретными приложениями, через средства импорта- экспорта данных и организацию мостов между некоторыми приложениями, через SQL, RPC (Remote Procedure Call), TP мониторы (Transaction Proceesing) обработки транзакций, Groupware – управление различными неструктурированными данными (тексты, факсы, письма электронной почты, календари и т.д.) и, наконец, MOM – Message-Oriented Middleware (асинхронный обмен сообщениями между сервером и клиентом), к созданию распределенных компьютерных систем. Элементы этих систем могут взаимодействовать друг с другом как на одной локальной машине, так и по сети. CORBA позволяет организовать единую информационную среду, элементы которой могут общаться друг с другом, вне зависимости от их конкретной реализации, «прописки» в распределенной системе, платформы и языка их реализации.
Основополагающими документами для CORBA являются два – «The Common Object Request Broker: Architecture and Specification» и «CORBAservices: Common Object Services Specification».
Что такое Oracle?
СУБД Oracle это, прежде всего высоконадежный сервер, обеспечивающий при необходимости работу в режиме 24*7.
Ядро языка SQL соответствует стандарту ANSI/ISO SQL92. Обеспечивается работа в системе клиент-сервер с двумя и большим числом уровней и поддержка целостности данных, как на уровне сервера, так и на уровне клиента.
Естественно поддерживаются распределенные и многопользовательские базы. Обеспечивается переносимость на более чем на 70 платформ.
Приятной особенностью Oracle является отсутствие резкого замедления работы при больших и сверхбольших базах данных (гигабайты и более).
Будем называть базой данных набор данных, рассматриваемых как одно целое.
База данных может быть открыта (доступна) и закрыта (недоступна).
База данных имеет логическую и физическую структуру.
Для управления физическим уровнем независимо от логического приняты меры для обеспечения независимости этих структур.
Структура базы.
На физическом уровне каждая база состоит из трех типов файлов:
один или более файлов данных;
два или более журнальных файлов;
один или более управляющих (контрольных) файлов.
На логическом уровне каждая база состоит из:
не менее чем одного табличного пространства (tablespace); при этом системное табличное пространство SYSTEM создается автоматически при заведении базы данных; в дальнейшем добавляются пространства временное TEMP и др. каждое табличное пространство состоит из сегментов, сегменты состоят из экстентов, экстенты из блоков, которые могут отличаться от блоков операционной системы;
база данных описывается схемой; объекты схемы это логические структуры, связанные с данными базы (таблицы, представления, синонимы, последовательности, хранимые процедуры, индексы, кластеры и связи баз данных)
каждое табличное пространство включает пользовательские объекты базы (таблицы, представления, индексы, кластеры, последовательности, хранимые процедуры);
Табличное пространство может быть оперативным или автономным (недоступным). В автономный режим табличное пространство переводит обычно администратор.
Объем ТП SYSTEM 2 Мбайта (на диске 1), объем DATA 4 Мбайта (на дисках 1 и 2). Пространство БД 6 Мбайт.
Заметим, что объекты одной схемы могут находиться в разных табличных пространствах, соответственно, одно табличное пространство может содержать объекты разных схем.
Опишем кратко некоторые логические объекты:
таблицы понимаются достаточно традиционно, целостность данных поддерживается на уровне ключей (первичных, уникальных, внешних (forein), суррогатных) и триггеров;
представление — это как бы взгляд на данные с некоторой точки зрения; может пониматься как виртуальная таблица, в действительности представляет собой хранимый запрос;
последовательности ~ последовательные списки уникальных чисел;
хранимые процедуры — откомпилированные и готовые к запуску последовательности команд SQL или PL/SQL;
пакеты — объединяют обычно логически связанные процедуры, функции и другие конструкции в одну программную единицу;
синоним ~ альтернативное имя таблицы, представления, последовательности или программной единицы; синонимы бывают общие и частные;
кластеры — группы из одной или более таблиц, физически хранимых вместе; в кластеры объединяют таблицы, имеющие общие значения некоторых столбцов и часто используемые совместно; связанные столбцы таких таблиц называют кластерным ключом;
связи баз данных используются в распределенных базах данных;
Блоки данных, экстенты и сегментыСуществуют следующие виды сегментов:
сегмент данных; все данные некластеризованной таблицы хранятся в нескольких сегментах данных;
сегмент индекса хранит данные индекса;
сегмент отката предназначен для хранения временной информации, используемой для отмены сделанных изменений базы данных, для восстановления целостности базы данных; интересной особенностью Oracle является то, что откат используется для обеспечения целостности чтения; проблема «читателей» и «писателей»; организация чтения без блокировок;
временный сегмент образуют временные рабочие области, используемые некоторыми командами SQL; после выполнения такой команды экстенты временного сегмента возвращаются в свободное пространство;
Блок это минимальная порция данных, с которой работает сервер. Размер блока определяется в байтах дискового пространства при создании базы данных.
Экстент — это заданное число непрерывно расположенных блоков данных; изменение размеров областей осуществляется экстентами, размер которых может меняться;
Сегменты это набор экстентов, выделенных для хранения определенной логической структуры.
Физические структуры
Физическую структуру базы данных образуют:
- файлы данных
- журнальные файлы
- управляющие файлы.
Файлы данных предназначены для хранения таблиц и индексов.
Отличаются следующими особенностями:
файл данных связан с единственной базой данных;
размер файла после его создания изменить нельзя; при нехватке места добавляют новые файлы данных;
Вспомним, что несколько файлов данных образуют табличное пространство.
Данные из файла считываются в буфер оперативной памяти. При следующих чтениях данные сначала ищутся, в буфере и только если их там нет, выполняется чтение одного или нескольких блоков с дисков. Чем больше оперативная память, тем выше быстродействие Oracle.
Измененные или новые данные могут не записываться на диск немедленно. Это существенно повышает быстродействие. Одновременно возрастала бы угроза потери данных, если бы не был разработан описанный ниже механизм журнализации.
Журнальные файлы.
Набор из обязательно существующих двух или более журнальных файлов называется журналом. Все изменения в базе записываются в журнал. Естественно, гибель журнала при авариях означает окончательную потерю последних изменений. Чтобы этого не произошло рекомендуется зеркалировать журнал или хранить его копии на нескольких дисках.
При системных или дисковых сбоях данные из памяти нельзя записывать в файлы данных. Эти данные будут автоматически восстановлены при возобновлении работына основе данных журнальных файлов. Этот процесс называется откатом вперед.
Два или более журнальных файла используются, чтобы иметь возможность одновременно заполнять один файл, а второй использовать для записи на диск.
Управляющий файл
Хранит информацию о физической структуре базы (имя базы, пароль, имена ирасположение файлов данных ижурнальных файлов, время создания базы и т.д.).
При запуске базы управляющий файл используется для открытия журнальных файлов. Если необходимо, база данных восстанавливается.
Словарь данных
Создается в момент создания базы. Автоматически обновляется сервером при любых изменениях структуры базы.
Представляет набор таблиц и представлений, используемых для описания базы, в частности, логической и физической структуры. Кроме того, хранится информация о пользователях, правила целостности, информация о выделенном пространстве
Прилюбых действиях с базой по словарю проверяется существование объектов базы, с которыми выполняется работа, а также привилегии доступа пользователя.
Все работы с базой данных выполняет экземпляр Oracle,представляющий собой набор фоновых процессовнад структурами памяти.SGAэто разделяемая область памяти, содержащая данные и управляющую информацию экземпляра Oracle. SGA создается при запуске экземпляра и возвращается операционной системе когда экземпляр заканчивает работу. Данные в SGA разделены между пользователями, работающими с базой данных. При запуске экземпляра выделяются следующие области, имеющие фиксированные размеры:
буфера базы данныхSGA хранят последние использованные блоки базы; набор таких буферов называется кеш-буферомбазы данных;
буфера журналахранят точки журнальных входов, т.е. изменения вбазе данных; из буфера точки журнальных входов записываются в оперативный файл журнала, используемый при необходимости восстановления базы данных; размер этогофайла не меняется;
На приведенном рисунке показаны структуры памяти и процессы Oracle.
Oracle создает две основные структуры памяти системную глобальную область SGA (System Global Area),включающую буфера базы данных и журнала, разделяемый пул памяти, ипрограммную глобальную область PGA (Program Global Area).
разделяемый пулсодержит конструкции разделяемой памяти, например, разделяемые области SQL; для каждой команды SQL разделяемая область SQL содержит дерево разбора и план выполнения; несколько приложений, работающих с одной базой данных могут использовать эти пулы для ускорения выполнения в точности одинаковых команд;
Курсоры
PGAэто буфер памяти, содержащий данные и управляющую информацию для различных серверных процессов; создается во время запуска соответствующего процесса; информация, содержащаяся в PGA сильно зависит от конфигурации Oracle.
Примеры комплексов CASE-средств
на сегодняшний день наиболее развитым из всех поставляемых в России комплексов такого рода является комплекс технологий и инструментальных средств создания ИС, основанный на методологии и технологии DATARUN. В состав комплекса входят следующие инструментальные средства:
CASE-средство Silverrun;
средство разработки приложений JAM;
мост Silverrun-RDM <-> JAM;
комплекс средств тестирования QA;
менеджер транзакций Tuxedo;
комплекс средств планирования и управления проектом SE Companion;
комплекс средств конфигурационного управления PVCS;
объектно-ориентированное CASE-средство Rational Rose;
средство документирования SoDA.
Примерами других подобных комплексов являются:
Vantage Team Builder for Uniface + Uniface (фирмы "DataX/Florin" и "ЛАНИТ");
комплекс средств, поставляемых и используемых фирмой "ФОРС":
CASE-средства Designer/2000 (основное), ERwin, Bpwin и Oowin (альтернативные);
средства разработки приложений Developer/2000, ORACLE Power Objects (основные) и Usoft Developer (альтернативное);
средство настройки и оптимизации ExplainSQL (Platinum);
средства администрирования и сопровождения SQLWatch, DBVision, SQL Spy, TSReorg и др. (Platinum);
средство документирования ORACLE Book.
комплекс средств на основе продуктов фирмы CENTURA:
CASE-средства ERwin, Bpwin и Oowin (объектно-ориентированный анализ);
средства разработки приложений SQLWindows и TeamWindows;
средство тестирования и оптимизации приложений "клиент-сервер" SQLBench (ARC);
cредства эксплуатации и сопровождения Quest и Crystal Reports.