А. Тандоев
Фирма АлконсСофт, тел. (+7 095) 362-5138, 362-7443
1. Характерные черты SYBASE System 10
- 2.1. Структура библиотек
- 2.2. Локализация библиотек
- 3.1. Протокольные службы
- 3.2. Службы имен
- 3.3. Службы управления
- 3.4. Управление транзакциями
- 3.5. Интерфейсы прикладных программ
- 3.6. Службы приложений
В начале 1994 года вышла версия SYBASE System 10 на основных платформах, в том числе на Sun, HP, IBM RS/6000, DEC VAX/VMS, DEC AXP VMS, DEC Alpha OpenVMS, DEC Alpha OSF, NCR, NEC, Sequent, Silicon Graphics, Unisys. В III квартале 1994 года выпущена полнофункциональная система 10 на платформах PC-серверов для Novell NetWare, Windows NT, OS/2, SCO UNIX. SYBASE System 10 обладает мощной и гибкой архитектурой. Она может поддерживать новые коммуникационные технологии и стандарты при сохранении обратной совместимости. Эта архитектура построена на основе продуктов SYBASE Open Client/Server, которые представляют собой _стандартные_ блоки распределенной среды клиент-сервер.
Приложения, разработанные с интерфейсами Open Client/Server, могут работать со всеми продуктами SYBASE, включая SQL Server, Replication Server, OmniSQL Server, Navigation Server, а также получать доступ ко внешним источникам информации.
1. Характерные черты SYBASE System 10
- Независимость от технологии - отдельные компоненты могут быть изменены, не задевая остальные. Это дает возможность включать в продукты SYBASE элементы новой технологии.
- Поддержка многих международных и промышленных стандартов.
- Поддержка как реляционных источников данных, так и других распределенных служб.
- Наличие всех средств для построения распределенных приложений.
- Возможность легко включать новую функциональность.
- Переносимость - работа продуктов на различных аппаратных архитектурах и операционных системах.
- Легкость оптимизации - функциональные компоненты могут индивидуально настраиваться для достижения большей производительности.
- Надежность системы - так как компоненты системы разделены, изменения в одном компоненте не влияют на надежность всех остальных компонент.
SYBASE SQL Server полностью реализует стандарты ANSI/ISO SQL-89, FIPS 127-1 и entry-level ANSI/ISO SQL-92. Имеется значительное количество полезных расширений SQL. В частности, поддерживаются хранимые процедуры, триггеры, декларативная ссылочная целостность, правила, события, определяемые пользователем типы данных.
Архитектура сервера соответствует требованиям стандарта C2 безопасности. Имеется специальная версия SYBASE Secure SQL Server для обеспечения повышенной безопасности данных.
Полностью поддерживаются распределенные транзакции в соответствии со спецификацией X/Open XA.
SYBASE SQL Server может конфигурироваться на требуемый язык сообщений, кодовую таблицу и порядок сортировки. В частности, можно не только использовать русский текст как данные, но и именовать таблицы и колонки в базе данных русскими буквами (хотя автор так не делает).
Начиная с версии 10.0.2, файлы конфигурации для русского языка входят в поставку SYBASE SQL Server.
2. Архитектура библиотек
Библиотеки являются основой всех компонент SYBASE, и их свойства определяют характеристики компонент. С каждой библиотекой ассоциирован интерфейс прикладных программ (API), т.е. спецификация имен программ, параметров, типов и файлов заголовков.
Каждая версия библиотек SYBASE имеет программу _version_, через которую приложение может задать требуемую для него версию (и, следовательно, функционирование). Кроме того, имеются средства запроса о конкретных возможностях/функциях библиотеки.
2.1. Структура библиотек
Библиотеки реализованы в виде набора уровней.
Компонент платформы содержит интерфейс к таким платформо-специфичным службам, как файловый ввод/вывод, управление памятью, базовые типы данных и их связь с абстрактными типами, сообщения об ошибках, транспортные службы, службы имен, безопасности и управления обработкой.
2.2. Локализация библиотек
Библиотеки SYBASE поддерживают локализацию POSIX (IEEE Portable Operating System Interface for Computing Environments) и используют информацию о наборе символов, национальном языке, форматах чисел, форматах валюты, форматах даты/времени.
В библиотеках SYBASE информация о локализации используется на уровнях контекста (приложения), соединения или элемента данных, причем элемент данных может быть колонкой, параметром процедуры или сообщения. Локализация наследуется с верхнего уровня на нижний, если явно не задано противное.
Для поддержки локализации библиотеки SYBASE:
- не содержат внутри текстов сообщений. Сообщения находятся во внешних файлах;
- не ограничивают символ одним байтом;
- не предполагают, что строки заканчиваются нулем;
- не содержат внутри информацию о форматах чисел, дат, валюты, а используют локализационную информацию.
3. Структура SYBASE System 10
Ряд компонентов разработан в соответствии со стандартами ISO. Остальные компоненты отвечают промышленным стандартам.
Протокольные службы, службы имен, безопасности и управления соответствуют международному стандарту открытых систем ISO-7498.
Управление транзакциями разработано в соответствии со стандартами
ISO-9804CCR и X/Open Distributed Transaction Processing.
Службы приложений и интерфейсы прикладных программ SYBASE являются сейчас промышленными стандартами.
3.1. Протокольные службы
Протокольные службы SYBASE реализуют следующие уровни базовой модели ISO: транспортный, сессионный, презентационный и прикладной.
Для транспортного уровня компоненты SYBASE предоставляют интерфейс к соответствующим службам платформы/производителя.
Среди используемых транспортов - TCP/IP, SPX/IPX, OSI Transport, Named pipes, DECNet, Apple Data Stream Protocol.
Для каждого из этих транспортов SYBASE поддерживает множество интерфейсов. Например, для TCP/IP поддерживается BSD sockets, Windows Sockets, SVR4 TLI, X/Open XTI, VMS QIO, Novell LAN Workplace, PC/TCP и другие.
Архитектура SYBASE позволяет как приложению-клиенту, так и серверу одновременно работать с несколькими интерфейсами. Например, SQL Server для Novell NetWare может одновременно допускать соединения через SPX и TCP/IP.
Для уровня приложений протокольные службы содержат лишь его части, например, службы асинхронного уведомления клиента о событиях на сервере. Другие части реализуются в API и самих прикладных программах.
Протокольные службы SYBASE используют протокол TDS (Tabular Data Stream) для коммуникации между клиентами и серверами.
3.2. Службы имен
Службы имен определяют механизмы именования и адресации, как описано в части 3 ISO-7498, для идентификации и обнаружения объектов в открытой системе.
В компонентах SYBASE адресация используется на каждом уровне, причем уровни не накладывают ограничений на формат адресной информации и используют только нужную на данном уровне адресную информацию. Остальная адресная информация проходит через уровень без модификации.
Единственная служба имен, доступная прикладной программе,- это отображение из каталога различаемых имен в адресную информацию, необходимую для различных уровней компонентов SYBASE, как это определено в рекомендации CCITT X.500. Прикладная программа всегда использует имена для идентификации своих _коммуникационных партнеров_.
Служба имен не заменяет каталог имен, а обеспечивает к нему интерфейс на различных платформах.
Например, на платформе PC-клиента под управлением MS-Windows в соответствующем INI-файле находятся символические имена приложений-серверов со спецификациями сетевых интерфейсов и адресной информацией.
На UNIX-платформах каталог имен находится в текстовом файле, а под управлением Novell NetWare используются Bindary services.
3.3. Службы управления
Службы управления состоят из управления неисправностями, учетом, конфигурацией, производительностью и безопасностью. Система SYBASE предоставляет информацию для работы инструментов управления через интерфейсы (API) Open Client и Open Server.
3.3.1. Управление неисправностями
Управление неисправностями в открытой системе состоит из их обнаружения, изоляции и исправления.
SYBASE SQL Server поддерживает программно зеркальный журнал и зеркальную базу данных.
Все продукты SYBASE используют механизм сообщений об ошибках. В библиотеках этот механизм реализован через callback-модель.
3.3.2. Управление конфигурацией
Управление конфигурацией в SYBASE содержит возможности:
- установки параметров (ресурсы, версии библиотек и TDS, поддерживаемые команды и типы ответов);
- ассоциирования имен с управляемыми объектами;
- получения сигналов от серверов.
3.3.3. Инструменты управления SQL-сервером
Для анализа функционирования сервера на ЭВМ-клиенте SYBASE предоставляет компонент SQL Monitor, представляющий в графическом виде данные по загрузке, вводу/выводу, интенсивности транзакций, использованию памяти сервером.
Для управления сервером предназначен набор хранимых процедур и set-команд. Компонент SYBASE SQL Server Manager выполняет те же функции, но имеет оконный интерфейс.
Компонент SYBASE Audit Server записывает информацию о действиях пользователей в специальную базу данных, доступную для анализа.
3.4. Управление транзакциями
Архитектура системы 10 SYBASE поддерживает как синхронную, так и асинхронную модель управления транзакциями. Модель выбирается в соответствии с требованиями предметной области.
3.4.1. Синхронная модель
Синхронная модель в системе 10 SYBASE определяется моделью X/Open DTP (Distributed Transaction Processing) и использует службы 2PC (Two Phase Commit) в соответствии с ISO-9804CCR. Все ресурсы, используемые в транзакции, остаются заблокированными до тех пор, пока все компоненты транзакции не будут успешно атомарно завершены, либо все отменены.
В модели участвуют три компонента:
- прикладная программа (AP), определяющая границы и содержание транзакций;
- менеджеры ресурсов (RM), в качестве которых могут выступать SYBASE SQL Server и приложения Open Server;
- монитор транзакций (TM), который присваивает идентификаторы транзакциями, контролирует их выполнение, координирует несколько RM и управляет завершением или откатом транзакций.
X/Open определяет интерфейсы между TM и RM, называемый XA-интерфейсом, а также между AP и TM, называемый TX-интерфейсом. X/Open не определяет интерфейс между AP и RM. Для SYBASE это интерфейс Open Client - CT-Library.
В свою очередь, XA-интерфейс строится на основе Client-Library (для SYBASE это Open Client CT-Library):
XA-Library поддерживает, в частности, мониторы транзакций IBM CICS/6000, Encina, Tuxedo, TopenD.
При использовании DB-Library доступен более простой интерфейс к службе 2PC для SYBASE SQL Server. При этом не требуется отдельный монитор транзакций.
3.4.2. Асинхронная модель
Асинхронная модель в SYBASE использует тиражирование (репликацию) данных для распространения копий требуемых данных между серверами БД. База данных может существовать в нескольких местах сети. Одна копия данных выбирается как первичная, остальные как вторичные. Обновления осуществляются над первичными данными или асинхронно над вторичными данными. В одной базе данных (и даже в одной таблице) могут одновременно присутствовать как первичные, так и вторичные данные.
Асинхронная модель не требует одновременной блокировки всех копий данных.
Для реализации асинхронной модели в системе 10 SYBASE имеются два основных компонента - Replication Server (RS) и Log Transfer Manager (LTM).
Основные функции репликационного сервера SYBASE:
- тиражировать данные и вызовы хранимых процедур в удаленные узлы;
- создавать подсписки на строки для тиражирования;
- инициализировать тиражируемые таблицы;
- непрерывно распространять обновления первичных таблиц в удаленные узлы;
- распространять тиражируемые хранимые процедуры, при помощи которых клиенты в удаленных узлах асинхронно обновляют первичные данные;
- обеспечивать парольную защиту при тиражировании;
- записывать неуспешные транзакции в специальный журнал.
LTM передает в RS информацию о завершенных транзакциях и вызовах процедур, которые требуют тиражирования. Интерфейс между LTM и RS открыт.
Прикладная программа-клиент взаимодействует с RS через интерфейс SYBASE Open Client с использованием RCL (Replication Command Language).
Путь тиражирования данных выглядит так:
Приложение изменяет первичную копию данных. СУБД выполняет операцию и заносит завершенную успешно транзакцию в журнал. LTM передает измененные данные в RS. RS в соответствии с запрограммированной конфигурацией ставит данные в очередь и по линии связи отправляет транзакции целевым RS. Целевой RS принимает транзакции и выполняет операции на целевой СУБД. (При нахождении обеих СУБД в одной локальной сети не требуется второй RS.)
В этой схеме СУБД1 и СУБД2 - не обязательно SYBASE SQL Server. СУБД, хранящая вторичные данные, может быть любой СУБД, доступной через шлюз, в том числе Oracle, Informix, Ingres, DB2, RMS, ISAM или даже приложение Open Server.
СУБД, хранящая первичные данные, требует наличия для нее LTM. Сейчас LTM имеется для SYBASE SQL Server и Oracle. Готовятся LTM и для других СУБД. Интерфейс LTM открыт, и возможно создание LTM для нестандартных источников данных.
Тиражирование данных может использоваться, например:
- для разгрузки OLTP-сервера от сложных запросов принятия решений;
- для консолидации данных подразделений в центре;
- для обмена данными по медленным/ненадежным линиям связи;
- для поддержания резервной базы данных;
- для построения сети равноправных узлов, обменивающихся данными.
3.5. Интерфейсы прикладных программ
Программные интерфейсы ко всем службам, предоставляемым архитектурой SYBASE, реализуются через API Open Client и Open Server. Никакие другие интерфейсы к другим уровням архитектуры недоступны, что соответствует концепции уровней открытых систем.
Программные интерфейсы Open Client/Server независимы от платформы. Среди поддерживаемых платформ DOS, Windows, MVS/CICS, Macintosh, NetWare, Windows NT, OS/2, UNIX (все главные варианты), VMS и OpenVMS.
При разработке приложений серверного типа используется Open Server с библиотекой Server-Library. Это API и набор стандартных блоков для построения приложений может использоваться, например, для доступа к нестандартному оборудованию или для построения шлюзов.
При разработке приложений-клиентов на языке 3-го поколения используются библиотеки c Си-интерфейсом (DB-Library, CT-Library или, только под Windows, ODBC), а также Embedded SQL.
3.5.1. DB-Library и CT-Library
DB-Library использовалась для разработки приложений в предыдущих версиях системы SYBASE и стала промышленным стандартом. System 10 обеспечивает совместимость с DB-Library. В DB-Library имеется интерфейс для 2PC (Two Phase Commit).
CT-Library впервые появилась в System 10. Она используется в новых приложениях, в том числе для написания приложений с использованием асинхронной обработки, возможностями распределенной обработки, одновременным использованием Open Client и Open Server.
Если приложение, использующее CT-Library, участвует в распределенной транзакции, то оно косвенно использует XA-интерфейс SQL-сервера.
3.5.2. ODBC интерфейс
Спецификация ODBC фирмы Microsoft определяет универсальный промежуточный интерфейс между приложениями-клиентами в среде MS-Windows и различными реляционными базами данных.
ODBC-драйвер для SYBASE выпускают несколько фирм, в том числе INTERSOLV. Такой драйвер может входить в состав SYBASE Open Client.
Большинство приложений, связанных с обработкой данных в среде MS-Windows, поддерживают ODBC-интерфейс или DB-Library и, соответственно, имеют доступ к СУБД SYBASE. Среди таких приложений Microsoft Excel, Word, Access, Visual Basic. ODBC интерфейс и соответствующий API использован при разрработке генератора отчетов QPM фирмы АлконСофт.
3.5.3. Embedded SQL
SYBASE Embedded SQL препроцессор позволяет программисту использовать ANSI-операторы SQL в тексте программы на Си и Коболе. Препроцессор соответствует стандарту ANSI SQL92/ISO/IEC SQL2 entry level. Имеется частичная поддержка промежуточной и полной версии SQL2, включая динамический SQL.
Для оптимизации статических запросов SQL препроцессор может генерировать хранимые процедуры.
Препроцессор интегрирован с XA-интерфейсом, поддерживаемым в Sybase System 10.
3.6. Службы приложений
В составе SYBASE System 10 есть следующие основные компоненты:
- реляционная СУБД SYBASE SQL Server и Secure SQL Server;
- сервер загрузки/выгрузки данных SYBASE Backup Server;
- репликационный сервер SYBASE Replication Server;
- шлюзы в другие СУБД OmniSQL Gateway, Net-Gateway, MDI Gateway;
- средство организации распределенной обработки OmniSQL Server;
- средства параллельной обработки SYBASE Navigation Server;
- средства мониторинга и диагностики SYBASE SQL Monitor;
- средства управления SA Companion, Audit Server;
- SQL-отладчик SYBASE SQL Debug;
- средства клиента для загрузки и выдачи интерактивных запросов.
Эти приложения реализованы и используют интерфейсы Open Client/Server. Остановимся на еще не рассмотренных ранее компонентах.
3.6.1. Шлюзы в другие СУБД
Работа Oracle, Informix, Ingres, DB2, RMS, ISAM в распределенной среде организуется через модули доступа SYBASE OmniSQL Gateway. При этом приложение работает с интерфейсом OmniSQL Server в точности так же, как с Sybase SQL Server, и использует Transact-SQL - диалект SQL, принятый Sybase. Модули доступа OmniSQL выполняют трансляцию SQL в диалекты соответствующего производителя БД.
Для работы с хранилищами данных на _больших_ ЭВМ (mainframe) SYBASE поставляет продукцию фирмы Micro Decisionware (Sybase купила фирму MDI в начале 1994 года). MDI предоставляет шлюзы в DB2, SQL/DS, SQL/400, в том числе через IBM DRDA-интерфейс.
3.6.2. Организация распределенной обработки
Для организации распределенной обработки как узлов SYBASE SQL Server, так и других СУБД из числа поддерживаемых шлюзами SYBASE, используется компонент OmniSQL Server с соответствующими модулями доступа.
OmniSQL Server содержит синтаксический анализатор Transact-SQL (диалекта SQL SYBASE), интеллектуальный оптимизатор распределенных запросов и глобальный каталог.
OmniSQL Server производит распределенные соединения таблиц, хранит и выполняет глобальные хранимые процедуры.
4. Средства разработки приложений 4GL
До 1994 года для разработки приложений, работающих с SQL Server, использовались, в основном, разработки третьих фирм. Фирма SYBASE поставляла среду разработки APT Workbench с языком 4GL, в которой разрабатываются переносимые приложения для DOS и UNIX клиентов.
Разработанные с помощью APT приложения в виде run-time модулей могут исполняться под управлением MS-DOS на PC, начиная с 386SX, а также под UNIX-ом. Приложения имеют оконный интерфейс в алфавитно-цифровом режиме.
Для разработки приложений под UNIX фирма SYBASE поставляет продукт Gain Momentum. Это мощное объектно-ориентированное средство разработки 4GL с графическим интерфейсом и средствами multimedia.
Для разработки в среде Windows около 30% пользователей SYBASE SQL Server используют продукты фирмы Powersoft, в том числе PowerBuilder. Небольшая часть пользователей применяют Visual Basic, C++, MS Access и другие продукты.
PowerBuilder имеет управляющие элементы (окна данных), тесно связанные с СУБД и обладающие развитой внутренней функциональностью. В версии 4.0 поддерживается OLE2 и имеется выход в Microsoft Mail. Помимо экранных форм, в приложения можно встраивать сложные отчеты.
В конце 1994 года ситуация со средствами разработки изменилась. Фирма Powersoft выпустила новую версию PowerBuilder 4.0 для Windows и объявила о своих планах выпустить этот популярный инструмент на Mac- и UNIX-платформах. Вскоре Powersoft был куплен фирмой SYBASE, что дало пользователям единого поставщика программных средств.
В то же время PowerBuilder остается популярным средством разработки приложений клиент-сервер и для других СУБД. Кроме SYBASE SQL Server, PowerBuilder работает с СУБД Oracle, Informix, DB2, Ingres и ODBC-источниками данных.