СУБД Jasmine - построение виртуальных предприятий

Сергей Кузнецов, Computer Associates

Введение

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

Эти новые решения не имеют ничего общего со старыми программами, работавшими на зеленых экранах терминалов мейнфреймов, и уже мало чем напоминают преобладающие сегодня на персональных компьютерах программы с окнами, иконками и ниспадающими меню. Главное отличие приложений нового поколения - это их динамичный характер. Например, некоторые наиболее развитые Web-приложения обладают высоко интуитивным интерфейсом с постоянно обновляющимся содержанием, что особенно привлекательно для посетителей Интернет.

Однако новые мощные приложения нужны не только в среде Web. Многие компании модернизируют свои традиционные клиент-серверные решения, на которых ведутся такие функции, как бухгалтерия, прием и обработка заказов, учет кадров, исследования и корпоративная информация. Эти новые приложения значительно отличаются от тех, что создавались, скажем, лет пять тому назад. Пользователям теперь предоставляются более широкие возможности управления, а доступ может осуществляться не только внутренним, но и внешним пользователям в Интернет и в корпоративных сетях интранет или экстранет.

Общей особенностью всех этих новых приложений является мультимедиа. Мультимедийные средства позволили оживить традиционные типы данных и сделали приложения более удобными в использовании.

Вместе с тем, как и раньше, новые приложения должны характеризоваться высокой производительностью и надежностью - особенно ввиду того, что количество и уровень подготовки пользователей не всегда предсказуем. Безотказность приложений крайне важна для компаний, занимающихся бизнесом в Интернет - в конце концов, сама Сеть открыта для всех желающих круглые сутки и без выходных. Поэтому приложения изначально разрабатываются для всего мирового сообщества. Немаловажное значение имеет также безопасность, особенно если приложение используется для осуществления коммерческих операций.

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

Имея несколько десятилетий опыта в области управления информацией, фирма Computer Associates International, Inc. (CA) понимает потребности компаний, которым должно отвечать новое поколение приложений. Именно поэтому мы и разработали JasmineTM. Эта уникальная система управления информацией позволяет организациям быстро разрабатывать изощренные приложения, предназначенные для обработки мультимедиа и других сложных типов данных и способные функционировать где угодно.

Технические требования к приложениям нового поколения

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

Превосходство мультимедийных приложений доказывается хотя бы тем, что "лучше один раз увидеть, чем сто раз услышать". Благодаря изобилию графики, конструкция приложений в Web и интранет позволяет любому пользователю, попавшему на первую страницу, легко переходить от страницы к странице. В противовес этому, даже наиболее продуманные приложения Windows требуют частого обращения к справочной информации.

Тем не менее, сама идея мультимедийности не только несет в себе многие преимущества для компаний, но и ставит ряд технических проблем перед разработчиками.

На современном предприятии информация хранится в разнообразных источниках, включая реляционные, иерархические и сетевые базы данных. Новые приложения должны уметь обращаться к этим данным из любой клиентской среды, например, из броузера, из Windows на настольном или сетевом компьютере. Отсюда вытекает необходимость совместимости со множеством языков программирования, включая HTML, ActiveX, Java, C++ и другие. Дело осложняется еще и тем, что логистика бизнес-процессов может быть заложена в базах или приложениях, разбросанных по предприятию.

Современное предприятие

Появление мультимедиа в этой и без того запутанной ситуации заставляет особенно остро ощутить потребность в кардинально новом решении. Мультимедиа - это сложный тип информации. Для разработки мультимедийных приложений обычно используются объектно-ориентированные языки. Однако очень часто можно наблюдать "несогласованность сопротивлений", когда приложение, написанное на объектно-ориентированном языке, пытаются привязать к необъектным базам. Приложение, обученное работе с объектами, просто задыхается от необходимости непрерывно собирать в объекты множество разрозненных данных, хранящихся в традиционных базах.

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

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

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

Решение: объектная технология

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

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

Сочетание бизнес-логистики и данных в одной СУБД дает разработчикам множество преимуществ. Главное из них - возможность не задумываться о сложности структуры информации, о том, как именно данные хранятся в базе, как они обрабатываются, изменяются и форматируются для отображения перед конечным пользователем. Это позволяет значительно ускорить процесс разработки приложений. Кроме того, поскольку код создается только один раз и внедряется в данные, он может повторно использоваться другими приложениями, что избавляет разработчика от необходимости каждый раз его дублировать и тестировать перед использованием.

Ограничения альтернативных систем

Реляционные СУБД, предназначенные для хранения простейших типов данных (числа и текст) не способны управлять сложными бизнес-объектами и, тем более, их взаимосвязью. По этой причине многие производители СУБД стремятся научить свои объектно-реляционные системы поддерживать бизнес-объекты.

В объектно-реляционных СУБД, являющихся по сути гибридными, делается попытка строить объекты на реляционной технологии. Такие гибридные системы, как Informix Universal Server или Oracle8 Universal Data Server, не полностью реализуют объектную модель базы данных. Они не поддерживают базовые свойства объектов, такие как наследование. Эти функции приходится нести на себе приложениям, которые становятся слишком громоздкими и потому не могут относиться к "новому поколению". Дополнительной проблемой таких систем является необходимость переноса кода из базы в приложение, что вызывает значительное замедление в работе клиентов на маломощных рабочих станциях.

В расширенно-реляционных системах, таких как DB2 фирмы IBM, изначально добавлены "определяемые пользователем типы данных" (UDT), надстраиваемые над реляционной структурой базы. Но даже в такой архитектуре не полностью реализуется объектная модель и отсутствуют указанные выше возможности.

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

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

Результат таков, что в гибридных системах недостаточно эффективно используются и объектная и реляционная модели базы данных. Как нельзя лучше это выразила эксперт Эстер Дайсон (Esther Dyson), сказав, что "Использовать таблицы для хранения объектов - все равно что разбирать машину прежде, чем поставить ее в гараж, а затем перед выездом снова ее собирать. Можно, конечно, делать и так, но разве это нормально?"

"Комплексный подход Jasmine является его самой сильной стороной. С Jasmine вы имеете мощную мультимедийную базы данных, инструментальное средство пятого поколения и независимую от платформы среду выполнения. Никто сейчас не предлагает ничего подобного." Грег Киндалл (Greg Kindall), вице-президент Data Pro

Необходима подлинно объектно-ориентированная система, в которой реализованы все возможности объектной модели базы данных. Только так можно избежать всех недостатков в гибкости и производительности, присущих альтернативным технологиям. Эффективная система должна также позволять легко разрабатывать приложения нового поколения, иначе масса пользователей ее не примет.

Что же такое Jasmine?

Jasmine представляет собой полностью объектно-ориентированную среду программирования. Это первая в мире СУБД для сложных мультимедийных бизнес-приложений.

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

Jasmine обладает открытой архитектурой. Computer Associates понимает, как много вложений было сделано компаниями в различные системы и языки программирования. К базе данных Jasmine можно одинаково легко обращаться из приложений, написанных самыми разнообразными средствами - будь то Java, C, C++ или HTML, а также любым инструментарием, поддерживающим ActiveX или OLEDB таким как Visual Basic.

Объектная модель Jasmine

Имея в своей основе подлинно объектную модель, Jasmine обладает всеми теми функциями, которые делают объектно-ориентированные СУБД такими мощными. Это абстрактные классы, встраиваемость, классификация, наследование (единичное и множественное), уникальные идентификаторы объектов, методы (включая уровни экземпляра, класса и набора), полиморфизм и агрегация. Поскольку данные наследования хранятся вместе с другими типами метаданных, как и объекты в самой объектной базе, приложения Jasmine обеспечивают полный доступ к дереву наследования, даже в режиме выполнения. Методы хранятся в базе тоже как объекты определенного класса, поэтому они так же могут переопределяться в режиме выполнения, не требуя закрытия базы. Аналогичным образом приложения могут динамически модифицировать и расширять методы и свойства объектов на уровне класса и экземпляра.

Объектная модель позволяет дополнять базу данных Jasmine новыми типами объектов без использования каких бы то ни было реляционных принципов преобразования типа "blades", "cartridges" или "extenders". В этом просто нет необходимости. База данных Jasmine "понимает" хранящиеся в ней объекты точно так же, как реляционная база понимает свои текстовые или числовые поля.

В большой степени эффективность системы Jasmine объясняется наличием в ней библиотек предопределенных и многократно используемых классов, содержащих методы и свойства. Эти классы обеспечивают широчайший набор функций, включая мощные служебные функции, такие как манипуляцию объектами и строками, обработку метаданных, управление наборами, сеансами и транзакциями, динамическую оптимизацию и многое другое. Имеется также мощная библиотека классов мультимедиа и библиотека классов SQL, позволяющая приложениям Jasmine обращаться к базам OpenIngres, Oracle, Sybase, Informix, Microsoft SQL Server, CA-IDMS, CA-Datacom, VSAM и другим.

"Мы выбрали Jasmine в качестве основной СУБД для данных о нашей продукции по двум причинам: потому что это лучшая из объектно-ориентированных систем и она полностью поддерживает Web." Рамеш Редди (Ramesh Reddi), президент Infopike

Наличие библиотек классов SQL в объектно-ориентированной системе позволяет легко работать с данными в существующих базах. Благодаря этому, пользователи могут смело переходить на объектную технологию, не принося в жертву вложения, сделанные ими в существующие системы. Библиотеки SQL также избавляют от необходимости переноса данных или приложений в объектную среду. Преимущества такой интеграции признают не только пользователи СА, но и независимые эксперты.

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

Работая на обычных персоналках, связанных с высокопроизводительным сервером базы данных, приложение Jasmine не занимает много локальных ресурсов. Производительность достигается за счет того, что методы выполняются на более мощном сервере. Так как методы встроены внутри данных, хранящихся в базе Jasmine, внешние приложения не нужно переписывать при изменении бизнес-логистики.

Надежная платформа

В отличие от многих других объектных СУБД, которые разрабатывались для академических или экспериментальных целей, система Jasmine с самого начала предназначалась для использования в бескомпромиссном мире бизнеса. Поэтому она содержит в себе все функции, необходимые для промышленной эксплуатации, обеспечивая высокую степень безопасности, целостности и производительности.

В СА накоплен богатый опыт по обеспечению больших и малых предприятий системами, способными работать безотказно. Весь этот опыт был использован и при разработке Jasmine. Первая версия этого продукта поддерживает SMP, онлайновое резервирование и восстановление, функции безопасности, полное управление транзакциями и распределенное хранение объектов.

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

Jasmine - подлинно объектная СУБД и, будучи таковой, она наиболее эффективна в тех сферах, где требуется точное отображение характера деятельности предприятия. Если реляционная база может легко "загнать" себя попытками соединения многочисленных реляционных таблиц и полей, то с Jasmine такого не произойдет никогда. Встроенные средства навигации по объектам позволяют Jasmine эффективно работать в среде Интернет или интранет, особенно в таких приложениях, где интенсивно используются сложные модели поведения при взаимодействии с пользователем, мультимедийные данные и другие характеристики "нового поколения". Функции навигации вместе с автоматической оптимизацией запросов обеспечивают непревзойденную производительность базы данных Jasmine.

Многонитевая архитектура и поддержка SMP означают, что практически не может быть ограничений на количество пользователей при работе Jasmine в типичных бизнес-приложениях в среде Интернет или по традиционной двухуровневой схеме. Объекты Jasmine могут быть распределены по множеству дисков, что делает возможным использование этой системы в больших высокопроизводительных базах. К тому же, сервер Jasmine для повышения производительности использует особые методы манипуляции объектами, которые позволяют передавать по сети только нужные клиенту объекты.

Jasmine поддерживает кэширование и со стороны сервера, и со стороны клиента. Кэшированию подвергаются как "объекты классов" (метаданные), так и объекты экземпляров (данные). Для ускорения передачи мультимедийных данных в среде Web используются такие технологии, как итерационный доступ, интеллигентное кэширование и эвристическое сжатие данных.

Чтобы добавить свойство аудио (файл WAV), достаточно перетащить файл с рабочего стола на свойство объекта

Jasmine поставляется с полным набором интегрированных служб администрирования и управления, позволяющими легко выполнять резервное копирование и восстановление базы, устанавливать правила безопасности. Имеются также графические утилиты, позволяющие не только просматривать и выбирать содержимое в базе, но также редактировать, добавлять элементы в базу и даже формировать запросы. Добавление объекта или класса в базу Jasmine осуществляется лишь несколькими движениями мыши. Сложные данные (изображения, аудио, видео и другие типы файлов) попадают в базу путем их простого перетаскивания с рабочего стола в окно Jasmine.

Существует распространенное заблуждение, что объектные СУБД якобы неспособны выполнять сложные запросы. В Jasmine запрос - сущий пустяк; нажав пару раз кнопкой мыши, вы получаете мощный и, вместе с тем, легко формируемый запрос.

Computer Associates прекрасно понимает, что требования к информационной системе увеличиваются вместе с ростом предприятия. Свойственная Jasmine открытость, масштабируемость и поддержка различных платформ серверов делают эту СУБД превосходным решением как для небольших киосков в Интернет, так и для гигантских хранилищ информации. А многонитевые технологии управления базой и использование методов на сервере обеспечивают превосходную производительность любому приложению Jasmine.

Условия запроса включают: имя поля, логический оператор и значение поля.

Интегрированная простая среда разработки

Разработчикам современных приложений приходится не только "писать коды". В их задачу также входят конструирование сцен и web-страниц, определение логики приложения, интеграция логики с существующими данными, подготовка готового приложения к установке. Этот процесс напоминает создание музыкального произведения: различные партии и мелодии, исполняемые на разных инструментах, должны быть саранжированы в законченное творение, подчиняющееся одному дирижеру.

Среда разработки Jasmine Application Development Environment (JADS) поддерживает обычные операции перетаскивания мышью при создании мультимедийных приложений и манипуляции с данными в базе Jasmine. Простой для понимания интерфейс JADS, во многом сходный с Microsoft Windows Explorer, позволяет любому программисту быстро создать законченное приложение Jasmine, включая конструирование сцен и прототипа, разработку и тестирование приложения, формирование базы данных и внедрение конечного продукта.

В среде JADS программист работает со "сценами". Сцена - это готовый экран приложения или Web-страница. Интеллектуальные редакторы и броузеры позволяют легко перетаскивать на экран сцены объекты, классы или запросы и определять их свойства и правила взаимодействия. Среда JADS позволяет также:

"С помощью Jasmine нам удалось сделать великолепный прототип мультимедийного приложения для дилеров. Он приковывает взгляд покупателей, и они могут на основе стандартного изображения машины буквально своими руками создать автомобиль своей мечты. Простыми движениями мыши можно выбрать любой аксессуар и сразу же увидеть, как это будет выглядеть на машине. В результате у клиента появляется желание вместе с самим автомобилем купить для него и родные аксессуары." Кевин Смит (Kevin Smith), главный системный менеджер Toyota в Австралии

Добавление графических изображений при разработке приложения происходит легко, благодаря функциям перетаскивания JADS.

Выборочное отображение объектов на экране также осуществляется в JADS без особых усилий, благодаря редактору запросов Jasmine.

Computer Associates
Сергей Кузнецов
Тел./факс (095) 937-4850
URL: http://www.cai.com

Назад | Содержание | Вперед