Введение

ГТ. M — это высокопроизводительный движок базы данных типа «ключ-значение», оптимизированный для обработки транзакций. (Этот тип также известен как "schema-less", "schema-free" или "NoSQL".) ГТ. M также является платформой для разработки приложений и компилятором языка M, соответствующего стандарту ISO, также известного как MUMPS. ГТ. M, аббревиатура от Greystone Technology M, была разработана компанией Greystone Technology Corp в 1980-х годах. Это реализация стандарта ANSI M для AIX и Linux. Помимо сохранения традиционных возможностей языка M, ГТ. M предлагает оптимизирующий компилятор, генерирующий объектный код, не требующий внутренних интерпретаторов во время выполнения. Движок базы данных, ставший открытым исходным кодом в 2000 году, поддерживается компанией FIS. ГТ. M используется в качестве серверной части банковского приложения FIS Profile и обеспечивает работу банков в Испании, Франции, Италии, Нидерландах, Румынии и Индии; Capital One 360 в США; Tangerine (Scotiabank) в Канаде; Atom Bank; Tandem Bank; Sainsbury's Bank; Scottish Widows и Barclays Direct в Великобритании. Он также используется как серверная часть с открытым исходным кодом для системы электронных медицинских карт WorldVistA и других систем ЭМК с открытым исходным кодом, таких как OpenVista от Medsphere. Компания Red Hat включила ГТ. M в список партнеров по разработке решений для здравоохранения с открытым исходным кодом. В настоящее время код ГТ. M состоит примерно из 2 миллионов строк.

Технический обзор

ГТ. M состоит из языковой подсистемы, подсистемы баз данных и утилитарных программ. Языковая подсистема и подсистема баз данных тесно интегрированы, однако каждая из них может использоваться независимо от другой. Языковая и база данных подсистемы используют общую организацию данных и систему типов.

Языковая подсистема

В отличие от базы данных, где глобальные переменные должны помещаться в блок базы данных, строки локальных переменных могут достигать 1 МБ. Среда выполнения GT.M обеспечивает динамическое выделение памяти со сборкой мусора. Количество локальных переменных и количество элементов в локальных переменных ограничено только объемом памяти, доступным процессу. Область видимости локальной переменной по умолчанию – время жизни процесса. Локальные переменные, созданные внутри подпрограмм с использованием команды New, имеют более узкую область видимости. Подпрограммы GT.M динамически компилируются и связываются для выполнения в адресном пространстве каждого процесса. За исключением 32-битной реализации GT.M для платформы x86 Linux, объектные модули также могут быть помещены в общие библиотеки с помощью стандартной команды ld, в этом случае используемая память совместно используется. Это важно, поскольку приложение, такое как VistA, содержит более 20 000 подпрограмм, чей скомпилированный объектный код превышает 200 МБ. В крупной больнице, использующей VistA, может одновременно выполняться несколько тысяч пользовательских процессов. За небольшим количеством исключений, GT.M включает в себя почти полную реализацию стандарта ISO M (в историческом плане также известного как MUMPS). В GT.M код M может свободно вызывать код C (или код на других языках с C-совместимым интерфейсом), а код C может свободно вызывать код M (поэтому программа верхнего уровня может быть написана на C). Например, это модуль GT.M в CPAN, m python для доступа из Python или EGTM для Erlang. Веб-сервисы, написанные на GT.M, могут быть развернуты под интернет-суперсервером, таким как inetd или xinetd. Веб-приложения могут использовать многоуровневое программное обеспечение, такое как EWD или CFMumps.

Лицензирование

На Linux на x86 64 и IA 32 (x86), а также на OpenVMS на Alpha/AXP, GT.M распространяется как свободное программное обеспечение с открытым исходным кодом (FOSS) на условиях GNU Affero General Public License, версия 3. На других платформах он доступен по коммерческим лицензиям.

Общие применения

ГТ. M преимущественно используется в сфере здравоохранения и финансовых услуг. Первое промышленное применение GT. M состоялось в 1986 году в Травматическом центре памяти Элвиса Пресли в Мемфисе, штат Теннесси. Благодаря FIS Profile, он обеспечивает работу банков в США, Канаде, Испании, Франции и Италии. SQL и ODBC доступ к базам данных GT. M предоставляется в виде отдельных коммерческих продуктов.