Грайфер Александр Юльевич - эксперт фирмы "МИМ-Технология"
Марьин Олег Павлович - директор ООО "МИМ-Технология"
Поднос Владимир Григорьевич - менеджер по продажам НПКК "ТОР"
Velosis Database Server: универсальность и эффективность
Мир реальных автоматизированных систем - это мир компромиссов. Эффективность вступает в противоречие с открытостью, масштабируемость часто требует ориентации на одного конкретного поставщика СУБД и т.д. Принятие удачных проектных решений в настоящее время является, несмотря на обилие различных идеологий и методологий, искусством нахождения баланса требований к системе. В задачу доклада, однако, не входит подробный анализ данного аспекта. Цель доклада - представить читателю класс инструментальных средств, которые можно использовать для создания автоматизированных информационных систем и их отдельных подсистем, отвечающих особым требованиям к эффективности при сохранении высокой степени открытости и масштабируемости. К таким системам с полным основанием можно отнести приложения из следующих областей:
- Интернет/Интранет
- Компьютерная телефония
- Программное обеспечение для торговли
- Складское программное обеспечение
- Мультимедиа
- Разработка Hardware и Software
- Наука и медицина
- Обработка документов и графики
- Mechanical and electrical engineering/control
- Системы реального времени/Встроенные системы
- Системы для мобильных компьютеров
- Управление финансами и финансовый анализ
В центре описываемого класса инструментальных средств, удовлетворяющих вышеприведенному критерию, находятся высокоэффективные СУБД фирмы Raima Corporation , а именно Raima Database Manager (ранее db_Vista) и Velocis (клиент-сервер). Эти СУБД существуют для широкого класса операционных сред на различных платформах - от IBM PC до больших универсальных компьютеров. Ориентированные на использование в основном высококвалифицированными программистами на языке C/C++, они сочетают надежность и гибкость, присущую мощным системам типа Oracle, с минимальными требованиями к аппаратуре. Эти особенности RDM и Velocis выгодно отличают их от аналогичных инструментальных СУБД для встраиваемых систем, находящих широкое применение в АСУ, телефонии, а также в банковских приложениях.
Изложенные в докладе идеи и утверждения не трактуются авторами как истина в последней инстанции, а лишь отражают теоретический и практический опыт авторов и их коллег и имеют соответствующие границы применимости.
Историческая справка: что такое Raima Corp., ее основные продукты и стратегия
Raima Corporation, - штаб-квартира в Сиэтле, штат Вашингтон - ведущий разработчик высокоэффективных инструментов для создания баз данных, ориентированных на иностранных и отечественных потребителей. За последние 10 лет более 13000 компаний - разработчиков программного обеспечения и профессиональных разработчиков баз данных использовали СУБД фирмы Raima для своих коммерческих приложений и внутренних проектов. Опираясь на обширный опыт в области быстродействующих БД, Raima предлагает широкий спектр продуктов и услуг, которые обеспечивают пользователю гибкость в работе и возможность неограниченной оптимизации. Продукты Raim-ы были использованы для разработки профессиональных баз данных по всему миру в широчайшем спектре коммерческих и деловых приложений. Новое поколение Raima ANSI SQL - Velocis Database Server, предназначенный для разработки клиент-серверных приложений, пользуется впечатляющим успехом по всему миру. Velocis Database Server (известный прежде как Raima Database Server) предлагает новое поколение характеристик и технологических решений, ориентированных на обеспечение высокой производительности и облегчающих решение задач, возникающих в процессе разработки и эксплуатации клиент-серверных приложений. Raima была основана в 1982 году и выпустила СУБД db_Vista в 1984 году. Быстрая, нетребовательная в смысле трудозатрат СУБД db_Vista быстро завоевала популярность среди профессиональных C -программистов. Особенно популярна эта программа была (и есть!) в нашей стране - высококвалифицированные разработчики, не жалевшие времени и сил для создания действительно эффективных и переносимых приложений, с удовольствием использовали этот продукт.
Таким образом стратегически фирма Raima Corp. ориентируется на профессиональных разработчиков, предлагая им эффективную СУБД, которую можно встраивать в создаваемые приложения, и которая удовлетворяет их потребности лучше, чем СУБД, ориентированные на другие рынки.
Обратной стороной медали при использовании СУБД, ориентированных только на высокоуровневый и непроцедурный SQL-интерфейс (даже с процедурными расширениями), является необходимость укладывать все многообразие ситуаций в прокрустово ложе SQL-интерфейса. Недаром среди программистов ходят легенды о том, как незаметное с виду изменение SQL-оператора приводило к значительному изменению скорости его выполнения. Или чего стоят впечатляющие статьи в профессиональных журналах, рассматривающие способы расчленения одного сложного SQL-запроса на процедурную последовательность менее сложных запросов, дающие более чем ощутимый выигрыш в скорости исполнения. Можно, конечно, сослаться на существующие до сих пор проблемы при оптимизации SQL-запросов или сказать, что многое изменилось в лучшую сторону. И все-таки нам кажется, что необходимо иметь несколько согласованных друг с другом инструментов, как процедурных так и непроцедурных, как ориентированных на работу с множеством записей, так и рассчитанных на последовательную работу с одной записью, как высокоуровневых, так и низкоуровневых, и применять их сообразно поставленной задаче и с учетом предъявленных к ней требований.
На физическом уровне RDM и Velocis основываются на комбинации двух эффективных методов доступа - индексного метода доступа с использованием B-деревьев и прямого метода доступа с использованием двунаправленных списков. На концептуальном уровне есть возможность применения также двух различных моделей данных: реляционной и сетевой. Причем тут нет, как можно было бы предположить, прямого соответствия между моделями и методами доступа. Например, SQL-сервер Velocis, являющийся по сути реляционной системой, может использовать для реализации операции соединения как индексный метод доступа, так и метод доступа по прямым ссылкам (предопределенные соединения), дающий значительное увеличение скорости выполнения данной операции. Одновременно доступ к той же самой базе данных может быть организован с помощью низкоуровневых навигационных операций сетевой модели данных, причем неважно как организованы связи - методом прямых ссылок или с помощью индексов. Это связано с тем неоспоримым теоретическим фактом, что две модели данных: сетевая и реляционная, в определенном смысле эквивалентны. Такова уникальная архитектура рассматриваемых СУБД. В документации по RDM и Velocis описанная выше возможность комбинирования двух моделей отражается в термине комбинированная модель данных .
Следует также отметить особую близость сетевой модели данных, используемой в RDM и Velocis, к моделям объектно-ориентированных СУБД (ООСУБД). Для RDM и Velocis существуют объектно-ориентированные средства разработки, приближающие эти СУБД по некоторым параметрам к ООСУБД. Это Raima Object Manager фирмы Raima Corp. и система быстрой разработки приложений (RAD-rapid application development) МИМ-Технология, разработанная специалистами российской компании "МИМ-Технология".
Raima Object Manager существенно облегчает разработку программного обеспечения с использованием низкоуровнего интерфейса. Он дает возможность описывать сложные объекты, состоящие из более простых, например, Операция->Документ->Проводка, и оперировать этим сконструированным объектом как единым целым с помощью набора согласованных функций-методов.
RAD МИМ-Технология, основанная на идеях непроцедурного описания приложений, сводит к минимуму необходимость написания процедур, реализующих бизнес-правила, доступ к базе данных и интерфейс пользователя.
Историческая справка: что такое МИМ-Технология, ее основные продукты и стратегия
МИМ-Технология (1989 года рождения) - это разработанная одноименной фирмой базовая объектно-ориентированная RAD-технология, которая была использована для создания семейства банковских продуктов под маркой МИМ-БАНК, а также других офисных прикладных систем. С 1992 по 1995 года основными организационными носителями МИМ-Технологии и обладателями права на распространение банковских продуктов серии МИМ были ЦИС "ТАКТ" и УНТЦ "Юниор". В конце 1995 года было решено объединить усилия обеих организаций для дальнейшего развития МИМ-Технологии и системы МИМ-БАНК и создать новую организационную структуру - ООО "МИМ-Технология". А к сегодняшнему дню фирма "МИМ-Технология" является закрытым акционерным обществом (ЗАО "МИМ-Технология").
Наши клиенты
Центральный банк РФ, Сбербанк России , БАНК МЕНАТЕП, Промстройбанк России, АБ "Мосбизнесбанк", МКБ "Связь-банк", КБ "Еврофинанс", КБ "Руссобанк", Уралпромстройбанк, Свердлсоцбанк, Национальный банк республики Таджикистан, КБ "Национальный космический банк", Белагропромбанк, Белпромстройбанк и многие другие банки, инвестиционные компании и организации, в числе которых Фирмы "Мосстройлицензия", "Белгородский молочный комбинат", "Wesotra" (Германия), имеющая филиалы по всей Германии и свое представительство в России, нефтяные компании "Лукойл", "Юкос" и другие фирмы используют МИМ-Технологию как инструмент, наиболее удовлетворяющий их потребности и запросы, для создания своих прикладных систем.
Наши достижения
В 1996 году журнал "КомпьюЛог" проводил конкурс "КомпьюЛог - Экономика-96", на котором наша RAD-система заняла первое место в разделе "Инструментальные системы разработки".
Среди других интересных особенностей продуктов фирмы Raima corp. стоит выделить многоплатформенность. Velocis позволяет строить сложные системы, интегрированные в корпоративные и глобальные сети (Intranet и Internet), в то же время совместимые с локальными базами на портативных компьютерах класса notebook. Следующая таблица дает представление о поддерживаемых платформах.
upported OS - Platforms | Velocis Server | Velocis Client |
Windows 3.x | no | yes |
Win 95/98 | yes | yes yes |
Win NT - Intel | yes | yes yes |
Win NT - Alpha | yes | yes yes |
DOS | no | yes yes |
Macintosh | no | yes** |
Netware 3, 4 | yes | yes yes |
AIX | yes | yes yes |
HP-UX | yes | yes yes |
SCO | yes | yes yes |
Solaris | yes | yes yes |
BSD/OS | yes | yes no |
UnixWare | yes | yes no |
QNX | yes | yes yes |
Linux | yes | yes yes |
Network Protocols Supported Velocis Server Velocis Client RDM++
TCP/IP, SPX, Net BIOS, LAN Server, Local Named Pipes, Shared Memory Based Transport
Теперь рассмотрим варианты применения этих технологий. Как СУБД, имеющие в своем составе SQL-сервер, они могут быть использованы аналогично другим СУБД. Можно применять любые клиентские программы, работающие через "родной" SQL-интерфейс или стандартный ODBC-интерфейс, и соответствующие средства визуального проектирования: Visual Basic, Delphi, Visual C++ и другие. Определенная, довольно значительная часть проекта информационной системы может быть выполнена в указанной технологии и она будет настолько переносима (и независима от SQL-сервера), насколько это вообще сейчас возможно. Что касается ее эффективности, то, несмотря на известные проблемы с ODBC в этой сфере, настройка физического уровня рассматриваемых СУБД (предопределенные соединения) позволяет намного повысить эффективность обработки запросов. Имеется возможность написания хранимых процедур и триггеров (на языке С), использования аппарата вызова удаленных процедур для написания серверов приложений. С другой стороны наиболее критичные процедуры можно запрограммировать с использованием низкоуровнего навигационного, значительно более эффективного интерфейса на языке C. Эта часть проекта будет также переносима, но уже только вместе с СУБД Velocis. Причем этот низкоуровневый процедурный интерфейс также реализован по принципу клиент-сервер, как и высокоуровневый в основном непроцедурный интерфейс. Комбинируя данные технологии можно достичь высокой степени эффективности, сохраняя необходимый уровень открытости, переносимости и масштабируемости.
Ниже на рисунке приводится примерная схема реализации АБС на базе сервера Velocis. Основные АРМы могут быть построены с использованием средств разработки клиентской части информационных систем: Visual C++, Visual Basic, Delphi и других. Для работы с сервером используются интерфейсы: OLE DB, SAG CLI, ODBC, d_ API.
Velocis System Features |
---|
- ANSI 89 SQL with Referential Integrity
- SQL Access Group Call Level Interface SQL C-API
- Low-level C-API
- Microsoft ODBC Level 1
- Transaction protection with roll forward recovery
- Server Extensions
- SQL & C stored procedures
- Triggers
- User Defined functions
- Interactive SQL utility
- 16- and 32-bit versions
|
- Cost-based query optimizer
- Server-enforced security
- Server-enforced declarative referential integrity
- Heterogeneous clients and servers
- Row or table-level locking
- Concurrency controls
- GUI database administration utility
- Administrative API
- Open RPC mechanism
- Comprehensive online documentation and help
- Standalone and multi-user configurations
|
Functions |
- 200 C -API functions for low-level database manipulation
- 77 SQL C-API functions for SQL processing
- 38 C-API functions for dictionary access
- 22 C-API Remote Procedure Call functions
- 39 C-API functions for administrative control
|
Для генерации отчетов могут применяться любые генераторы отчетов, работающие через ODBC интерфейс, или генераторы отчетов Report Writer и Report Analyst фирмы Raima Corp, работающие с базой напрямую.
Приложения, требующие эффективной реализации, могут быть запрограммированы с использованием низкоуровнего интерфейса d_ API.
db_Vista была достаточно известна в нашей стране в эпоху свободного обращения с чужой интеллектуальной собственностью. В настоящее время эта популярность несколько снизилась - что на фоне уверенного положения RDM и Velocis на международном рынке, где на них базируются множество коммерческих программных продуктов, представляется результатом недостаточной рекламы. Тем более интересно, что описываемые СУБД давно и успешно применяются в России несколькими фирмами разработчиками бизнес-приложений, в частности банковских автоматизированных систем. Одним из примеров является, система БАНК-МИМ, разработанная специалистами российской компании "МИМ-Технология" на базе RDM (в настоящее время происходит переход на Velocis). Опыт показывает, что RDM и Velocis вполне могут быть использованы как основа для построения АБС для средних и небольших корпоративных систем. Специфические проблемы, возникающие при автоматизации крупных предприятий - распределенность, большое количество пользователей, большие объемы информации, многообразие функций и подсистем, также могут быть решены с использованием данных СУБД и соответствующего программного обеспечения промежуточного уровня (middleware). При этом потребуются большие усилия и более тщательное планирование, но если какой-либо компонент АБС требует неординарной эффективности на обычной технике, то RDM и Velocis будут достойными кандидатами.
В заключение отметим, что при выборе СУБД и средств разработки для автоматизированных корпоративных систем или их отдельных компонентов в настоящее время разработчики в основном ориентируются на реляционные СУБД и соответствующие средства разработки, как бы считая их синонимом всего прогрессивного, что сейчас имеется в наличии: открытые системы, идеология "клиент-сервер" и т.д. Из сказанного следует, что многообразие систем не исчерпывается реляционными СУБД, имеются другие подходы и системы, во многих случаях более эффективные (и более дешевые) и не менее открытые, которые можно рассматривать как реальную альтернативу доминирующим в настоящее время коммерческим реляционным СУБД.
Грайфер Александр Юльевич - эксперт фирмы "МИМ-Технология",
Марьин Олег Павлович - директор ООО "МИМ-Технология",
Поднос Владимир Григорьевич - менеджер по продажам НПКК "ТОР".