Виртуозный универсальный сервер - Virtuoso Universal Server

Виртуозный универсальный сервер
Virtuoso-logo-sm.png
Virtuoso Conductor (пользовательский интерфейс для администрирования баз данных)
Virtuoso Conductor (пользовательский интерфейс для администрирования баз данных)
Разработчики)Программное обеспечение OpenLink
Стабильный выпуск
08.03.3316 / 10 марта 2020 г.; 8 месяцев назад (2020-03-10)[1]
Репозиторий Отредактируйте это в Викиданных
Написано вC
Операционная системаКроссплатформенность
ТипTriplestore, СУБД, Сервер приложений, веб сервер
ЛицензияGPLv2[2] и проприетарный
Интернет сайтОфициальный веб-сайт

Виртуозный универсальный сервер это промежуточное ПО и ядро базы данных гибрид, сочетающий в себе функциональность традиционного Система управления реляционной базой данных (СУБД), Объектно-реляционная база данных (ORDBMS), виртуальная база данных, RDF, XML, открытый текст, сервер веб-приложений и файловый сервер функциональность в единой системе. Вместо того, чтобы иметь выделенные серверы для каждой из вышеупомянутых областей функциональности, Virtuoso является «универсальным сервером»; это позволяет многопоточный сервер процесс который реализует несколько протоколов. В бесплатный и открытый исходный код редакция Virtuoso Universal Server также известна как OpenLink Virtuoso. Программное обеспечение было разработано OpenLink Software совместно с Кингсли Уи Идехен и Орри Эрлинг как начальник архитекторы программного обеспечения.

Структура базы данных

Ядро СУБД

Virtuoso предоставляет расширенную объектно-реляционную модель, которая сочетает гибкость реляционного доступа с наследованием, типизацией данных во время выполнения, поздним связыванием и доступ на основе личности. База данных Virtuoso Universal Server включает в себя физический файл и процессы в памяти, а также процессы операционной системы, которые взаимодействуют с хранилищем. Есть один главный процесс, у которого есть слушатели на указанном порту для HTTP, МЫЛО, и другие протоколы.

Архитектура

Virtuoso спроектирован так, чтобы использовать поддержку многопоточности операционной системы и использование нескольких процессоров. Он состоит из одного процесса с регулируемым пулом потоков, совместно используемых клиентами. Несколько потоков могут работать с одним индексным деревом с минимальным вмешательством друг в друга. Один кеш страниц базы данных используется всеми потоками, а старые грязные страницы записываются обратно на диск в качестве фонового процесса.

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

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

Для хранения всех таблиц используется единый набор файлов. Для всех временных данных используется отдельный набор файлов. Максимальный размер набора файлов составляет 32 терабайта для страниц 4G × 8K.

Блокировка

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

Сделки

Поддерживаются все четыре уровня изоляции: грязное чтение, зафиксированное чтение, повторяемое чтение и сериализуемый. Уровень изоляции может быть определен операцией за операцией в рамках одной транзакции. Виртуоз также может выступать в роли менеджер ресурсов и / или координатор транзакций в рамках Координатора распределенных транзакций Microsoft (MS DTC ) или XA стандарт.

Целостность данных

Виртуоз ORDBMS база данных поддерживает целостность объекта и ссылочная целостность. Virtuoso гарантирует, что отношения между записями в связанных таблицах действительны, путем применения ссылочная целостность. К ограничениям целостности относятся:

  • НЕ НОЛЬ - В определении таблицы Virtuoso позволяет данным содержать значение NULL. Это значение NULL на самом деле вообще не является значением и считается отсутствием значения. Ограничение NOT NULL заставляет значение быть присвоенным столбцу.
  • Уникальный ключ - Уникальность столбца или набора столбцов означает, что значения в этом столбце или наборе столбцов должны отличаться от всех других столбцов или набора столбцов в этой таблице. Уникальный ключ может содержать значения NULL, поскольку они по определению являются уникальными неоцененными значениями.
  • Первичный ключ - Первичный ключ очень похож на уникальные ключи, за исключением того, что они предназначены для уникальной идентификации строки в таблице. Они могут состоять из одного или нескольких столбцов. Первичный ключ не может содержать значение NULL.
  • ПРОВЕРИТЬ ограничение - Virtuoso предоставляет для столбца ограничение целостности, которое требует выполнения определенных условий перед вставкой или изменением данных. Если проверки не удовлетворены, транзакция не может быть завершена.

Словарь с данными

Virtuoso хранит всю свою информацию обо всех пользовательских объектах в базе данных в таблицах системного каталога, обозначенных db.dba *.

Компоненты и файлы

Составные части

Virtuoso состоит из клиентских и серверных компонентов. Эти компоненты обычно обмениваются данными с локальным или удаленным сервером Virtuoso, в том числе:

  • Виртуозные драйверы для ODBC, JDBC, ADO.NET и OLE DB
  • Conductor, пользовательский веб-интерфейс для администрирования баз данных
  • ISQL (интерактивный SQL) и утилиты ISQO
  • Документация и руководства
  • Образцы

Установки идут с двумя базами данных: базой данных по умолчанию и демонстрационной базой данных.

История

Проект Virtuoso родился в 1998 году в результате слияния Открыть ссылку доступ к данным промежуточное ПО и Кубл СУБД.

Kubl СУБД

Кубл ORDBMS был одним из списка системы реляционных баз данных с корнями в Финляндия. В этот список также входят MySQL, InnoDB, и Надежная СУБД /Solid Technologies.

Как и в случае с большинством технологических продуктов, ключевой персонал OpenLink Virtuoso, InnoDB, и Твердый разделяют периоды профессионального совпадения, которые дают примечательное представление об истории развития технологий баз данных в Финляндии. Хейкки Туури (создатель InnoDB ), Ора Лассила (W3C и Nokia Research, технологический лидер и провидец в RDF и Семантическая сеть в целом рядом с Тим Бернерс-Ли ), и Орри Эрлинг (Менеджер программы виртуозов в OpenLink Software) все вместе работали в новой компании под названием Системы сущностей в Финляндия - где они развивались Common Lisp и Пролог среды разработки для раннего поколения ПК примерно. 1986–88.

Позже Орри Эрлинг работал с VIA International, разработчик ЧЕРЕЗ / DRE в разработке LISP -основан объектно-ориентированный доступ к данным слой наверху компании СУБД товар. Основная группа разработчиков VIA после распада компании в 1992 году основала Solid Technologies под руководством Арттури Тарьянне.

Хейкки Туури работал над Твердый какое-то время, прежде чем начать свой база данных проект развития, который стал InnoDB (приобретено Oracle в 2005 году).

Орри Эрлинг начал свою собственную разработку СУБД в 1994 году, которая должна была стать Кубл. Первоначально развитие Kubl финансировалось Infosto Group, издатель крупнейшего в Финляндии бесплатная рекламная бумага в рамках собственного проекта разработки программного обеспечения для своих онлайн-сервисы. Он-лайн версия Келтайнен Пёрсси одно время считался самым популярным веб-сайтом Финляндии с 500 000 зарегистрированных пользователей. База данных Kubl была широко представлена ​​в "На платформе Kubl" логотип в результатах поиска.

Бесплатная пробная версия Kubl была доступна для загрузки 7 ноября 1996 года.[3]

Kubl позиционировался как высокопроизводительная легкая база данных для встроенный использовать; целью разработки было достижение наивысших результатов в Транзакций в секунду тесты.[4][5] Цена продукта была особенно благоприятной для Linux пользователи с лицензией Linux по цене 199 долларов.[6]

Kubl стал краеугольным камнем OpenLink Virtuoso после технологических путей Кингсли Уи Идэхена и Орри Эрлинг пересекли в 1998 году, что привело к приобретению Kubl компанией OpenLink Software.

Области функциональности

Функциональность Virtuoso охватывает широкий спектр традиционно различных сфер в рамках одного предложения продукта. Эти функциональные области включают:

Реализованные протоколы

Virtuoso поддерживает широкий спектр стандартных отраслевых протоколов Интернета и Интернета, включая:

HTTP, WebDAV, CalDAV, CardDAV, МЫЛО, UDDI, WSDL, WS-Политика, WS-Безопасность, WS-ReliableMessaging, WS-маршрутизация, WS-реферал, WS-приложение, WS-BPEL, SyncML, GData, SPARQL, SPARUL, NNTP

Поддержка API

Для разработчиков приложений баз данных и системного интегратора Virtuoso реализует различные стандартные отраслевые API доступа к данным (клиент и сервер), которые включают: ODBC, JDBC, OLE DB, ADO.NET, ADO.NET Entity Framework, XMLA.

Синдикация контента и поддержка формата обмена

Virtuoso поддерживает такие стандарты, как для разработчиков веб-приложений и синдикатов контента, а также для потребителей: Атом, RSS 2.0, RSS 1.0, OPML, XBEL, FOAF, SIOC.

Поддержка языка запросов

SQL, SPARQL (с многочисленными расширениями), XQuery (реализация библиотеки основных функций серьезно не завершена), XPath (Только 1.0), XSLT (Только 1.0)

Поддержка языка определения схемы

SQL с Язык определения данных, Схема XML

Сценарии использования

Virtuoso - это решение для следующих системная интеграция проблемы:

Связанные области технологий

Управление данными

Корпоративные приложения, информация и интеграция данных

Сопутствующие товары и инструменты

Помимо Virtuoso, OpenLink Software производит несколько связанных инструментов и приложений:

Платформы

Virtuoso поддерживается на ряде 32- и 64-битных платформ, включая кроссплатформенность. Windows, UNIX (HP, AIX, солнце, DEC, BSD, ШОС ), Linux (Красная шляпа, SUSE ) и macOS.

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

В апреле 2006 г. бесплатно программное обеспечение версия Virtuoso была доступна под Стандартная общественная лицензия GNU версия 2. Программное обеспечение теперь доступно в вариантах коммерческой лицензии и лицензии с открытым исходным кодом.[7]

Рекомендации

  1. ^ «Техническая версия версии Virtuoso 08.03.3316». Получено 11 августа 2020.
  2. ^ Программное обеспечение OpenLink. «Условия лицензии Virtuoso с открытым исходным кодом». Получено 2011-03-30.
  3. ^ "Бесплатная пробная версия Kubl RDBMS загружается". 7 ноября 1996 г.. Получено 2010-02-03.«Бесплатная пробная версия Kubl RDBMS загружается». Группа новостейcomp.os.linux.misc. 7 ноября 1996 г. Usenet:  [email protected].
  4. ^ [1]
  5. ^ «Код теста СУБД? Кто самый быстрый?». 11 апреля 1996 г.. Получено 2010-02-03.
  6. ^ «Kubl RDBMS для Linux». 12 ноября 1997 г.. Получено 2010-02-03.
  7. ^ Программное обеспечение OpenLink (11 апреля 2006 г.). "Открытая версия OpenLink Virtuoso, Unleashed!". Получено 2010-02-03.

внешняя ссылка