Спрос на мощные системы управления базами данных (СУБД) стремительно растет с каждым годом. Он связан с совершенствованием технологий обработки данных, появлением недорогих рабочих станций, усложнением инфраструктуры компаний, когда в условиях жесткой конкуренции вопрос о выживании нередко упирается в необходимость эффективно работающей информационной системы (ИС).
Все корпоративные информационные системы, предлагаемые на рынке, строятся на основе коммерческих СУБД. Можно, конечно, написать систему управления базой данных самому, что иногда делается для работы со сложно организованной информацией, но в большинстве коммерческих приложений используются готовые СУБД. Они надежны, проверены многолетним опытом эксплуатации, имеют много вспомогательных сервисных программ, а фирмы, их выпускающие, обеспечивают хорошее техническое сопровождение.
В последнее время максимальный спрос приходится на “тяжелые” СУБД, способные поддерживать архитектуру клиент-сервер. Эти СУБД используются при создании ИС масштаба предприятия, но с их помощью не всегда удается разработать эффективно работающую систему. В набирающих силу организациях растет число удаленных рабочих мест, увеличивается количество пользователей ИС, нередко организовывается (или по крайней мере планируется) выход в Internet. В такой ситуации возникает дисбаланс в распределении нагрузки между клиентскими местами и сервером базы. Информация может передаваться клиенту в виде большого массива избыточных данных и затем обрабатываться на конечном компьютере. При этом сильно возрастает объем данных, передаваемых по локальной сети, да и пользователю, если у него не очень мощный компьютер, приходится долго ждать ответа программы. Если же обработка и выделение нужной информации происходит на сервере, то это требует большой вычислительной мощности от самого сервера, и при значительном количестве клиентских мест он начинает “подтормаживать”, что также приводит к задержкам в работе.
Для решения этой проблемы была разработана трехзвенная архитектура, когда между клиентом и сервером организуется еще один уровень обработки данных, реализуемый с помощью так называемых мониторов транзакций, которые пытаются оптимизировать сетевой трафик, беря на себя поддержку ориентированной на обработку данных бизнес-логики приложения. Мониторы транзакций нередко устанавливаются на специально выделенных компьютерах, что позволяет сделать систему полностью платформно-независимой.
Трехзвенную архитектуру сегодня поддерживает большинство ведущих фирм-производителей СУБД. Однако здесь возникает проблема, типичная для индустрии программирования. Обычно новые издания сложных программных систем, на создание которых потрачены сотни человеко-лет, базируются преимущественно на программном коде старых версий. Сами производители часто заявляют, что в версии N+1 выловлен ряд старых ошибок. Добавляются новые возможности, но общая идеология системы, базовые алгоритмы, заложенные в ее основу, не меняются, оставаясь на уровне первых версий 5 - 10-летней давности. Это понятно - чтобы переписать большой программный комплекс с нуля, необходимы слишком большие инвестиции, тщательная обкатка, тестирование, а самое главное - время. Кроме того, надо организовать совместимость с предыдущими версиями, да еще при этом не отстать от конкурентов. Поэтому фирмы-производители наиболее известных СУБД просто не в состоянии принципиально изменять внутренние алгоритмы работы своих продуктов. Появление мониторов транзакций для систем, изначально не ориентированных на трехзвенную архитектуру, не снимает этих проблем. В ряде случаев удается достичь существенного повышения производительности, но при этом возникают значительные затраты на приобретение ПО и дополнительных мощных серверов.
К счастью, существуют системы обработки данных, в которые закладывались просто уникальные идеи. Их ценность в полной мере была осознана лишь спустя двадцать лет, когда стал стремительно расти спрос на клиент-серверные СУБД. Одной из таких систем была MUMPS. Первоначально, в конце 60-х годов, она представляла собой интегрированный комплекс из тесно связанных операционной среды, среды разработки приложений и многопользовательской СУБД с асимметричной структурой базы данных. Те, кто работал на советских СМ-1420, клонах американских PDP-11, наверняка помнят систему ДИАМС, аналог DSM-11 (Digital Standard MUMPS).
Многие программисты, наверное, удивятся, узнав, что третьим стандартизированным комитетом ANSI языком программирования (после Фортрана и Кобола) стал не Бейсик и не Си, а М-язык, входивший в состав MUMPS и первоначально зарегистрированный под именем этой системы. Это единственный процедурный язык, отвечающий стандартам ANSI и ISO и имеющий встроенные команды для работы с БД. Сегодня М-язык сильно развился, в частности, последние стандарты дополнились средствами обработки транзакций. Тем не менее сохраняется полная преемственность: многие приложения, написанные на этом языке 20 лет назад, успешно перенесены на новые аппаратные платформы практически без изменений, что прекрасно характеризует М-технологии с точки зрения защиты инвестиций в ПО.
Современная М-система включает в себя М-язык, постреляционную многомерную СУБД, многозадачную операционную среду, набор оригинальных сетевых технологий, поддержку гетерогенных сетей, платформно-независимые средства создания графического интерфейса MWAPI (M Windowing API), проектирования структуры баз данных и другие возможности.
Благодаря тому, что М-язык полностью отвечает стандарту ANSI, приложения, написанные на нем, можно легко переносить на другие платформы, конечно, при сохранении логической структуры БД. В М-язык входит всего 26 команд и 22 функции. Простой синтаксис позволяет легко осваивать язык, в то же время с его помощью можно создавать программы, реализующие бизнес-логику любой сложности. Во многих версиях М-систем поддерживается также вызов SQL-команд. Программный код, получаемый на основе М-языка, очень компактен, он в 2 - 10 раз меньше аналогичного кода, написанного на Си или Паскале. М-система включает в себя интерпретатор М-кода, поддерживается и возможность компиляции. Встроенный интерпретатор позволяет вносить изменения и дополнения в работающие программы без перезагрузки М-системы, что особенно важно при совершенствовании непрерывно работающих корпоративных комплексов.
Объем рынка М-технологий в 1996 г. составил более 2 млрд. долл. Самая крупная в мире информационная система в архитектуре клиент-сервер работает на базе М-технологии. Это объясняется, в первую очередь, очень высокой эффективностью обработки данных. Время реализации запроса к многогигабайтовым базам практически никогда не превышает 1 секунды, что достигается использованием уникальных запатентованных алгоритмов. При этом к оборудованию предъявляются минимальные требования. Для М-сервера достаточно компьютера с процессором Intel 486/Pentium и 8 - 16 Мб оперативной памяти. К такому серверу можно подключить около 50 клиентских мест, при этом время отклика базы (до 1 с) практически не зависит от ее объема! При увеличении числа пользователей роль играет только объем оперативной памяти сервера (от 20 до 300 Кб на рабочее место), которую можно легко наращивать, при этом логическую структуру базы или код приложения менять не требуется.
(продолжение следует)
Сергей Бобровский