Jump to content

ГТ.М

ГТ.М
Разработчик(и) ФИС
Первоначальный выпуск 1986 год ; 38 лет назад ( 1986 )
Стабильная версия
7.0-000 / 12 февраля 2021 г .; 3 года назад ( 12.02.2021 )
Репозиторий
  • [cvs://anonymous:@fis-gtm.cvs.sourceforge.net/cvsroot/fis-gtm fis-gtm .cvs .sourceforge .сеть /cvsroot /фис-gtm] Отредактируйте это в Викиданных
Написано в С , сборка , М
Операционная система Линукс , AIX
Тип База данных
Лицензия AGPLv3 , проприетарный
Веб-сайт исходная кузня .сеть /проекты /фис-gtm /

GT.M — это высокопроизводительный механизм базы данных «ключ-значение», оптимизированный для обработки транзакций . (Этот тип также называют «без схемы», «без схемы» или « NoSQL ».) GT.M также является платформой для разработки приложений и компилятором языка ISO стандарта M , также известного как MUMPS. .

GT.M, аббревиатура Greystone Technology M, была разработана Greystone Technology Corp в 1980-х годах. Это реализация стандарта ANSI M для AIX и Linux . Помимо сохранения традиционных особенностей M, GT.M также предлагает оптимизирующий компилятор , создающий объектный код, не требующий внутренних интерпретаторов во время выполнения.

Ядро базы данных, исходный код которого стал открытым в 2000 году. [ 1 ] поддерживается FIS . GT.M используется в качестве серверной части банковского приложения FIS Profile . [ 2 ] и он управляет банками в Испании , Франции , Италии , Нидерландах , Румынии и Индии ; Capital One 360 ​​в США; Tangerine (Scotiabank) в Канаде; Атом Банк ; [ 3 ] Тандем Банк ; Банк Сейнсбери ; [ 4 ] Scottish Widows и Barclays Direct в Великобритании. [ 5 ] Он также используется в качестве серверной части с открытым исходным кодом для системы электронных медицинских карт WorldVistA и других электронных медицинских записей с открытым исходным кодом, таких как OpenVista от Medsphere. [ 6 ] Она указана в качестве партнера Red Hat по решениям для здравоохранения с открытым исходным кодом . [ 7 ] Сегодня он состоит примерно из 2 миллионов строк кода. [ нужно обновить? ]

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

[ редактировать ]

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

Организация и типизация данных

[ редактировать ]

Как и MUMPS, GT.M не имеет реального представления о различных типах данных, хотя строки (не полностью числовые) необходимо заключать в кавычки, чтобы отличать их от переменных. Числа можно рассматривать как строки цифр, а строки можно рассматривать как числа с помощью числовых операторов (принудительные, в терминологии MUMPS). Данные обрабатываются на основе контекста и правил GT.M: 1+"42" дает результат 43, первый персонаж 43 является 4, и 20+"30 DUCKS" является 50 (поскольку нечисловые символы отбрасываются во время числовых операций). [ 8 ]

Существует только одна структура данных — многомерные разреженные массивы (узлы «ключ-значение», поддеревья и ассоциативная память — все это одинаково допустимые описания) с числом индексов до 32. Скаляр можно рассматривать как элемент массива с нулевыми индексами. Узлы с различным количеством индексов (включая один узел без индексов) могут свободно сосуществовать в одном массиве. Например, если кто-то хочет представить национальные столицы Соединенных Штатов :

Set Capital("United States")="Washington"
Set Capital("United States",1774,1776)="Philadelphia"
Set Capital("United States",1776,1777)="Baltimore"

Переменные создаются по требованию при первом назначении. Таким образом, первая команда Set выше создаст переменную Capital. Переменные имеют область действия в языке и называются локальными переменными . Доступ к базе данных выглядит как доступ к массиву, например:

Set ^Capital("United States")="Washington"

но каретка (^) означает, что это доступ к базе данных. Переменные, используемые для доступа к базе данных, имеют единую глобальную область действия и, конечно же, сохраняются и совместно используются процессами. Их называют глобальными переменными . Важны первые 31 символ имени переменной.

Команды Kill и ZKill используются для удаления поддеревьев значений.

GT.M использует Unicode ( ISO/IEC-10646 ) для поддержки международного набора символов.

Подсистема базы данных

[ редактировать ]

Логическая база данных процесса GT.M состоит из одного или нескольких пространств имен глобальных переменных , каждое из которых состоит из неограниченного числа глобальных переменных. Для каждого пространства имен глобальных переменных глобальный каталог сопоставляет глобальные переменные с файлами базы данных, где они фактически находятся. В одном файле базы данных может поместиться неограниченное количество глобальных переменных; глобальная переменная должна помещаться в один файл базы данных.

Файл базы данных может содержать до 224 миллионов (276 168 704) блоков базы данных. Блок базы данных кратен 512 байтам, максимальный размер — 65 024 байта. Обычно используемые размеры блоков составляют 4 КБ, 8 КБ и 16 КБ, поэтому при размере блока 8 КБ отдельная глобальная переменная может вырасти до 1792 ГБ. Узел глобальной переменной (глобальная переменная, индексы плюс значение) должен помещаться в один блок базы данных, и каждый блок имеет служебные данные размером 16 байт. Итак, самый большой узел, который поместится в базу данных с размером блока 4 КБ, составляет 4080 байт. Ключ (глобальная переменная плюс индексы) может иметь длину до 255 байт.

Ядро базы данных не имеет демонов, и процессы, обращающиеся к базе данных, работают с обычными идентификаторами пользователей и групп — процесс имеет доступ к файлу базы данных тогда и только тогда, когда право собственности и разрешения этого файла базы данных (плюс любое многоуровневое управление доступом, такое как SELinux ) разрешают доступ. . Каждый процесс имеет в своем адресном пространстве всю логику, необходимую для управления базой данных, и процессы взаимодействуют друг с другом для управления файлами базы данных. Когда файл базы данных ведется в журнале, обновления записываются в файлы журнала перед записью в файлы базы данных, а в случае сбоя системы файлы базы данных можно восстановить из файлов журнала.

Ядро базы данных также поддерживает обработку транзакций . Итак, такой код:

TStart ()
 Set ^Capital("France")="Paris"
 Set ^Country("Paris")="France"
TCommit

реализует транзакцию ACID . GT.M использует оптимистичный контроль параллелизма для управления транзакциями.

Архитектура подключаемых модулей позволяет шифровать базу данных для защиты хранящихся данных. GT.M распространяется с эталонным плагином, использующим GnuPG .

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

[ редактировать ]

В отличие от базы данных, где узлы глобальных переменных должны помещаться в блок базы данных, строки локальных переменных могут вырасти до 1 МБ. Среда выполнения GT.M обеспечивает динамическое распределение памяти со сборкой мусора. Количество локальных переменных и количество узлов в локальных переменных ограничено только объемом памяти, доступной процессу. Областью действия локальной переменной по умолчанию является время жизни процесса. Локальные переменные, созданные в подпрограммах с помощью команды «Создать», имеют более ограниченную область действия.

Подпрограммы GT.M динамически компилируются и компонуются для выполнения в адресном пространстве каждого процесса. За исключением 32-битной реализации GT.M для платформы Linux x86, объектные модули также можно размещать в разделяемых библиотеках со стандартом ld команда, и в этом случае используемая память является общей. Это важно, поскольку такое приложение, как VistA, имеет более 20 000 подпрограмм, чей скомпилированный объектный код превышает 200 МБ. В крупной больнице, где работает VistA, могут одновременно работать тысячи пользовательских процессов.

За некоторыми небольшими исключениями, GT.M включает в себя почти полную реализацию стандарта ISO M (по историческим причинам ласково известного как MUMPS ).

В GT.M код M может свободно вызывать код C (или код на других языках с интерфейсом, совместимым с C), а код C может свободно вызывать код M (поэтому программа верхнего уровня может быть программой C). main()). Например, это модуль GT.M в CPAN , m_python для доступа из Python или EGTM привязка для Erlang .

Веб-сервисы, написанные на GT.M, могут быть развернуты на суперсервере Интернета, таком как inetd или xinetd . Веб-приложения могут использовать многоуровневое программное обеспечение, такое как EWD или CFMumps .

Платформы

[ редактировать ]

GT.M полностью поддерживается на следующих платформах: [ 9 ]

GT.M больше не поддерживается на следующих платформах:

  • HP-UX по состоянию на октябрь 2015 г. (V6.2-002A)
  • OpenVMS по состоянию на декабрь 2014 г. (V6.2-001)
  • Solaris по состоянию на декабрь 2015 г. (V6.2-002A)

База кода GT.M для Linux на IA-32 ( x86 ) включает изменения, необходимые для запуска Cygwin в Microsoft Windows, но эта платформа не поддерживается.

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

[ редактировать ]

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

Общие приложения

[ редактировать ]

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

Доступ SQL и ODBC к базам данных GT.M существует как отдельные коммерческие продукты. [ 11 ]

  1. ^ «Linux PR: Санчес предлагает пользователям Linux базу данных GT.M в качестве бесплатного программного обеспечения с открытым исходным кодом» . 9 декабря 2000 г. Архивировано из оригинала 9 декабря 2000 г.
  2. ^ «Результаты сравнительного тестирования профиля» (PDF) . redhat.com . Проверено 9 июля 2023 г.
  3. ^ «Британские банки-претенденты: кто есть кто (и какие у них технологии)» . Финтех-фьючерсы . 30 мая 2018 г.
  4. ^ «В банке Sainsbury's произошел сбой в работе систем – IBS Intelligence» . Архивировано из оригинала 13 октября 2019 г.
  5. ^ http://www.allbusiness.com/banking-finance/banking-lending-credit-services-cash/6129691-1.html [ мертвая ссылка ]
  6. ^ «Заявки на медицинскую документацию» . Архивировано из оригинала 8 июня 2011 г. Проверено 7 января 2010 г.
  7. ^ «Технологии с открытым исходным кодом для предприятия» . www.redhat.com .
  8. ^ «Руководство программиста GT.M — Типы данных» .
  9. ^ «Примечания к выпуску GT.M V6.3-009» . Tinco.pair.com .
  10. ^ «Перенос на Linux на ARM · Проблема № 61 · YottaDB/YDB» . Гитхаб .
  11. ^ «Сравнение систем управления базами данных: MySQL, PostgreSQL, MSSQL Server, MongoDB, Elasticsearch и других» . АльтексСофт . Проверено 8 сентября 2023 г.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a0893d5602d2911253183a94aa2c8b37__1722740340
URL1:https://arc.ask3.ru/arc/aa/a0/37/a0893d5602d2911253183a94aa2c8b37.html
Заголовок, (Title) документа по адресу, URL1:
GT.M - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)