Дмитрий Носов
Что такое M?
M - это интегрированная среда для разработки промышленных систем, рассчитанных на интенсивный доступ и обновление баз данных, позволяющая разработчикам создавать прикладные высокофункциональные и дешевые системы. M включает в себя язык программирования, подсистему управления базой данных, подсистему ввода-вывода и подсистему разделения времени. Разработчикам и конечным пользователям технология M предоставляет мощные средства обработки транзакций, графические интерфейсы пользователя, инструментальные средства, поддерживающие любые модели данных, средства проектирования прикладных систем, структурированный язык запросов (SQL), открытые интерфейсы прикладных программ (API) из M-среды вовне и наоборот и др.
M-системы исключительно легко развертываются и обладают отличным соотношением цены и производительности. Именно поэтому M процветает уже несколько десятилетий, несмотря на небольшую долю в общем объеме программных средств.
Разработчики M-приложений находятся в весьма завидной позиции, поскольку могут одновременно присутствовать на рынках и мелких, и средних, и больших систем. M-приложения всегда были конкурентоспособными на рынке средних многопользовательских систем благодаря своим хорошим характеристикам и низким ценам. Рынок больших систем очень требователен к эффективности, удобству доступа к данным и надежности, зачастую в сочетании с принципом “цена не имеет значения”. Но и здесь быстро меняющиеся условия бизнеса заставляют считаться с затратами. Разработчики прикладных M-систем успешно выполняют заказы организаций с ограниченным бюджетом, которые хотя и озабочены ценой, но тем не менее предъявляют высокие требования. M-технология дает разработчикам необходимую гибкость для удовлетворения меняющихся потребностей конечных пользователей, независимо от того, какого масштаба система им нужна.
Язык M. M - это гибкий и мощный процедурный язык, созданный для решения информационно-логических задач и управления базами данных. Он имеет простой и последовательный синтаксис и легко осваивается даже начинающими программистами.
В языке M существует единственный тип данных - строка символов переменной длины. Стандарт языка четко определяет, каким образом значение строки можно интерпретировать как число. В языке M есть два типа переменных: скалярные переменные и массивы. Скалярная переменная имеет имя и содержит данные. Массив имеет имя и индексы (которые могут быть как числами, так и строками), а данные могут храниться в каждом узле массива. Для сравнения скажем, что большинство других языков программирования поддерживают лишь целочисленные индексы. Переменные M создаются и уничтожаются динамически, и программисту не нужно заранее определять их размер или объявлять их в программе. Кроме того, использование строк для индексов массивов заставляет M автоматически сортировать их. Такая особенность M полностью исключает потребность в программах сортировки.
Язык M, как и многие более молодые языки программирования, имеет динамическую природу. Он позволяет без каких-либо ограничений использовать данные в качестве программного кода и наоборот. Это позволяет создавать гибкие инструментальные средства, управляемые данными.
Среда программирования M - типичный интерпретатор (даже для компилирующих реализаций), включающий сложные средства отладки, - позволяет программисту интерактивно прерывать выполнение M-кода, проверять значения и модифицировать локальные и глобальные переменные, запускать другие программы, а затем возобновлять выполнение отлаживаемой программы.
Популярная особенность языка M - возможность во время выполнения изменять символические имена и сам программный код. Это позволяет разрабатывать программы, которые могут динамически изменять свое поведение в зависимости от внешних условий.
M поощряет структурное и модульное программирование. Типичная коммерческая прикладная M-система состоит из многочисленных относительно маленьких подпрограмм (эквивалентных отдельно компилируемым модулям в других языках), которые могут быть вызваны по команде DO из любой прикладной программы. Технология связывания программ только в момент вызова является особенностью новых объектно-ориентированных языков. Она позволяет значительно уменьшить дублирование кода и сократить стоимость разработки.
База данных M. M - это единственный процедурный язык со встроенными командами и функциями управления базой данных, для которого существует международный стандарт, принятый ISO. Большинство систем управления реляционными БД поддерживают язык запросов SQL, но обычно не имеют других возможностей, которыми обладает M (таких, как ввод-вывод, интегрированный процедурный язык, инструментальные средства разработки программ, обработка ошибок и мобильность). Для того чтобы создать завершенный продукт, обладающий такими же возможностями, в большинстве SQL-систем приходится дополнительно использовать специфические немобильные инструменты.
M-программист не должен работать в рамках какой-либо частной модели данных (объектной, реляционной, иерархической или сетевой). Он обладает мощными и гибкими средствами для разработки такой логической структуры, которая наилучшим образом отвечает потребностям прикладной системы. Например, в России на M создана СУБД, основанная на мощной объектной модели данных, включающей в себя, как частный случай, расширенную реляционную модель.
Дисковое пространство, занимаемое M-массивами, используется очень эффективно. Распределение дисковой памяти производится во время выполнения. Администратору M-системы обычно не требуется вести работу по оптимизации базы данных и настройке ее параметров, что существенно упрощает эксплуатацию прикладных систем.
Организация ввода-вывода. Во многих языках для управления устройствами ввода-вывода программист вынужден писать программный код, зависящий от используемой базовой операционной системы. M-программисту для управления устройствами нужны всего лишь три команды, а реализации среды M отвечают за прозрачность всех деталей доступа к устройствам. Это позволяет использовать одни и те же программы в большинстве основных операционных систем без какой-либо модификации.
Средства разделения времени. M обеспечивает полнофункциональную среду разделения времени. Все коммерческие реализации поддерживают многопользовательские, многозадачные системы, в которых все приложения выполняются параллельными процессами. Все M-системы обеспечивают совместное использование структур данных (например, дисковых буферов, таблиц заданий и сетевых таблиц) различными процессами и совместный доступ к базе данных, а для системных работ (например, “демоны” записи, “сбор мусора”, журналирование и обслуживание сети) запускают фоновые процессы. Эти средства способны контролировать от десятков до нескольких тысяч терминалов, принтеров, модемов и дисковых файлов. Большинство коммерческих реализаций M включает в себя ряд системных средств, таких, как оперативное резервное копирование, специально разработанных для повышения надежности и обеспечения непрерывной работы прикладных систем.
Рынок M
Банки и финансы. Банковская сфера - лучший пример того, как разработчики прикладных M-систем выполняют требования высокой производительности, удобства доступа к данным и надежности. Основные прикладные системы Chase Manhattan, Citicorp, Bankers Trust, Lloyds Bank, Barclays Bank, Security Pacific Bank и др. созданы на основе технологии M.
В России банковские системы на основе этой технологии разрабатывают несколько фирм. Только одна из них установила свою систему в 25 отделениях “Альфа-банка” и в 40 отделениях банка “Менатеп”.
Промышленность. Компании Shell Oil, Chevron, Philips Petroleum, BP и Exxon развернули промышленные лабораторные системы, управленческие информационные системы и системы оптовой торговли в Соединенных Штатах, Европе, Южной Америке, на Ближнем и Дальнем Востоке. В Великобритании используются M-системы управления выпуском продукции и планирования поставок. M-система, построенная на принципах искусственного интеллекта, работает на нескольких крупных заводах во Франции, планируя выпуск продукции и заказ материалов.
На многих промышленных предприятиях России уже более двадцати лет используются разнообразные прикладные системы на M. Крупный производитель отделочных строительных материалов ОАО “Мосстройпластмасс” использует только M для всех приложений. Российские M-разработчики быстро откликнулись на возникший рынок корпоративных информационных систем. Примером полноценного корпоративного решения служит информационная система АО “Комитекс” (г. Сыктывкар).
Здравоохранение. M-технология используется в различных госпиталях, исследовательских институтах, клиниках и организациях здравоохранения всего мира. Госпиталь Brigham and Women’s в Бостоне имеет M-сеть персональных компьютеров, состоящую более чем из 4000 пользовательских машин и серверов.
Поликлиника Медицинского центра Управления делами Президента Российской Федерации использует информационную M-систему на 150 рабочих мест, в том числе удаленных. Эта система связана с Центральной клинической больницей и многочисленными медпунктами. Еще один российский пример - поликлиника № 2 Московского лечебно-санаторного объединения, в которой настоящая корпоративная система на M используется уже более 10 лет! Изменение кода этой крупной системы при ее переносе с СМ ЭВМ на современную платформу Sun+Solaris заняло около 20 минут.
Юриспруденция и документооборот. Швейцарское правительство использует M-систему, отслеживающую движение законопроектов в законодательных органах. Эта система также применяется швейцарскими вооруженными силами. Популярная в Соединенных Штатах юридическая система разработана компанией, которая использует только M. Две крупнейшие юридические фирмы лондонского Сити используют M для аналогичных систем.
M идеально подходит для ведения больших баз данных с текстовой информацией, поэтому ее используют музеи и многие библиотеки, такие, как Национальная медицинская библиотека Соединенных Штатов, библиотеки университетов Брюсселя, Антверпена, Эйндховена и Королевская библиотека Бельгии.
В Российском государственном технологическом университете (МАТИ) на основе технологии M была создана первая отечественная библиотечная система с интегрированным обслуживанием читателей.
Транспорт и связь. Телефонная справочная система в Ирландской Республике реализована на M. Корпорация Ireland Telecom решила выпустить эту систему на рынок, и Индонезия приобрела ее, чтобы использовать по всей стране.
В морском торговом порту города Находка работает M-сеть из 12 серверов и более 130 рабочих станций и терминалов. Крупная распределенная M-система используется на Северной железной дороге. Многие российские предприятия связи, в том числе такие крупные, как “Уралсвязьинформ” (Пермь) и “Яртелеком” (Ярославль), применяют M в качестве основной технологии.
Общественный сектор. Многие жители Соединенных Штатов, получив счет от местного налогового ведомства своего города или округа, могут проклинать M-систему. Популярный пакет для небольших и средних городов, который отслеживает налоговый статус всех видов собственности, находящихся в местной юрисдикции, разработан в среде M. Министерство связи Ирландии ведет M-базу данных, которая содержит сведения более чем о 5 млн. жителей. Выдача разрешений на работу в Великобритании и контроль за кредитными компаниями осуществляется M-системами.
Система “Выборы” для Московской городской избирательной комиссии, работавшая на парламентских выборах, выборах Президента России и мэра Москвы, была реализована на M, причем в рекордно короткие сроки: на разработку системы, включая полномасштабные испытания, потребовалось всего шесть недель. На M работают налоговые службы в Новгороде.
Уникальная территориально-распределенная система на M используется Комитетом по труду и занятости Волгоградской области. Очередная перепись населения в Белоруссии будет проводиться также с помощью M.
Торговля. Многие разработчики M-приложений, а также ряд крупных торговых компаний создали M-системы для кассового терминала. Например, компания Stewarts Ice Cream, владеющая несколькими сотнями торговых точек только в шт. Нью-Йорк, применяет исключительно M. Причем весь бюджет ее систем кассового терминала составляет менее 0,2% (!) от оборота. Это феноменальный результат по сравнению с ценами конкурирующих систем. M-система для магазинов по продаже кухонного оборудования, разработанная в Нидерландах, интегрирована с системой автоматизированного проектирования интерьера. M-системы для магазинов по продаже автомобилей применяются в Бельгии и Испании.
Несколько крупных универмагов в Москве и Екатеринбурге используют интегрированную М-систему. Корпорация “Ариэль”, торгующая трубами, заказала и развернула информационную систему на M.
Другие области применения. Большое туристическое агентство в Великобритании эксплуатирует глобальную сеть, связывающую отделения по всей стране, для планирования сложных туров, бронирования билетов и административных функций. Английский комитет по туризму использует M-систему для ведения базы данных по маркетингу, управления выпуском печатных материалов, а также для бухгалтерии. Сотни телевизионных станций в Соединенных Штатах используют M-системы для планирования программ передач, включая рекламу. На базе M-технологии существуют системы и для служб социальной поддержки, и для исследовательских институтов, и даже для ведения национальной коллекции юмористической литературы в Бельгии.
Несколько крупных гостиниц в Москве используют M-системы либо в виде интегрированных решений (например, гостиница “Заря”), либо в виде автономных модулей (например, полнофункциональная система бухгалтерского учета в гостинице “Украина”). На M ведут учет продуктов и делают калькуляцию комбинаты питания Белого Дома, Московской мэрии, Внешторгбанка, Большого Кремлевского дворца, Большого театра, рестораны “Арагви” и “Баку”.
Телефон ассоциации пользователей М-технологии в России - “ДИАМС-СОЮЗ”: (095) 915-2260.
К автору можно обратиться по адресу: informix@komitex.ru.