В Virtuoso объединены функции баз данных SQL и XML и сервер приложений
Интерфейс управления Virtuoso 2.7 на основе Web позволяет гибко управлять сложными процессами, такими как перевод данных из SQL-формы в XML, не прибегая к программированию

В 1993 году компания Microsoft впервые продемонстрировала систему Cairo, в основе которой лежал прототип Object File System. В настоящее время Microsoft снова вернулась к этой идее и планирует возродить систему в 2003 году под именем Yukon. Между тем не теряют времени и другие компании. Поставщики баз данных энергично работают над объединением двух основных стандартов управления данными: SQL и XML. Одной из наиболее перспективных разработок считается система компании OpenLink Software, получившая название Virtuoso.

Число технологий, которые вмещает в себя Virtuoso, кажется просто невозможным для одного продукта. Сначала система Virtuoso продавалась как виртуальная база данных, то есть автономный SQL-процессор, который может также использовать (и расширять) внешние источники данных. Далее она эволюционировала в сервер Web-приложений, а теперь в версии Version 2.7 стала настолько полным образцом универсального сервера, насколько это вообще возможно представить. Virtuoso 2.7 выпускается для платформ Windows, Linux, Sun Solaris, HP/UX, IBM AIX и Mac OS X, сочетает в себе стили управления данными, присущие SQL и XML, и для обоих механизмов поддерживает связи с Web-службами. Процессор SQL в ядре продукта может содержать структурированные данные, а также слабоструктурированные (например, XML-документы) и неструктурированные (файлы, изображения). Имеется еще и встроенное хранилище данных, действующее по протоколу WebDAV и предоставляющее иерархический доступ к слабоструктурированным и неструктурированным данным.

Совмещаются эти компоненты, например, следующим образом. Для получения на выходе результата в формате XML формулируется SQL-запрос с использованием XML-оператора FOR. Результаты запроса проходят через встроенный в Virtuoso аппарат XSLT (Extensible Stylesheet Language Transformations), преобразуются в HTML и запоминаются в каталоге DAV. Отчет в HTML становится доступным для DAV-клиентов или для браузеров через DAV-интерфейс Virtuoso на базе HTTP.

SQL-запрос в Virtuoso может использовать очень богатый набор средств.

Таблицы и хранимые процедуры бывают внутренними или присоединенными из баз данных Microsoft SQL Server или Oracle. Столбцы, хранящие символьную информацию, могут индексироваться для полнотекстового поиска. Если символьные данные представлены в XML, то для формирования структурированных запросов можно использовать синтаксис Xpath.

Имеющийся в Virtuoso язык хранимых процедур Virtuoso/PL расширяет область применения продукта, позволяя работать фактически с любой доступной через Internet информацией: удаленными SQL-базами данных, Web-страницами, ящиками входящих сообщений электронной почты, сетевыми телеконференциями и службами SOAP. Поддержка клиентов SOAP включает прямые SOAP-обращения, импорт конструкций WSDL и просмотр каталогов UDDI.

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

В состав основных средств входит поддержка динамических массивов, сравнение с эталоном регулярных выражений, арифметические действия с данными, математические операции. Поддержка большого числа Internet-протоколов позволяет создавать PL-процедуры для работы по протоколу LDAP, для синтаксического разбора почтовых сообщений на базе стандартов MIME, для отправки и приема сообщений по протоколам NNTP (Net News Transfer Protocol), POP и SMTP и даже подписывать сообщения Secure MIME и распознавать подписи на них. Имеются наборы функций, позволяющие формировать процедуры для проверки достоверности, преобразования, поиска, запоминания и управления данными XML, а также для взаимодействия со службами SOAP, WSDL или UDDI.

Брак SQL и XML в храме Web-служб должен преобразить отрасль программного обеспечения. Virtuoso очень много делает для укрепления этого брака. Тут есть даже первая реализация XQuery 1.0, новейшего продукта из серии задуманных языков XML-запросов. Virtuoso — фантастический продукт, публично обещающий охватить все возможные проблемы. Его можно конфигурировать как хранилище почтовых сообщений, как NNTP-сервер, как сервер приложений, как систему управления информационным наполнением, как шлюз Web-служб, а также как средство для выполнения многих других задач. Для Virtuoso нужны разработчики, владеющие многими протоколами и способные превращать данные в информацию, а информацию в знания. Если вас заинтересовал Yukon, гибрид XML/SQL/Web-служб, запланированный компанией Microsoft на 2003 год, можете не ждать его появления сидя сложа руки. Ведь Virtuoso есть уже сегодня.