Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Структура базы данных [ править ]

Ядро СУБД [ править ]

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

Архитектура [ править ]

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

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

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

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

Блокировка [ править ]

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

Транзакции [ править ]

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

Целостность данных [ править ]

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

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

Словарь данных [ править ]

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

Компоненты и файлы [ править ]

Компоненты [ править ]

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

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

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

История [ править ]

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

Kubl RDBMS [ править ]

Kubl ORDBMS был один из списка систем реляционных баз данных с корнями в Финляндии . В этот список также входят MySQL , InnoDB и Solid RDBMS / Solid Technologies .

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

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

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

Орри Эрлинг начал свою собственную разработку СУБД в 1994 году, которая впоследствии стала Kubl . Первоначально разработка Kubl финансировалась Infosto Group , издателем крупнейшей в Финляндии газеты с бесплатными рекламными объявлениями , в рамках их собственного проекта по разработке программного обеспечения для своих онлайн-сервисов . Он-лайн версия Keltainen Pörssi одно время считалась самым популярным веб-сайтом Финляндии с 500 000 зарегистрированных пользователей. База данных Kubl заметно отображалась в логотипе «Powered by Kubl» в результатах поиска.

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

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

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

Области функциональности [ править ]

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

  • Механизм объектно-реляционной базы данных для ( SQL , XML , RDF и простой текст )
  • Вычислительная платформа веб-сервисов
  • Сервер веб- приложений
  • Система управления веб-контентом (WCMS)
  • Управление обсуждениями на основе NNTP
  • Репликация однородных и разнородных данных
  • Приемник почтового хранилища и сервисный прокси ( POP3 )
  • DataPortability

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

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

HTTP , WebDAV , CalDAV , CardDAV , SOAP , UDDI , WSDL , WS-Policy , WS-Security , WS-ReliableMessaging , WS-Routing , WS-Referral , WS-Attachment , WS-BPEL , SyncML , GData , SPARQL , SPARUL , NNTP

Поддержка API [ править ]

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

Поддержка форматов распространения контента и обмена [ править ]

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

Поддержка языка запросов [ править ]

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

Поддержка языка определения схемы [ править ]

SQL «s Data Definition Language , XML Schema

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

Virtuoso - это решение следующих задач системной интеграции :

  • Интеграция корпоративной информации (EII)
  • Развертывание веб-приложений, не зависящих от языка программирования
  • Монолитная декомпозиция приложения , использующая принципы сервис-ориентированной архитектуры.
  • Интеграция корпоративных приложений на основе веб-сервисов за счет поддержки значительного количества протоколов WS- *
  • Управление бизнес-процессами через BPEL
  • Генерация пространств данных семантической паутины
  • Платформа развертывания для внедрения связанных данных на основе RDF в сеть семантических данных

Связанные области технологий [ править ]

Управление данными [ править ]

  • Система управления реляционной базой данных
  • Список систем управления реляционными базами данных
  • Сравнение объектно-реляционных систем управления базами данных
  • Сравнение систем управления реляционными базами данных

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

  • Веб 2.0
  • Сервисная шина предприятия
  • Сервис-Ориентированная Архитектура
  • Интеграция корпоративных приложений
  • Интеграция данных
  • Открытая семантическая структура
  • веб-сервис
  • Семантическая сеть
  • Матрица сравнения серверов бизнес-интеграции

Связанные продукты и инструменты [ править ]

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

  • OpenLink Data Spaces - виртуальная платформа для экономичного создания и управления присутствием в сети Semantic Web / Linked Data Web. Он предоставляет распределительную коробку данных для интеграции данных в сторонние службы социальных сетей , блоги , общий доступ к файлам , общие и социальные закладки , Wiki , электронную почту , обмен фотографиями, RSS 2.0 , Atom и службы агрегирования контента RSS 1.1 . Помимо функций интеграции со сторонними организациями, он также включает собственную обширную коллекцию связанных данных. совместимые распределенные приложения для совместной работы в каждой из вышеупомянутых сфер веб-приложений.
  • Универсальные драйверы доступа к данным - высокопроизводительные драйверы доступа к данным для ODBC , JDBC , ADO.NET и OLE DB, которые обеспечивают прозрачный доступ к корпоративным базам данных на нескольких платформах и базах данных.

Платформы [ править ]

Virtuoso поддерживается на ряде 32- и 64-разрядных платформ, включая кроссплатформенную Windows , UNIX ( HP , AIX , Sun , DEC, BSD, SCO ), Linux ( Red Hat , SUSE ) и macOS .

Лицензирование [ править ]

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

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Официальный веб-сайт