Raima

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:37, 11 мая 2017.
Raima
Founded 1982
Headquarters Seattle, Washington, United States
Key people
Chief Executive Officer – Steinar Sande
Products Raima Database Manager (RDM)
Owner Raima Holding LLC
Website raima.com

Raima разрабатывает, продает и поддерживает системы управления реляционными базами данных в оперативной памяти и на дисках, которые могут быть встроены в приложение или находиться в режиме клиента или сервера. Основное внимание компании уделяется OLTP базам данных с интенсивной обработкой транзакций. Ее кросс-платформенные продукты предназначены для сбора, хранения, управления и перемещения данных.

Продукты и Услуги

Raima предлагает несколько решений для баз данных: Raima Database Manager - кросс-платформенная база данных, предназначенная для распределенной архитектуры в средах с ограниченными ресурсами, и RDM Server, являющаяся встраиваемой системой управления базами данных, использующей архитектуру клиент-сервер, предназначенную для предприятий.

Приложения

Продукты Raima используются в широком спектре приложений для критически важных транзакций данных, систем управления полетом, военной техники, решений для резервного копирования данных, медицинского оборудования, маршрутизаторов и коммутаторов и т.д. . Boeing, General Dynamics, General Electric (Alstom), Mitsubishi, Schneider Electric и Siemens являются примерами клиентов, которые внедряют продукты RDM в свои приложения.

Технологии Raima

Raima Database Manager (RDM) - это высокопроизводительная система управления базами данных, оптимизированная для рабочих групп, оперативных, встроенных и мобильных операционных систем. Она идеально подходит для программирования взаимодействующих систем сетевых и распределенных приложений и данных, например, в финансовой, телекоммуникационной, промышленной автоматизации или медицинских системах. Множество API и конфигураций предоставляют разработчикам широкий спектр мощных возможностей программирования и функциональности.

На протяжении более 30 лет Raima разрабатывала, продавала и поддерживала Raima Database Manager (RDM), реляционную СУБД, которая работает практически в любой вычислительной среде, от мобильных телефонов до встроенных компьютеров от UNIX-серверов до Cloud. RDM - быстрый, компактный, недорогой механизм базы данных, предоставляемый Raima в качестве SDK для сред разработки Microsoft Windows, Linux или UNIX. Для встроенных и мобильных целей RDM Microsoft Windows или Linux SDK будут выполнять кросс-платформенную разработку.

RDM был использован тысячами программистов для создания успешных продуктов, утилит или инструментов, которые были распространены по всему миру. Программисты используют C, C++, Java или C# для вызова набора API-интерфейсов в RDM или доступа к ним из сторонних инструментов через диспетчер драйверов ODBC(Open Database Connectivity).

RDM может быть сконфигурирован как единый процесс, программа с одной базой данных или как мультипроцессорная, многопоточная, многоядерная система распределенных баз данных программ. База данных может управляться в оперативной памяти. Соответствие ACID(Atomicity,Consistency, Isolation, and Durability) означает, что базы данных на диске являются безопасными и всегда восстанавливаемыми, в то время как функции MVCC(MultiVersion Concurrency Control) и неповторяющегося чтения позволяют быстро считывать или анализировать базы данных, которые одновременно обновляются.

Библиотека времени выполнения

В качестве входящей библиотеки RDM полностью поддерживает многопоточные приложения. Каждый поток может открывать базу данных и работать с ней одновременно с остальными. Как связанная библиотека, RDM работает с данными, хранящимися в кеше. Его надежные API-интерфейсы дают вам полную видимость и контроль над данными. SQL (Structured Query Language) доступен через C-based API, но также доступен через сторонние инструменты. Другие API-интерфейсы позволяют выполнять точную настройку операций с базой данных с помощью представления курсора или объектно-ориентированного представления.

Транзакционный файловый сервер (TFS)

По своей сути, TFS представляет собой библиотеку функций. Эти функции вызываются библиотекой времени выполнения. Если TFS выполняется в отдельном процессе, его функции вызываются в виде RPC (Remote Procedure Calls), используя TCP/IP между компьютерами и разделяемой памятью на том же компьютере.

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

Когда задействовано несколько компьютеров, они обмениваются данными через TCP/IP. Если рабочая среда и TFS находятся на одном компьютере, для ускорения используется общая память.

Однопользовательские приложения имеют преимущество, поскольку нет параллельного доступа к базе данных, следовательно, нет блокировки или ожидания.

Опция базы данных в памяти RDM позволяет использовать волатильность (изменчивость) и постоянную (загруженную с диска и сохраненную на диске) базу данных.

TFServer следует рассматривать как «контроллер базы данных» во многом так же, как диск управляется контроллером диска. TFS инициализируется корневым каталогом, в котором хранятся все файлы, управляемые TFS. Если на одном компьютере установлено несколько контроллеров дисков, рекомендуется назначить каждому контроллеру один TFServer. Это облегчает параллелизм на одном компьютере, особенно при наличии нескольких процессорных ядер.

RDM поставляется с тремя различными типами реализаций TFS и позволяет разработчику выбирать тот, который лучше всего подходит для пространства приложения:

  • TFST - полнофункциональная реализация TFS, вызываемая непосредственно библиотекой времени выполнения. TFST поддерживает несколько потоков в одном процессе.
  • TFSR - библиотека RPC (Remote Procedure Call). При вызове библиотеки времени выполнения эти функции подключаются к одному или нескольким процессам TFServer и вызывают функции TFS внутри них. Конфигурация клиент / сервер
  • TFSS - «автономные» функции TFS, вызываемые непосредственно библиотекой времени выполнения, но предназначенные только для однопроцессорного использования (при использовании нескольких потоков каждый должен иметь доступ только к другой базе данных). Используется для пакетных операций с высокой пропускной способностью, в то время как база данных в противном случае отключена. Допускаются небезопасные (но быстрые) обновления, что означает, что перед созданием обновлений в этой конфигурации необходимо создать резервную копию базы данных.

Разработчик может ограничить доступ к базе данных, используя встроенный TFST. Пока приложение не запускает потоки прослушивания RPC, базы данных, размещенные в незадействованной TFS, будут доступны только процессу, который запускал и инициализировал TFS.

Доступ к базе данных несколькими процессами разрешен TFSR. Библиотека времени выполнения подключается к удаленной TFS с использованием синтаксиса URL-адреса соединения Raima (tfs-tcp: // host: port, tfs-shm: // tfsname). Удаленная TFS может быть либо исполняемым файлом tfserver от Raima, либо может быть приложением TFST разработчика, которое запускает потоки прослушивания RPC. Если разработчик хочет ограничить доступ к базе данных на одном компьютере, он может инициализировать перемещение разделяемой памяти, но не делать доступным перемещение TCP / IP.

Шифрование базы данных

RDM позволяет шифровать все содержимое базы данных до того, как оно будет передано по сети и записано в файлы базы данных. Шифрование RDM поддерживает алгоритм шифрования Rijndael / AES с 128-, 192- или 256-битными ключами на основе ключа шифрования, заданного приложением.

Запрос по нескольким базам данных

Объединения баз данных

Функция объединения баз данных RDM обеспечивает унифицированное представление нескольких баз данных с одинаковой структурой. Поскольку RDM обеспечивает высоко-распределенное хранение и обработку данных, эта функция обеспечивает механизм для унифицирования распределенных данных, что дает ему возможность создать единую крупную базу данных.

Зеркалирование и репликация

Зеркалирование

Raima определяет зеркало базы данных как изображение байта за байтом исходной базы данных. Следовательно, зеркалирование создает одну или несколько дополнительных копий базы данных RDM. И вместо того, чтобы просто копировать файлы, процесс включает в себя копирование журналов транзакций, чтобы зеркальные копии обновлялись поэтапно и синхронно.

Библиотека времени исполнения RDM обрабатывает транзакции, помещая измененные разделы базы данных в файл журнала транзакций. Каждая транзакция идентифицируется по номеру, и своевременно транзакция будет безопасно перенесена из файла журнала в саму базу данных. Обычно файлы журналов будут удалены после того, как все транзакции, которые они содержат, будут записаны в базу данных. Когда зеркалирование активно, файлы журнала могут сохраняться в течение более длительного периода времени. Затем по запросу (от «подписчиков») отдельные транзакции копируются в файлы журналов на одном или нескольких других компьютерах, где они записываются в файлы базы данных, обеспечивая обновление этих баз данных с оригиналом. Тот же процесс для безопасного обновления файлов базы данных используется как на главном, так и на подчиненном компьютере. Помимо частей, необходимых для безопасной передачи файлов журнала, не требуется дополнительное программное обеспечение (что означает отсутствие дополнительной сложности).

Репликация

Функциональность репликации Raima обеспечивает иной подход при перемещении данных по сравнению с зеркалированием. Raima определяет репликацию как перемещение данных по действию к действию, а не бит за битом. Из-за репликации действий базы данных, можно агрегировать данные из нескольких "master" баз данных RDM в одну базу данных. Также можно представить действия в виде команд для разных типов систем баз данных.

С репликацией действий к действию изменения в базе данных RDM фиксируются как серия операций создания, удаления и обновления. Библиотека времени выполнения создает этот журнал репликации, если она для этого настроена. Каждый журнал содержит действия одной полной транзакции. Затем журнал передается в TFS, которая отвечает за администрирование всех журналов репликации для клиентов репликации. Клиенты репликации получают файлы журнала репликации и преобразуют их в эквивалентные действия, необходимые для локальной СУБД, которая может быть другой базой данных Raima (RDM-сервер или RDM), но более чем вероятным является MySQL, SQL Server или Oracle. Для СУБД SQL действия конвертируются в SQL.

Высокая пропускная способность через параллелизм

Увеличение производительности системы обычно связано с добавлением компьютерного оборудования. Цель, особенно с общим ресурсом, таким как база данных, состоит в том, чтобы добавлять части (как аппаратное, так и программное обеспечение), которые могут выполняться параллельно. Если система разделена на части, которые блокируют или мешают друг другу, ничего не получается. Параллелизм - это решение проблемы. Если параллельные блоки не мешают другим, то общая пропускная способность может быть увеличена.

Cсылки