СТАТЬЯ |
01.11.00
|
Юрий Колонин
Центральный Московский Депозитарий
Материал был опубликован на сайте www.citforum.ru
Бурное развитие информационных технологий, их внедрение во все сферы человеческой жизни (включая досуг) в последние годы привели к резкому расширению понятия обрабатываемой в компьютерных системах информации. Информация теперь - это не только (а во многих случаях - не столько) строки и числа, но и звук, изображение, видео. И если для конечного пользователя новые типы данных - это вполне естественное удобство (куда приятнее, например, в Internet-магазине увидеть желаемый товар, что называется, в натуре - на фото или в видеоклипе и узнать его характеристики с голоса, чем изучать скучные прайс-листы), то для разработчиков приложений - дополнительная головная боль. Приходится иметь дело не только с резко возросшими объемами обрабатываемой (а значит, и хранимой) информации, но с существенно усложнившимися связями между ее отдельными компонентами.
Эта ситуация не в последнюю очередь бросила вызов ведущим фирмам-разработчикам СУБД, поскольку накопленный ими потенциал в области хранения и обработки данных, в основном, располагался в области реляционных СУБД (РСУБД), принципиально не умевших работать со сложной или слабоструктурированной информацией.
По всей видимости, учитывая колоссальный объем наработок и широчайший круг клиентов РСУБД, с одной стороны, и совершенно недостаточный с коммерческой точки зрения опыт создания и использования объектных СУБД (ОСУБД), с другой, ведущие компании (ORACLE, IBM, Informix и др.) решили пойти эволюционным путем. Были предприняты отчаянные попытки внедрить "объектность" в плоские таблицы, результатом чего явилось создание так называемых "универсальных" серверов или объектно-реляционных СУБД (ОРСУБД).
Тем же путем хотел пойти еще один софтверный монстр - компания Computer Associate, которая в начале 1996 г. объявила о намерениях внедрить объектные технологии в свою РСУБД OpenIngres. Однако по прошествии нескольких месяцев компания вдруг заявила, что OpenIngres будет развиваться далее в чистом "реляционном" ключе (на рынке вскоре появилась новая версия - Ingres II), а под новые требования рынка фирма создаст совместно с Fujitsu абсолютно новую, чисто объектную СУБД под названием Jasmine. И такая СУБД появилась на рынке в декабре 1997 г.
В задачи доклада не входит сравнительный анализ объектно-реляционных и "чисто" объектных СУБД: и те, и другие имеют множество достоинств (хотя симпатии автора, много лет проработавшего с реляционными СУБД, сейчас целиком отданы объектным). Наша задача проще и практичней - ознакомить аудиторию с основными характеристиками первой полномасштабной коммерческой ОСУБД Jasmine.
Jasmine - первая полномасштабная, промышленная система управления объектными базами данных. Эта ОСУБД создана совместными усилиями корпорации Computer Associates и фирмы Fujitsu и выпущена на рынок в конце 1997г.
Важнейшие отличительные особенности ОСУБД Jasmine включают в себя:
Приложения ОСУБД Jasmine способны работать как на автономных компьютерах, так и в архитектурах клиент/сервер и WEB-сервер/WEB-браузер. Система Jasmine представляет собой чрезвычайно развитую и одновременно открытую систему программирования (рис.1).
Центральное место в системе Jasmine, разумеется, занимает объектно-ориентированный сервер БД, который обеспечивает высокоэффективную интеллектуальную поддержку хранения и обработки структур данных произвольной сложности.
Еще один важнейший компонент системы - Jasmine Studio. Этот компонент имеет две функциональные нагрузки: во-первых, он выступает как мощная визуальная среда разработки клиентских и серверных компонентов приложений и, во-вторых, как не менее мощный визуальный администратор БД. Приложения, созданные в среде Jasmine Studio, без каких-либо модификаций способны работать как в традиционных архитектурах, так и в составе WEB-браузеров. Последний вариант поддерживается входящими в состав комплекта поставки plug-in'ами для двух популярных браузеров (от Netscape и Microsoft).
С помощью компонента WEBLink-Server обеспечивается возможность эффективной работы Jasmine-сервера в сети Internet на базе стандартного языка HTML. В этом случае запросы к БД Jasmine встраиваются в HTML-страницы посредством нескольких специальных тэгов.
В среде Windows разработку клиентских частей приложений можно осуществлять, пользуясь любой системой программирования, способной "понимать" механизмы связи ActiveX и Windows API. Соответствующие компоненты также входят в комплект поставки.
Компоненты Java Bindings и Persistance Java обеспечивают два механизма, пользуясь которыми, специалисты, создающие Java-приложения, способны самым естественным образом интегрировать в одной среде программирование не только интерфейса с пользователем и бизнес-функций, но и любые запросы к ОСУБД Jasmine, включая работу с метаданными.
Рис.1. Архитектура ОСУБД Jasmine
Jasmine имеет развитую систему встроенных классов, которая дает в руки разработчика не только базовые функции по созданию новых классов, но и продвинутый аппарат по манипулированию объектами и их коллекциями. Структура стандартных классов ОСУБД Jasmine представлена на рис.2.
Верхняя ветвь дерева классов (наследники класса Literal) описывает элементарные данные, характерные для реляционных СУБД: числа, строки и т.д. Все подклассы, образующие эту ветвь, имеют необходимые методы для манипуляции элементарными данными, их преобразования из одного типа в другой и т.д.
Рис.2. Система классов ОСБД Jasmine
Нижняя ветвь дерева классов (наследники класса Entity) служит целям описания сложных структур данных, в частности - коллекций (портфелей, наборов, списков и массивов) данных произвольного типа. Соответствующие классы обладают многими десятками мощных методов, реализующих эффективные операции над коллекциями.
Пользовательские классы наследуются от класса Composite и могут, как уже отмечалось иметь произвольную сложность. Так, на уровне пользовательских классов производителем реализованы библиотеки мультимедийных классов (для работы с документами, изображениями, видео, звуком), SQL-классов (для доступа к существующим базам реляционного типа), Weblink-классов (для связи с Internet) и т.д. Тем самым подчеркивается открытость и потенциальная мощь системы. На этом же уровне разрабатываются стандартные библиотеки классов третьих фирм (см. ниже).
Еще одно подмножество стандартных классов Jasmine (наследники класса SysManager) обеспечивает средства управления сеансами работы с БД и транзакциями.
Для работы с объектно-ориентированной БД процедурный язык типа SQL, естественно не годится. В ОСУБД Jasmine разработан свой объектно-ориентированный язык под сокращенным наименованием ODQL (Object Data Base Language). Язык отвечает стандарту ODMG-2. Используется для определения генеральной схемы конкретной базы данных - описания классов необходимых объектов, их свойств и методов, а также средств обеспечения целостности базы данных (межобъектных ссылок) и средств манипулирования объектами (создание объектов, их поиск, корректировка и удаление).
ODQL - полностью самодостаточный язык программирования. С его помощью наряду с традиционными для баз данных операциями можно объявлять переменные и присваивать им результаты выражений (в том числе, запросов). Можно писать условные выражения, циклы и пр. В принципе, можно написать все приложение на ODQL (в части бизнес-логики и обработки данных; интерфейс с пользователем, естественно, не входит в компетенцию ODQL-сервера).
По сути язык ODQL основан на языке С (С++). Программные конструкции, написанные на ODQL, препроцессируются компилятором Jasmine и приводятся к синтаксису языка С или С++, а затем компилируются соответствующим компилятором. В принципе при написании тел методов допускается произвольная смесь операторов языка ODQL с операторами базового языка сервера (C, C++).
ODQL поддерживает все современные концепции ООП: инкапсуляцию, наследование (в том числе, и множественное), полиморфизм, агрегирование. В соответствии с требованиями ODMG, обеспечивается уникальная идентификация каждого объекта.
ODQL может использоваться тремя различными способами:
В Jasmine введено понятие семейства классов, под которым понимается набор связанных между собой по какому либо признаку (например, по целевому назначению) классов. Требование уникальности имен классов распространяется только в рамках семейства. Тем самым обеспечивается возможность разработки единой базы данных различными коллективами.
Например, в следующем фрагменте определяется и создается объект класса Client семейства Depo:
defaultCF depoCF; /* Имя семейства, которое будет использовано далее по умолчанию */ Client oCl; /* Объявляется переменная oCl как объект класса Client из семейства Depo */ oCl = Client.new(); /* Создается новый объект класса Сlient, и ссылка на этот объект присваивается переменной oCl */ oCl = Client from Client where Client.id == 1991890; /* Запрос на поиск в базе объекта класса Client, числовое свойство id которого равно 1991980 */
После исполнения данного запроса у пользователя появляется доступ у полному набору (кортежу) его свойств, например:
oСl.place.name.print() /* Москва */ oCl.boss.firstname.print() /* Анатолий */ oCl.boss.category.print() /* Директор департамента */
Очевидно, что в объектной базе данных связи типа 1:М, М:1 и даже М:М реализуются простым и естественным способом!
Несмотря на то, что система Jasmine сама по себе представляет развитый и мощный инструмент разработки современных приложений, компания Computer Associates, следуя давней традиции, еще на завершающем этапе разработки этой системы заключила партнерские соглашения с большим числом ведущих западных фирм, способных еще более повысить мощь и функциональные возможности своей ОСУБД. Ниже для информации перечислены некоторые фирмы-партнеры CA и выпущенные ими в поддержку Jasmine продукты.
Наименование продукта | Фирма-производитель | Комментарии |
---|---|---|
Acrobat | Adobe Software Inc. www.adobe.com | Мультимедийный подкласс Acrobat, обеспечивающий хранение в БД Jasmine документов в формате Acrobat и их непосредственное отображение в приложениях. |
Alta Vista Search | Alta Vista Internet Software, Inc. Www.altavista.software.digital.com | Обеспечивает разработчиков Jasmine-приложений мощными средствами индексирования произвольных текстов, хранящихся в объектной базе, что сильно ускоряет поиск информации в БД по ее контексту. |
Sapphire/Web | Bluestone Software Corp. www.bluestone.com | Мощная и удобная открытая среда разработки Jasmine-приложений на языке Java. |
Centura Team/Web Developer | Centura Software Corp. www.centurasoft.com | IDE для разработки 16- и 32-битных |
COSMOS | CosmoCom, Inc. Www.cosmocom.com | Библиотеки классов COSMOS Caller и COSMOS Agent обеспечивают интеграцию Jasmine-приложений с системой COSMOS Call Center. |
DataSpot | Data Technologies Ltd. www.dataspot.com | Продвинутое средство, позволяющее Web-дизайнерам и разработчикам баз данных без какого либо программирования публиковать данные, хранящиеся в базе данных Jasmine. |
ReportPro | DataPro, Inc. www.dproinc.com | Полномасштабный генератор отчетов для ОСУБД Jasmine. |
RetrievalWare Visual RetrievalWare | Excalibur Technologies Corp. www.excalib.com | Библиотеки мультимедийных классов, обеспечивающие возможность индексирования мультимедийных данных (документов и даже изображений!) с целью их быстрого поиска. |
The Box | Financial Technologies International www.ftintl.com | Известный продукт этой компании, The Box Universal server, использует ОСУБД Jasmine для постоянного хранения сложных бизнес объектов. |
Object Director | HAL Computer Systems, Inc. www.hal.com/od/ | Комбинация систем ObjectDirector и Jasmine в значительной степени повышает продуктивность работы программистов за счет использования технологии распределенных объектов (CORBA). Кроме того, обеспечивается богатый набор дополнительных сервисов (Transaction Services, Replication Functions и т.д.). |
Quick Video Suite | InfoValue Computing, Inc. www.infovalue.com | При совместном использовании с ОСУБД Jasmine обеспечивает высококачественную передачу по глобальным сетям различных видеопотоков. |
TimeSeries | Innovative Systems Techniques, Inc. www.incytenet.com | Библиотека классов, упрощающая работу с объемными временными последовательностями данных, что позволяет успешно работать в АСУ ТП. |
ProShare | Intel www.intel.com | Оборудование для проведения видеоконференций, использующее ОСУБД Jasmine. |
ISG Navigator | International Software Group. www.isgsoft.com | Распределенный процессор запросов, обеспечивающий доступ к ОСУБД Jasmine посредством OLEDB/ADO или ODBC доступа. |
WorldToolKit | Sence8 www.sence8.com | Трехмерная графика и виртуальная реальность на базе Jasmine. |
Viscape | Superscape | Трехмерная графика и виртуальная реальность на базе Jasmine. |
В компании ЦМД-Софт Jasmine активно используется с января 1998 г. За этот период создано три клиент-серверных и около десятка Internet-приложений (включая Internet-магазины). Накопленный опыт позволяет нам с уверенностью заявить, что, несмотря на свою молодость, ОСУБД Jasmine представляет мощное, а во многих случаях - уникальное средство создания и ведения современных и перспективных баз данных.
Дополнительную информацию Вы можете получить в компании Interface
Ltd.
Отправить ссылку на страницу по e-mail
Interface Ltd.Отправить E-Mail http://www.interface.ru |
|
По техническим вопросам обращайтесь к вебмастеру Документ опубликован: 01.11.00 |