СТАТЬЯ 13.08.01

Обзор объектно-ориентированной СУБД Jasmine

Предыдущая часть

Александр Зашихин,
Computer Associates
Cтатья была опубликована на сайте www.citforum.ru

4.2. Jasmine Studio - инструмент формирования и реализации систем

Процесс создания системы включает:

После этого система эволюционирует.

Работа с реальной базой требует конкретики, а конкретика такова, что:

1. На этапе анализа и проектирования необходимо:

2. На этапе программирования необходимо:

При выполнением этих двух пунктов можно говорить о реализации системы.

CA вместе с Jasmine поставляет Jasmine Studio (старое название JADE). Это мощнейшее средство, с помощью которого можно просто и быстро сформировать и реализовать систему. Средства Jasmine Studio достаточно разнообразны. Это семь окон:

  1. Application Manager - базовое окно, как для формирования, так и для реализации системы.
  2. Class Browser - окно для работы с классами в процессе формирования и реализации системы.
  3. Class Property Inspector - окно для работы со свойствами классов в процессе формирования и реализации системы.
  4. Object Property Inspector - окно для работы со свойствами экземпляров в классах в процессе реализации системы (создание приложений).
  5. Query Editor - окно для создания запросов, используемых в качестве элементов сцены в процессе реализации системы (создание приложений).
  6. Method Editor - окно для создания методов в процессе реализации системы (создание методов).
  7. Scene Item Property Inspector - окно для работы с элементами сцены в процессе реализации системы (создание приложений).

4.3. Формирование системы и ее эволюция

"Сами по себе объекты не представляют никакого интереса: только в процессе взаимодействия объектов реализуется система". (Гради Буч (Grady Booch) "Объектно-ориентированный анализ и проектирование с примерами приложений на С++").

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

Все классы в Jasmine создаются либо путем наследования, либо путем дублирования, кроме старшего класса. Чтобы создать старший класс необходимо в контекстном меню левой части окна уже известного нам Class Browser выбрать команду New Class и ввести имя класса с заглавной буквы (так рекомендует CA) латинскими буквами. (Напомнить смысл правой кнопки - контекстного меню объекта). После того как класс создан, можно определять его свойства, т.е. имена и типы свойств. Для этого надо в контекстном меню левой части окна Class Property Inspector (оно открывается командой Open из контекстного меню выбранного класса в окне Class Browser) выбрать команду New Property, ввести имя и:

Отметим только, что у старшего класса свойства-связи быть не может.

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

Чтобы создать класс путем наследования, необходимо в том же Jasmine Class Browser выбрать нужный класс, а затем в его контекстном меню - команду New Subclass, с последующим заданием имени класса.

Дублирование класса выполняется аналогично наследованию, только в контекстном меню исходного класса надо выбрать команду Duplicate Class и т.д.

В чем же отличие этих двух способов?

В первом случае мы создаем копию класса с его свойствами и методами на следующем, нижнем уровне иерархии, т.е. создаем подкласс. Во втором случае мы создаем копию класса с его свойствами и методами на на том же уровне иерархии.

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

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

В нотации Гради Буча (Grady Booch) система может напоминать нечто изображенное ниже:

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

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

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

Абстрактные классы в Jasmine - это козырь проектирования! Вот почему система, сформированнная (этап анализа и проектирования) средствами Jasmine, упрощает сопровождение (меньше ошибок), легко эволюционирует (изменяется в связи с изменяющимися требованиями) и не требует при этом сохранения (использования любых средств для поддержания ее жизни).

4.4. Реализация системы и эволюция приложений

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

По Гради Бучу (Grady Booch) объектно-ориентированное программирование (OOP - Object-Oriented Programming) это когда:

  1. В качестве базовых элементов используются объекты, а не алгоритмы;
  2. Объекты являются экземплярами какого-то класса (для Jasmine несколько шире);
  3. Классы организованы иерархически.
    (К чему бы все это?)

На этапе реализации системы, мы помним, необходимо создать методы и приложения.

Что касается методов, то они уже были рассмотрены. Теперь рассмотрим процесс создания приложений.

Чтобы создать приложение в Jasmine необходимо:

  1. Чтобы присвоить имя приложению необходимо в контекстном меню левой части окна Application Manager выбрать последовательно команды New, Application и ввести имя приложения (можно использовать кириллицу).
  2. Сконструировать сцену приложения, это значит:
  3. Для оформления приложения в том или ином виде необходимо в меню верхней части Application Manager выбрать Tools, а затем Create Distribution Executable или Publish Web Application и далее по диалогу.

5. Открытость

5.1. Интеграция с другими СУБД

В Jasmine предусмотрена интеграция с реляционными СУБД: Oracle, Sybase, Ingres, Informix, MS SQL Server, DB2 и др. Это значит, что Вы, будучи клиентом Jasmine и используя методы семейства классов sqlCF, можете обращаться из своих приложений в любую из перечисленных баз данных. При этом, можно начать реализацию частями действующей системы в новой объектной базе данных. Это к вопросу о сохранении инвестиций сделанных в прежние технологии! Анонсируется интеграция и с нереляционнымии СУБД майнфреймов: VSAM, IMS и др. Подробный перечень СУБД можно найти на: www.cai.com.

5.2. Возможность использования различных средств разработки

Из всех средств разработки для Jasmine наиболее серъезными являются:

  1. Jasmine Studio;
  2. MS Visual C++;
  3. MS Visual J++.
Только с их помощью можно полноценно формировать системы. Что касается реализации систем, то:
  1. При создании методов необходимо помнить, что:
  2. При создании приложений можно использовать любые из перечисленных средств.
С этой целью в Jasmine интегрированы следующие интерфейсы: Подробный перечень средств разработки и интерфейсов можно найти на: www.cai.com.

6. Надежность

В плане надежности Jasmine имеет полный набор средств, присущих реляционным базам данных, включая конечно и транзакции. Мы уже знаем, что транзакции можно начать, закончить и откатить назад из приложений, но не из методов! Справочная целостность (нельзя обращаться к ликвидированному объекту) в Jasmine необязательна! При обращении к ликвидированному объекту будет выдано сообщение, которое обрабатывается обычным образом. Кроме того, CA предлагает своим заказчикам следующие средства:

7. Требования к ресурсам технических средств клиентов

Если не считать оперативной памяти, то требования достаточно просты: если производительность компьютера в требуемой операционной системе Вас устраивает, то этого вполне достаточно для нормальной работы Jasmine. Что касается оперативной памяти то, когда появилась OS/2 Warp фирмы IBM, Билл Гейтс заявил, что она требует слишком много оперативной памяти, целых 4mB. Только через год появилась Windows 95, которую никак нельзя было сравнить с OS/2 Warp. Еще позднее появилась Windows NT4, которую уже можно было сравнивать с OS/2 Warp, но "ела" она для своих нужд порядка 20mB оперативной памяти, отдавая остатки приложениям пользователей. Сегодня Windows 2000 Professional при загрузке "съедает" для собственных нужд порядка 50mB оперативной памяти. Jasmine забирает порядка 30mB на то самое интеллектуальное кэширование. Все остальное достается приложениям, а сколько - зависит уже от объема оперативной памяти Вашего PC. Рассмотреть:

8. Нейроагенты (Neugents) - агенты нейронных сетей

Если для Jasmine v1.21 под Windows NT4 рекомендовалось 64mB оперативной памяти, то для Jasmine ii рекомендуется 128mB. Дело в том, что Jasmine ii имеет не только трехмерный (3D) интерфейс, но использует элементы технологии нейронных сетей, так называемые нейроагенты, или Neugents. Это программные модули, с помощью которых процессы можно представлять в виде функций нескольких переменных, а значит анализировать и прогнозировать эти процессы. При этом Neugents могут работать не только с предварительным заданием условий, приводящих к экстремальным ситуациям (управляемое обучение), но и в режиме самообучения, выявляя условия экстремальных ситуаций и выдавая сигнал. В обоих случаях Neugents накапливают статистическую информацию о системе, анализируют ее и выдают прогноз. McLaren Mersedes устанавливает именно Jasmine на компьютеры болидов "Формула 1" и с ее помощью осуществляет сбор телеметрической информации (усилие на тормоза, открытие дросс.заслонок, ускорения, перегрузки) ее обработку и вывод. У нас это звучит как АСУТП.

9. Заключение

Весь материал был изложен в расчете на привычное "табличное мышление". Но перестраиваться нужно и думать надо по новому. Переход к объектным СУБД особенно тяжелым будет для тех, кто давно и хорошо сидит на игле старых технологий. Переход на объектные технологии требует не столько изучения новых языков, сколько изменения способа мышления. В своей книге "Объектно-ориентированный анализ и проектирование" Гради Буч (Grady Booch) пишет (дается с сокращениями), что: Профессионалу требуется всего несколько недель, чтобы освоиться с семантикой и синтаксисом нового языка программирования. Но в несколько раз больше времени потребуется этому специалисту, чтобы начать понимать мощь и важность объектов! Наконец, может потребоваться более полугода экспериментов, чтобы он созрел до понимания того, как строятся объектные модели: обучение мастерству всегда требует времени. Обучение на примерах часто оказывается эффективным и целесообразным. Когда же организация накопит критическую массу приложений выполненных в объектно-ориентированном стиле, станет гораздо легче обучать этому делу новых сотрудников. Для развития объектно-ориентированного мировоззрения необходимо:
  1. Обеспечить формальное обучение сотрудников элементам объектной модели.
  2. Начать с проектов с низким уровнем риска, допуская появление ошибок. По мере приобретения опыта, лучших можно направлять в другие команды в качестве наставников.
  3. Продемонстрировать сотрудникам примеры хорошо структурированных объектно-ориентированных систем.

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

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Отправить ссылку на страницу по e-mail
Обсудить на форуме Computer Associates


Interface Ltd.
Тel/Fax: +7(095) 105-0049 (многоканальный)
Отправить E-Mail
http://www.interface.ru
Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 13.08.01