Проблема создания современных бизнес-приложений СУБДАндреев А. М., Березкин Д.В., Кантонистов Ю. А.
Оглавление
Вначале было...Начнем с истоков СУБД. Бог создал Адама и Еву, Адам и Ева родили Каина и Авеля, далее см. "Ветхий Завет"... В конце концов далекие потомки Адама - фон Нейман и K° породили ящик, напичканный резисторами, реле, конденсаторами и прочими железными штучками, назвав его Компьютер. Ребенок оказался весьма резвым и смекалистым, быстро встал на ноги и в образе Deep Blue недавно обыграл шахматного короля - Гарри Каспарова. Это историческое событие случилось в наши дни и возможно поэтому оценено явно недостаточно. "Господи, при чем же здесь базы данных!" - воскликнете Вы. Дело в том, что память того же Deep Blue - огромная база данных. Неспособная заменить интуицию, соображение, смекалку, она становится решающим моментом в шахматном (и не только?) поединке, когда партия идет по проторенной тропе. Алгоритмы, заложенные в компьютер талантливым программистом, в сочетании с огромным банком данных заставляют поверить в умение машины думать самостоятельно. Посмотрите внимательно на свое рабочее место. Что Вы видите? Рукописи статей, шкафы с различной документацией, папки и книги, аудио- и видео кассеты, почта, факсимильные сообщения и многое другое. Почему информационные системы часто терпят неудачу, если требуется проинтегрировать хотя бы небольшую часть из этих объектов в рамках единой автоматизированной системы управления предприятием? Традиционные системы были разработаны так, чтобы сохранить только табличный текст и числовые данные, т.е. были способны управлять только малой частью общей информации компании. Хорошо справляясь со своей работой по ведению электронного учета и составления счетов такие информационные системы не могут эффективно сохранять и обрабатывать другие типа данных, такие как видео- и аудиообразы, пространственные данные или WEB-страницы. Очевидно, что основным элементом информационной системы предприятия, который отвечает за эти функции является база данных. Базы данных возникли поскольку появилась потребность сохранять значительные объемы данных вне программ, где они используются, причем сохранять на вторичных накопителях - магнитных дисках, лентах и т.п. Простейший способ - записать данные в дисковый файл и извлечь их впоследствии по мере надобности. Это естественное решение проблемы становится неприемлемым, если мы желаем сортировать данные, обеспечить доступ к ним · сразу нескольких пользователей, наладить поиск, резервное архивирование данных. Такие возможности обеспечиваются специальной программой - сервером базы данных, к которому адресуют запросы клиенты. Компьютерные технологии вышли на такой виток эволюции, что отчетливо просматривается стремление перенести в виртуальный мир объекты мира реального с минимальными потерями. Объектная СУБД именно то средство, которое обеспечивает запись объектов в базу данных "как есть". What You have coded is what You put in database- "Все, что Вы запрограммировали, Вы помещаете в базу данных" - вот девиз такой СУБД. Cовременный информационный бизнес развивается столь бурно, что заставляет разработчиков вычислительной техники искать новые решения, которые дают возможность управлять огромными объемами не традиционных данных и обеспечивать пользователю доступ к данным в каждом уголке земного шара. Хотя непосредственно требования предъявляются к программному обеспечению, которое должно соответствовать постоянно растущим запросам, это приводит к необходимости совершенствовать аппаратные средства. Появление более мощной микропроцессорной техники открывает новые горизонты перед разработчиками программного обеспечения, которые успевают в кратчайшие сроки свести на нет все усилия "аппаратчиков", породив очередного компьютерного монстра способного проглотить любые мыслимые и даже порой немыслимые вычислительные ресурсы. В ответ рождается новый аппаратный монстр и гонка продолжается. Такие процессы сопровождаются жестокой конкуренцией и борьбой за рынки сбыта, что позволяет ожидать сохранения отмеченных тенденций. Однако какие бы новые идеи не предлагались, должна быть сохранена приемственность с уже существующими решениями. Поддержание такой приемственности явлется одной из важных задач, которую должны решать современные СУБД и их приложения, что в ряде случаев может быть решающем критерием их выбора. Одна из важнейших целей современного информационного бизнеса - создание информационной системы, охватывающей виртуальное предприятие с доступом к архиву документов, управление бизнес-процессами, получение адекватной инфомации для поддержки принятия решений, планирование, мониторинг контактов с внешним миром. Абсолютно обязательно условие обеспечить доступ работника к ресурсам виртуального предприятия независимо от того, где он находится - на рабочем месте, дома, в командировке. Такая система, помимо всего прочего, должна обладать простыми, но эффективными средствами администрирования. На наш взгляд основными задачами сегодняшнего дня, которые должны решаться в области информационного бизнеса являются:
Нам представляется, что только современные объектные СУБД могут в полной мере удовлетворить все эти потребности. Примером подобной СУБД является Jasmine - совместная разработка компаний Computer Associates International, Inc. (CA) и Fujitsu Limited - полнофункиональное интегрированное решение, открывающее бизнесу новые рынки, позволяющее повысить производительность, снизить затраты и вдохнуть новую жизнь в существующие системы. Ниже мы подробно рассмотрим особенности этой СУБД. Еще немного историиТридцать-сорок лет назад, когда электронные вычислительные машины использовались по прямому назначению - именно как математические вычислители, наиболее распространенными были данные, представленные в виде матриц, массивов - одним словом, линейные структуры. Реляционные СУБД идеально вписались в этот мир, предоставив хранилище в виде таблиц. Сегодня мультимедийные приложения задают новый уровень организации данных. Возникает необходимость хранить сложные, переплетенные многими связями документы. Реляционная модель данных, которая, конечно же, играла и играет важную роль в СУБД, не удовлетворяет сегодняшним требованиям, предъявляемым к срокам разработки крупных проектов, к скорости обработки запросов к базам данных. Крупнейшие разработчики СУБД фактически признали это, спешно встраивая в свои продукты поддержку объектной модели программирования. По соображениям совместимости с прежними наработками, лидеры индустрии СУБД предлагают смешанный подход - объектно-реляционный. Спокойной жизни не получается, революции следуют одна за другой: локальные сети, объектно-ориентированное программирование, мультимедиа, распределенные вычисления, Интернет. Каждая уважающая себя фирма обратилась лицом к объектным технологиям и продуктивно сотрудничает с разработчиками объектно-ориентированных СУБД. IBM и Oracle радикально подошли к проблеме и сейчас переработали ядра своих СУБД (соответственно, DB2 и ORACLE) с целью добавить в него объектные свойства. Другой путь выбрал Informix, который приобрел серьезную объектно-реляционную СУБД Illustra и встроил ее в свою СУБД. В результате получился продукт, именующийся универсальным сервером. Еще один гигант рынка СУБД - Computer Associates, поступил иначе. Эта компания несколько лет назад выпустила очень успешную реляционную СУБД Ingres с возможностью добавления сложных данных - предтечу нынешних универсальных серверов. Естественно, эта СУБД имеет интерфейс с объектными языками. Однако, как известно, в 1996 году Computer Associates приобрела объектную СУБД Jasmine - разработку фирмы Fujitsu и 10 декабря 1997 года объявила о начале ее крупномасштабных поставок на рынок. Таким образом, эта компания сделала ставку на чисто объектную базу Jasmine, активно пропагандируя ее достоинства. По-видимому, рынок корпоративных систем в ближайшее время останется за гибридными объектно-реляционными СУБД. Прогнозы на более длительный срок - занятие неблагодарное. Но наиболее полно современному состоянию вычислительных систем соответствуют, все же, объектные базы данных.
Рисунок 1. Объектные базы и реляционные СУБД В чем же принципиальное отличие реляционных и объектных баз? Мэри Лумис, один из идеологов СУБД Versant, очень кратко и точно сформулировала актуальность объектного подхода к базам данных: "Модель данных более близка сущностям реального мира. Объекты можно сохранить и использовать непосредственно, не раскладывая их по таблицам. Типы данных определяются разработчиком и не ограничены набором предопределенных типов". Когда сложный объект заносится в реляционную базу, обязательна процедура декомпозиции его данных для их размещения в таблице. При чтении объекта из базы он собирается из отдельных элементов и только затем пригоден для использования. В объектных СУБД все иначе. Данные объекта, а также его методы помещаются в хранилище как единое целое. Кроме того очевидно, что объектные языки нуждаются в адекватном долговременном хранилище, куда данные объектов могут помещаться без разнесения по различным таблицам. Взрывообразный рост Интернета и развитие мультимедиа делают задачи высокоэффективного хранения объектов не просто актуальными, а прямо таки животрепещущими. В таблице 1 дается сопоставление основных групп современных СУБД по различным критериям сравнения, указываются наиболее типичные продукты для каждой из перечисленных групп и фирмы их изготовители. Таблица 1.
Сравнительный анализ объектных СУБДОбъектные СУБД реализуют весь набор функций, присущих системам управления базами данных плюс возможности объектного программирования. Таким образом, мы получаем все преимущества СУБД наряду с мощным объектным языком программирования объектов базы - см. рис. 2.
Рисунок 2. Объединение возможностей СУБД и объектного программирования. В верхней части рисунка собраны "краеугольные камни" концепции объектного программирования. Думается, наследование, инкапсуляция данных и полиморфизм в особых комментариях не нуждаются, подробнейшую информацию по ним можно найти в любом современном руководстве по программированию. Идентификация объектов несколько более специфическое свойство, но очень важное в объектных базах данных. Идентификация объектов - это присвоение объекту уникального идентификатора, таким образом, каждый объект в СУБД уникален. Обычно уникальный идентификатор невидим, его "знает" только СУБД, но он не изменяется ни при каких обстоятельствах, несмотря на модификацию объекта вплоть до его удаления. Как замечено в книге Лона Дина по объектным базам данных: "Пожалуй, наиболее значительной особенностью объектных баз данных можно назвать объединение объектно-ориентированного программирования с технологией баз данных для создания интегрированной среды разработки приложений". Объектная база данных обеспечивает доступ к различным источникам данных, в том числе и к данным реляционных СУБД и разнообразные средства манипуляции с объектами базы данных см. рис. 3. Как правило, это и интерфейсы СУБД с объектными языками программирования C++, Java, Smalltalk, и набор ActiveX-элементов (модулей, воспринимающих высокоуровневые команды от приложений VisualBasic, Delphi и т. д.), которые разработчик может использовать в своей программе для работы с СУБД. Через драйвер ODBC (Open Database Connectivity - драйвер доступа к базам данных) к данным объектной базы получают доступ программы, использующие структурированный язык запросов SQL к реляционным базам данных и реляционную модель представления данных. Если такая СУБД имеет ORB-модуль (ORB - Object Request Broker - брокер объектных запросов - средство взаимодействия объектных приложений по протоколу CORBA - Common Object Request Brokers Architecture - общая архитектура брокеров объектных запросов), то для ее объектов открывается путь в сети, в том числе и в Интернет.
Рисунок 3. Интерфейс объектной базы данных. Хорошо известно, что в современном мире без стандартов невозможно развитие технологий и привлечение разработчиков приложений. Не исключение и технологии объектных СУБД. Поэтому ведущие разработчики объектных СУБД в 1992 году образовали группу Object Database Management Group (ODMG) по согласованию и выработке стандартов. К настоящему времени выработаны стандарты по языку запросов, по языкам управления и описания объектов СУБД. Ниже в таблице 2 мы приводим основные коммерческие объектные СУБД и даем их краткие характеристики. Таблица 2. Сравнительный анализ СУБД
Из таблице видно, что объектные СУБД на сегодняшний день являются весьма развитым инструментом создания приложений и проникли в той или иной степени практически во все сферы деятельности в ряде случаев вытесняя, а иногда и органически дополняя традиционные технологии баз данных. Исторически сложилось так, что те или иные объектные СУБД ориентировались на одну или несколько областей, например, телекоммуникации, САПР, создание геоинформационных систем и систем специального назначения и добились в этих сферах значительных успехов. Но только СУБД Jasmine можно считать наиболее универсальным инструментом для создания бизнес-приложений корпоративного уровня. Другим интересным представителем из перечисленных в таблице продуктов является первая российская коммерческая объектная СУБД "ODB-Jupiter". Остановимся на этих системах более подробно. СУБД JASMINE"В течение долгих лет объектная технология сулила множество преимуществ, которые однако слишком медленно воплощались в жизнь. В результате, программисты были вынуждены изучать сложные языки и увязывать друг с другом не интегрированные базы и средства", - говорит Председатель правления и Президент CA Чарльз Б. Ванг (Charles В. Wang). "Именно поэтому мы и объединились с Fujitsu, разработчиком объектной технологии СУБД мирового уровня, чтобы совместно создать и распространять по всему миру эту новаторскую систему." Jasmine поставляется с богатейшей библиотекой классов, позволяющей создавать и манипулировать мультимедийными данными, включая растровые изображения, анимацию, аудио и видео информацию. Продукт поддерживает широкий спектр приложений следующего поколения - от типовых систем электронной коммерции и сервиса до специфичных приложений, предназначенных для таких отраслей, как страхование, финансовые услуги, здравоохранение и телекоммуникации. Написанные на Jasmine приложения легко интегрируются с существующей информационной средой предприятия, потому что совместимы с любыми стандартами данных. "Хотя Fujitsu занималась разработкой и внедрением технологии объектно-ориентированных СУБД более 10 лет, тем не менее, даже такой крупной компании, как наша, чтобы создать такой революционный продукт, как Jasmine, потребовались дополнительные знания и ресурсы Computer Associates, выдающегося разработчика решений в области ИТ",- заявил Тацузуми Фурукава (Tatsuzumi Furukawa), занимающий в Fujitsu пост председателя совета и президента группы компаний по средствам мультимедиа. "Jasmine предоставляет клиентам отличную возможность использовать самые различные типы объектов, включая графику, анимацию, аудио и видео, чтобы создавать совершенно новые приложения для эры глобального электронного рынка." Особенности системы Jasmine:
Примеры разработки приложений на JasmineХотя о выходе окончательной версии СУБД Jasmine объявлено сравнительно недавно, на ее основе разработан уже целый ряд бизнес-приложений. Фирма Toyota объявила о создании на основе Jasmine электронных киосков для своей диллерской сети в Австралии, позволющих покупателю правильно выбрать акссесуары для своего автомобиля и увидеть как они будут смотреться на его машине. Компания L'Oreal преступила к созданию электронных магазинов, позволяющих посетителю ознакомиться и заказать выбранную косметику из огромного числа предлагаемого ассортимента продукции. При этом особо подчеркивается такое преимущество СУБД Jasmine, как возможность производить поиск по изображениям. Покупатель подыскивает губную помаду, тушь для ресниц, лак для ногтей, непосредственно задавая желаемый цвет или его оттенки, например, светлее алого, но темнее розового. Фирма Toys R Us разработала электронный каталог детских игрушек, который содержит не только внешний вид и цены игрушек, но и наглядно показывает как ребенок может с ними играть. Ряд компаний, чья деятельность связана с обработкой и конвертацией изображений - Kodak, Intel, Superscape активно используют СУБД Jasmine в своих разработках. Например, Kodak создал модуль для ввода изображений в базу Jasmine непосредственно с цифровой фотокамеры. Intel работает над продуктом ProShare, предназначенным для проведения полноценных видеоконференций с передачей изображения и звука. Естественно этот продукт будет функционировать на на персональных компьютерах платформы INTEL. Что касается продукта Viscape компании SuperScape, то это средство создания трехмерных интерфейсов поцессов, моделируемых в базе Jasmine. Другой областью, где себя хорошо зарекомендовал Jasmine - это ИНТЕРНЕТ/ИНТРАНЕТ. Еще на этапе бета-тестирования лидеры рынка поисковых технологий ИНТЕРНЕТ - AltaVista Internet Software, Excalibur Technologies, Verity Technologies обратили внимание на Jasmine и создали библиотеки, позволяющие перенести все достоинства полнотекстового поиска в Интернет на объекты, хранимые в базе Jasmine. Особенно активно Jasmine используется в Интранет-системах. На сегодняшний день есть примеры применения Jasmine для создания инфоррмационных систем крупных предприятий. В качестве примера можно привести компанию EDS, построившую распределенную ИНТРАНЕТ-систему на основе СУБД Jasmine. Система включает в себя узел Web-узел и средства для обмена сообщениями между руководителями предприятия. В Департаменте юстиции канадской провинции Саскачеван Jasmine используется для автоматизации различных аспектов деятельности, включая планирование, финансы, кадровый учет. А между тем в России...Научно-производственный центр "ИНТЕЛТЕК ПЛЮС" (г. Москва), имеющий большой опыт разработки полнотекстовых информационно-поисковых систем (ИПС) и мультимедийных баз данных, наряду с использованием собственной разработки - объектной СУБД "ODB-Jupiter". ODB - это аббревиатура Object DataBase, то есть объектная база данных, а Jupiter символизирует потенциал, который заложен в ней для разработки прикладных программ. Текущая версия СУБД функционирует в локальной сети Windows, Windows 95 и Windows NT. Удаленный доступ реализуется средствами Windows NT. Система построена по архитектуре КЛИЕНТ/СЕРВЕР, причем количество серверов в локальной сети может быть произвольным. Важная особенность - встроенные средства поддержки полнотекстовой индексации текстов, средства обработки поисковых естественноязыковых запросов интегрированы в ядро СУБД. Для создания корпоративных баз данных активно применяются программы и технологии ведущих западных фирм. При этом акцент сделан на использование объектных СУБД. С 25 декабря 1997 года при разработке бизнес-приложений в области финансов, коммерции, обработки мультимедиа данных (аудио-, видео-, анимация и т.д.) применяется технология объектной СУБД JASMINE компании Computer Associates. Приложения СУБД JASMINE - сочетание сложной бизнес-логики и беспрецедентных возможностей создания пользовательских интерфейсов. Разработано первое русскоязычное приложение СУБД JASMINE - система учета счетов-фактур предприятия, ориентированная на использование технологий ИНТЕРНЕТ/ИНТРАНЕТ и обладающая широкими возможностями поиска. Использование Среды разработки СУБД JASMINE - JADS позволило выполнить разработку в максимально короткие сроки. Выполнены работы по созданию других приложений СУБД JASMINE корпоративного уровня - системы бизнес-контактов предприятия и электронного киоска предприятия; по обеспечению взаимодействия СУБД JASMINE и СУБД "ODB-Jupiter", что позволяет создавать полнотекстовые ИПС корпоративного уровня, поддерживающие русскоязычную полнотекстовую индексацию. Компанией НПЦ "ИНТЕЛТЕК ПЛЮС" совместно с Информационно-аналитическим управлением Совета Федерации Федерального Собрания Российской Федерации с 1 марта 1998 года ведутся научно-исследовательские работы по созданию системы компьютерного анализа смысла правовых документов. Проект получил рабочее название "Минерва". Конечная цель - экспертная правовая система, которая, используя ранее созданные юридические базы данных или специально подобранные для анализа документы, может выполнить следующие основные функции:
Для хранения знаний в экспертной системе используется технология объектных СУБД. Опыт использования объектных СУБДКонечно, СУБД - это не только и не столько самостоятельный продукт, сколько среда разработки. База данных "ODB-Jupiter" предоставляет набор программных интерфейсов, используя которые можно создавать прикладные программы, хранящие данные в объектной базе. В научно-производственном центре "Интелтек Плюс" создана полнотекстовая информационно-поисковая система "ODB-Text", которая наглядно демонстрирует возможности нашей СУБД и является одновременно мощным инструментом для создания информационно-поисковых систем. Статья о программном комплексе "ODB-Text" версии 2.0 была опубликована в журнале "Мир ПК" №8 за 1997 год. Напомним, что эта система используется для хранения сложных документов, которые могут включать в себя текст неограниченной длины, объекты OLE (Object Linking and Embedding), набор реквизтов (название, дату и т.д.). Использование именно объектной СУБД "ODB-Jupiter" обусловлено наличием в ней развитых механизмов индексации русскоязычных текстов, поддержкой механизма обработки запросов на естественном языке. В феврале 1998 года НПЦ "ИНТЕЛТЕК ПЛЮС" объявил о выходе новой версия ИПС "ODB-Text" - 2.10, которая предоставляет пользователю новые возможности для пользователя при сохранении приемственности с базами данных, созданными при помощи ранних версий продукта. При этом остались неизменным, те минимальные требования к аппаратным средствам, на которых устанавливается ODB-Text : Достаточно иметь процессор 386 и 8 Мб оператиной памяти! К новым фунциям системы можно отнести:
В целом ODB-Text стал более удобным в использовании и позволит Вам решать широкий набор задач быстро и эффективно. Например, перенос документов в нашу систему теперь значительно автоматизирован. Значительно улучшена интеграция с офисными программами. Как было замечено ранее, объектные базы данных находят эффективное применение в самых различных областях. Одно из наиболее серьезных приложений - системы управления крупным предприятием. В НПЦ "Интелтек Плюс" разработан пилотный проект такой системы для Московского Аэрогеодезического Предприятия. В рамках этого проекта система объединяет несколько подразделений (бухгалтерию, планово-производственный отдел, отдел кадров), администрацию предприятия, интегрировать в себя набор баз данных. Такая система обеспечивает представление документов, используемых на предприятии, в электронной форме, средства получения отчетности, систему поддержки принятия решения для руководителей. Предлагается решение, включающее в себя технологии Интранет, распределенные системы и объектную СУБД для хранения документальной информации. Выбор именно объектной СУБД обусловлен рядом причин. Во-первых, большое значение имеют высокие параметры быстродействия, надежности самой СУБД. Во-вторых, с объектной базой легко стыкуются блоки программ, написанных на C++ и Java, что благотворно скажется на сроках разработки проекта. В-третьих, система предполагает существенное наращивание - структурное и функциональное. Предприятие имеет подразделения в регионах России, которые в будущем также потребуется оснастить программным обеспечением и наладить связь с центральной организацией. Что касается функциональности, то очень хороший экономический эффект будет получен от модуля планирования, управления и контроля производственных процессов. Поэтому для реализации архитектуры клиент/сервер выбрана технология Интернет/Интранет. В частности, разработано первое русскоязычное приложение СУБД JASMINE - система учета счетов-фактур предприятия, ориентированная на использование технологий ИНТЕРНЕТ/ИНТРАНЕТ и обладающая широкими возможностями поиска. Использование среды разработки СУБД JASMINE - JADS позволило выполнить разработку в максимально короткие сроки - за 2 недели с участием 1 программиста. Также выполнены работы, по осуществлению взаимодействия СУБД JASMINE и СУБД "ODB-Jupiter", что позволяет создавать полнотекстовые ИПС корпоративного уровня, поддерживающие русскоязычную полнотекстовую индексацию. Ведется активная работа по созданию других приложений СУБД JASMINE корпоративного уровня - системы бизнес-контактов предприятия и электронного киоска предприятия. ЗаключениеКонечно, в небольшой статье трудно рассмотреть все особенности проектирования современных бизнес-приложений СУБД. Однако, даже те вопросы, которые были рассмотрены позволяют сделать выводы о возрастающей роли объектных СУБД на рынке, которая обусловлена тем, что только они могут в полной мере обеспечить высокие требования к программным средствам, используемым в современном информационном бизнесе. Объединение преимуществ объектной СУБД корпоративного уровня такой, как, например, Jasmine и российской объектной СУБД ODB-Jupiter открывает новые перспективы для создания бизнес приложений XXI века, ориентированных на российский рынок. В статье использованы материалы предоставленнные компаниями Computer Associates и НПЦ "ИНТЕЛТЕК ПЛЮС". Все упоминаемые названия продуктов являются торговыми марками соответствующих компаний. |