Что нового и замечательного в IBM Data Studio Developer 1.2

Повышенное качество обслуживания и ускоренный выпуск Java-приложений

Версия IBM® Data Studio Developer 1.2 ускоряет разработку и улучшает управление во многих ситуациях. Новая версия Data Studio Developer содержит множество полезных функций, которые ускорят и упростят работу как разработчиков, так и администраторов баз данных, ориентированных на приложения, предоставляя уникальные возможности по локализации проблем и анализу влияния и использованию статического SQL для существующих приложений JDBC, а также усовершенствования в области разработки и администрирования статического SQL, Web-сервисов и многого другого. В настоящей статье описаны функции, появившиеся в данной версии, которые помогут упростить решение сложных задач.

Рафаэль Косс, архитектор решений Data Studio Enablement, IBM  

Rafael CossРафаэль Косс (Rafael Coss) является архитектором решений группы IBM Data Studio Enablement при лаборатории IBM Silicon Valley Lab в Сан-Хосе, штат Калифорния. Он отвечает за развитие отношений с партнерами по разработке и связи с заказчиками продуктов IBM Data Studio. До этого он занимал ряд других постов в IBM, в том числе ответственного за разъяснение заказчикам и партнерам возможностей DB2 pureXML. Работает в IBM с 1998 года, получил степень магистра вычислительной техники в Калифорнийском политехническом институте в Сан-Луис-Обиспо, штат Калифорния.



Сонали Суранж, руководитель группы разработки инструментов Data Studio pureQuery, IBM  

Фото Сонали СуранжСонали Суранж (Sonali Surange) возглавляет группу разработки инструментов IBM Data Studio pureQuery в организации IBM Data Server Tools при лаборатории IBM Silicon Valley Lab в Сан-Хосе, штат Калифорния. До прихода в IBM Сонали руководила разработкой нескольких ключевых компонентов инструментария Visual Studio .Net для СУБД IBM.



Виджай Боммиреддипалли, разработчик решений Data Server, WSO2 Inc

Виджай Боммиреддипалли (Vijay Bommireddipalli) - разработчик решений в отделе Data Servers Solutions в лаборатории IBM Silicon Valley Lab в Сан Хосе, Калифорния. Он помогает клиентам и партнерам освоить технологии серверов данных IBM. До этого был разработчиком в группе Warehouse Manager. Пришел в IBM в июле 2000 года после получения степени магистра по вычислительной технике и электротехнике в Университете Массачусетса в Дартмуте.



07.10.2009

Основные новые функции

Ниже перечислены основные новые функции среды Data Studio Developer 1.2 и Data Studio pureQuery Runtime 1.2:

  • Оптимизация существующих приложений JDBC (оптимизация клиента) без изменения кода Java
  • Упрощение диагностики для разработчиков с возможностью углубляться в код приложения для выявления и отображения проблемных мест исходного кода
  • Улучшенный анализ влияния в приложениях на основе БД с возможностью углубляться в исполнение запросов SQL с целью анализа «где используется?»
  • Дополнительные функции Data Studio pureQuery Runtime:
    • Неоднородная пакетная обработка для повышения производительности при внесении изменений даже в несколько таблиц сразу
    • Возможность непосредственного исполнения под z/OS
  • Эффективное взаимодействие с администратором БД в области разработки на основе статического SQL:
    • Улучшенные инструменты компоновки для оптимизации и компоновки процессов от проектирования до компоновки и проверки
    • Улучшенное управление пакетами
  • Ускорение работы над проектами pureQuery
    • Проверка качества SQL и возможность легко обмениваться кодом SQL с администратором БД или членами группы
    • Перенос на pureQuery существующих Java-приложений для работы с базами данных
    • Преобразование методов Java в хранимые процедуры базы данных одним нажатием кнопки
    • Поддержка статического SQL для хранимых процедур
    • Улучшенная и настраиваемая генерация кода
  • Улучшенные Web-сервисы данных быстрой подготовки ресурсов данных для SOA
    • Поддержка статического SQL для Data Web Services
    • Web-сервисы поверх JMS для создания высоконадежных приложений на основе Web-сервисов
    • Создание и внедрение Data Web Services в IBM WebSphere DataPower

Оптимизация существующей структуры приложений

Статический SQL может обеспечить более постоянную или даже повышенную производительность приложений DB2и лучшую модель авторизации. Более подробный обзор преимуществ статического SQL приведен в статье “No Excuses” в разделе Resources.

Раньше...

Решение об использовании статического SQL DB2 для Java-программ принималось на этапе проектирования. Разработчик выбирал определенный API или среду Java Persistence, что неявно предполагает и использование режима исполнения SQL. До выбора SQLJ в качестве API все другие варианты доступа использовали динамическое исполнение. Использовать преимущества статического SQL в существующих JDBC-приложениях или приложениях на базе среды было невозможно. При использовании pureQuery требовался API с аннотациями (annotated-method style API), который позволил бы переключаться между статическим и динамическим SQL.

Теперь...

Преимущества статического SQL можно использовать с любыми существующими приложениями DB2 JDBC при помощи функции оптимизации клиента pureQuery. Приложения могут использовать такую среду Java Persistence, как Hibernate, JPA или iBatis, либо это может быть любой простой интерфейс JDBC для доступа к базе данных. Никаких изменений в код вносить не нужно. Функция оптимизации клиента работает путем компоновки кода SQL, взятого из работающего приложения. Она перехватывает динамические вызовы SQL, выбирает, какие операторы работают статически, компонует выбранные операторы и переводит режим исполнения SQL для выбранных операторов из динамического в статический.

Чтобы использовать эту функцию в инструментарии Data Studio Developer, нужно выполнить следующие общие шаги.

  1. Шаг 1. Создание проекта по оптимизации клиента

    Чтобы сообщить Data Studio Developer, что тот или иной проект готов для оптимизации клиента, выполните следующие шаги:

    1. Щелкните правой кнопкой на проекте Java, содержащем код вашего приложения. Затем выберите pureQuery -> Add pureQuery Support.
    2. Отметьте поле Enable SQL capturing and binding for JDBC applications, как показано ниже:
      Рисунок 1. Подготовка к вводу SQL и компоновке для JDBC-приложений
      Подготовка к вводу SQL и компоновке для JDBC-приложений

    Если же в проект уже добавлена поддержка pureQuery, выполните следующие шаги:

    1. Щелкните правой кнопкой на проекте и выберите Properties.
    2. В левом меню на странице Properties разверните pureQuery и выберите Properties.
    3. Отметьте поле Enable SQL capturing and binding for JDBC applications.
  2. Шаг 2. Сбор кода SQL

    Чтобы собрать код SQL, нужно выполнить приложение в режиме capture. Режим capture работает как интерпретатор драйвера JDBC, собирая все операторы SQL, поступающие из приложения, и передавая их через драйвер в базу данных. При включении режима capture pureQuery собирает из приложения в файл все успешно выполненные операторы SQL. После выполнения приложения файл capture содержит все операторы SQL, которые потенциально могут быть переведены в статический SQL. Если все пути доступа к данным в приложении исполнены, то собранная информация содержит полный перечень операторов SQL, переданных в базу данных.

    SQL можно собирать при помощи любого из следующих сценариев:

    1. В среде разработки выполните отдельные тесты для проверки всех частей своего приложения, генерирующих SQL. Это рекомендуемый подход для тех случаев, когда существуют подходящие тесты.
    2. В контроля качества или рабочей среде для сбора SQL можно использовать версию функции capture на основе командной строки.

    При использовании версии функции capture на основе командной строки можно импортировать введенный контент в среду разработки и воспользоваться преимуществами в области локализации проблем и анализа зависимостей, которые предлагает новое представление pureQuery, описанное в разделе Локализация проблем.

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

    Заметим, что описанный выше Шаг 1 относится к настройке проекта в режиме capture ON.

    Рисунок 2. Установка режима capture ON
    Установка режима capture ON
  3. Шаг 3. Компоновка собранного SQL

    Чтобы статически выполнить любой оператор SQL, нужен связанный с ним пакет SQL DB2. Пакеты создаются с использованием процесса компоновки. Теперь, когда код SQL собран, его нужно скомпоновать в этот файл capture для целевой базы данных, создав таким образом пакет. (При желании можно модифицировать полученные пакеты, удалив определенные пакеты или операторы SQL внутри пакетов. Подробнее об оптимизации клиента pureQuery будет рассказано в последующих статьях и руководствах developerWorks.) Компоновка – это процесс сохранения плана доступа, относящегося к оператору SQL, в пакете SQL DB2. Выберите собранный файл, в данном случае capture.pdqxml, щелкните правой кнопкой и выберите pureQuery > Bind.

    Рисунок 3. Компоновка собранного кода SQL
    Компоновка введенного оператора SQL

    После создания пакетов администратору БД, возможно, понадобится обеспечить надлежащие права авторизации для пакетов. Это можно сделать из Database Explorer в Data Studio Developer.

  4. Шаг 4. Исполнение с использованием статического SQL

    Теперь можно переключить режим исполнения SQL для выбранных операторов SQL из динамического исполнения SQL в статическое. В файле DB2JccConfiguration.properties используйте справку (content assist) для перевода режима capture в состояние OFF, установите режим исполнения STATIC, а затем вновь запустите свое приложение, чтобы воспользоваться преимуществами статического SQL.

    Рисунок 4. Исполнение с использованием статического SQL
    Исполнение с использованием статического SQL

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

Упрощение локализации проблем для разработчиков

Раньше…

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

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

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

Многоуровневые архитектуры и применение интегрированных сред еще больше усложняло такое сопоставление. Приложения, использующие такие среды, как Hibernate или JPA, генерируют SQL динамически, и разработчику трудно проследить путь конкретного оператора (или группы операторов) SQL до языка запросов среды, которая его сгенерировала, даже при наличии исходного кода. Без исходного кода сделать это еще труднее. Поэтому если конечный пользователь, разработчик или администратор БД жаловался на плохо исполняемый оператор SQL, попытка локализовать этот оператор в исходном коде Java могла стоить больших усилий.

Теперь…

Data Studio Developer 1.2 облегчает сопоставление операторов SQL с определенным классом и номером строки Java, даже если SQL генерируется интегрированной средой. В этом можно убедиться на примере нового схематического представления pureQuery outline view. Более того, на этом представлении можно легко углубляться в исходный код приложения, запустившего генерацию данного оператора SQL.

Чтобы воспользоваться преимуществом схематического представления pureQuery, нужно выполнить одно из следующих действий:

  • Написать приложение с применением API стиля annotated-method pureQuery. Это заранее подготавливает нужную информацию для процесса отладки на этапе разработки и тестирования.
  • Собрать операторы SQL из исполняемого приложения (или импортировать предварительно собранные операторы SQL), как описано в разделе Оптимизация клиента. После этого можно пользоваться преимуществами схематического представления.

По списку операторов SQL в схематическом представлении можно, дважды щелкнув на любом операторе SQL, выбрать режим Show in source (показать в исходном коде).

На рис.5 показаны перечисленные на схематическом представлении операторы SQL pureQuery, сгенерированные приложением OpenJPA, причем каждый из них связан со своим источником в приложении:

Рисунок 5. Связь SQL с исходным кодом Java
Связь SQL с исходным кодом Java

Углубленный анализ влияния в приложениях базы данных

Раньше…

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

Теперь…

Благодаря описанному выше схематическому представлению pureQuery в Data Studio Developer 1.2 сразу видно, какие части приложения используют те или иные таблицы, столбцы и представления базы данных. Это позволяет разработчику и администратору БД легко устанавливать связь между отдельными операторами SQL, выдаваемыми определенным классом Java, одновременно определяя, на какие таблицы и колонки ссылается этот оператор.

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

На вкладке Database схематического представления pureQuery видно, какие объекты базы данных используются в приложении. При углублении в каждую схему и таблицу представления можно увидеть операторы SQL, использующие эти объекты. Углубляясь в SQL еще дальше, вы увидите, какие столбцы использует оператор. Если дважды щелкнуть на SQL или щелкнуть на SQL правой кнопкой и выбрать Show in source, отображается приблизительный номер строки приложения, запустившей создание данного запроса SQL.

Вкладка Database в схематическом представлении pureQuery предоставляет также сведения о том, сколько может потребоваться изменений в приложении, если изменится данная таблица или данное представление. Для получения такой информации по столбцам можно воспользоваться меню фильтра на схематическом представлении pureQuery и указать имя столбца. В результирующем схематическом представлении будут перечислены лишь те операторы SQL, которые используют данный столбец. И наоборот, если есть исходный код Java, можно щелкнуть правой кнопкой на столбцу в операторе SQL и выбрать pureQuery-> Show In-> pureQuery outline.

Каждый участник группы теперь может легко оценить, на какие части приложения повлияет предлагаемое администратором БД изменение в схеме. В ходе совместной работы администраторы БД и разработчики могут определить, какие изменения дадут наилучший результат с минимальным риском.

Вкладка Database демонстрирует схемы и таблицы, используемые в приложении операторами SQL. Показанный на следующем рисунке фильтр ограничивает обзор только теми операторами SQL, которые используют столбец FIRSTN.

Рисунок 6. Сопоставление операторов SQL со столбцами базы данных
Связь SQL с базой данных

Дополнительные возможности Data Studio pureQuery Runtime

Раньше...

Версия Data Studio Developer 1.1 поддерживала много практических рекомендаций по JDBC, таких как пакетное исполнение операторов SQL. JDBC поддерживает объединение операторов SQL в единую таблицу и пакетное исполнение всей этой группы операторов. Операторы SQL передавались по сети в один присест. Стиль pureQuery inline обеспечивает использование этого приема JDBC при помощи API updateMany. Стиль аннотированного метода pureQuery также поддерживает это неявно, когда набор объектов передается в метод с соответствующими операторами INSERT, UPDATE или DELETE.

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

Теперь...

При помощи функции pureQuery heterogeneous batching (неоднородная пакетная обработка) можно обрабатывать пакеты операторов INSERT, UPDATE и DELETE, относящихся к разным таблицам. Такие неоднородные пакетные обновления позволяют редактировать все соответствующие таблицы за одну операцию передачи данных на сервер. pureQuery добавляет методы для неоднородных пакетных обновлений, при помощи которых вы сообщаете pureQuery о начале и окончании пакетного обновления. Неоднородная пакетная обработка потенциально улучшает производительность при выполнении операторов INSERT, UPDATE и DELETE над несколькими таблицами. Она может улучшить согласованность логики базы данных Java благодаря возможности указывать, что это взаимосвязанный набор операций INSERT, UDPATE и DELETE.

Стандартная поддержка z/OS

IBM Data Studio pureQuery Runtime for z/OS позволяет устанавливать среду исполнения pureQuery на серверах z/OS и обращаться к данным DB2 for z/OS с применением методов доступа JDBC типа 2 или типа 4. Более подробные сведения о возможных преимуществах для производительности и экономии ресурсов ЦП при помощи pureQuery on z/OS можно почерпнуть в статье по анализу производительности из раздела Resources.

Эффективное сотрудничество по разработке статического SQL с администратором БД

Раньше…

Задачи разработчика данных и администратора БД не были согласованы; если разработчик использовал инструменты для передачи опций компоновки в компонуемые пакеты, то администратор должен был заново переносить те же опции компоновки в командную строку. Еще чаще опции компоновки создает администратор БД, а разработчик должен использовать их, чтобы привязать к разрабатываемым или тестируемым базам данных. Разработчики не могут использовать в среде разработки такие опции компоновки, созданные администраторами БД. Разработчики и администраторы БД, использующие Data Studio Developer, не могли получать обратную связь по пакетам, созданным для базы данных в результате компоновки или легко определить, какие пакеты относятся к данному классу Java.

Теперь…

Многочисленные функции Data Studio Developer 1.2 облегчают сотрудничество между разработчиком и администратором БД. Опции компоновки содержатся в обычных файлах, которые можно использовать в командной строке или в интегрированных инструментах разработки Java. При использовании инструментов разработки предлагаемая информация позволяет продуктивно создавать опции компоновки даже неопытным разработчикам.

Рассмотрим некоторые сценарии с использованием этих функций коллективной работы:

  • Администратор БД и разработчик работают отдельно.

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

    Администратор БД может просто создать файл опций компоновки и отправить его разработчику или специалистам по контролю качества для многократного использования в среде разработки.

  • Разработчики помогают администраторам БД

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

  • Администраторы БД помогают разработчикам

    Администраторы БД, в распоряжении которых имеются инструменты разработки Data Studio Developer, могут использовать функции его редакторов для создания сложных опций компоновки. Они могут проводить испытания на тестовых или рабочих базах данных без изменений в проектах разработки. Значительно улучшенный просмотр пакетов в Database Explorer позволяет администратору БД проверять пакеты, передаваемые в базу данных.

Усовершенствованные инструменты компоновки

В сложных сценариях Data Studio Developer 1.2 еще больше упрощает разработку и применение статических операторов SQL. Вот некоторые из важных новых функций:

  • Справка (content assist) и возможность использования цветов в редакторах для создания новых возможностей по проектированию пакетов
  • Справка и возможность использования цветов в редакторах для создания сложных опций компоновки
  • Возможность связывать в среде разработки один, несколько или все объекты
  • Возможность привязки к базе данных разработки, тестирования, рабочей или любой другой среде без изменения параметров проекта
  • Предварительный просмотр пакетов и кода SQL в пакетах до их внедрения
  • Связь между конструкторским представлением и представлением базы данных для проверки пакетов, созданных на основе БД
  • Исключение, замена или добавление новых версий пакетов
  • Создание единых пакетов из множества интерфейсов pureQuery

В следующем разделе все эти функции рассматриваются более подробно.

От проектирования к компоновке: усовершенствованные инструменты для разработки статического SQL

Data Studio Developer предоставляет разработчикам и администраторам БД больше средств управления и обратной связи по процессам разработки и компоновки статических операторов SQL, от проектирования до компоновки.

  1. Шаг 1. Проектирование пакетов

    При помощи вспомогательных инструментов для работы с текстом и цветом в новых редакторах Data Studio Developer 1.2 можно указать имя пакета, идентификатор набора или версию пакета. При работе с существующими JDBC-приложениями или приложениями на основе среды можно также удалять из пакетов определенные операторы SQL.

    На следующем рисунке показана справка по разработке пакетов.

    Рисунок 7. Проектирование собственных пакетов
    Проектирование собственных пакетов

    Ниже приведен пример свойств для проектирования пакетов:

                com.demo.ActData=-collection myNewColl -rootPkgName myPkg -pkgVersion V1
  2. Шаг 2. Предварительный просмотр пакетов

    При помощи Data Studio Developer можно предварительно просматривать пакеты в режиме проектирования, чтобы убедиться в правильности наименования, кода SQL и т.п. Цикл «проектирование – предварительный просмотр» можно повторять до тех пор, пока пакет не будет готов для компоновки.

    Чтобы предварительно просмотреть пакеты до их компоновки, перейдите на вкладку SQL представления схемы pureQuery и щелкните на нужном пакете. Представление Properties содержит дополнительную информацию, такую как имя версии, идентификатор набора и т.п.

    Чтобы увидеть код SQL, который будет включен в пакет, разверните узел пакета. Если вы указали, что определенные пакеты или SQL не должны компоноваться (в рамках оптимизации клиента), используйте это представление, чтобы убедиться, что они не включены во вкладку схемы SQL pureQuery.

    Чтобы повторить цикл «проектирование – предварительный просмотр», просто измените файл default.genprops и обновите представление схемы pureQuery.

    На приведенном ниже рисунке показаны пакеты в окне предварительного просмотра. Здесь видно, что пакет myPkg скомпонован в набор с идентификатором myNewColl и имеет идентификатор версии V1. Видно также, какие операторы будут включены в пакет.

    Рисунок 8. Предварительный просмотр пакетов
    Проектирование пакетов
  3. Шаг 3: Компоновка пакетов

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

    Следующий рисунок иллюстрирует справку по опциям компоновки для серверов.

    Рисунок 9. Справка по опциям компоновки
    Content assist for bindoptions

    Вот пример свойств для компоновки пакетов:

                com.demo.ActData =-isolationLevel CS -bindOptions "QUALIFIER SSURANGE"

    Когда пакет готов к компоновке, его можно скомпоновать для базы данных разработки, тестирования или рабочей БД, не меняя среды разработки проекта.

    На следующем рисунке показано, что для этого достаточно щелкнуть правой кнопкой на интерфейсе pureQuery и выбрать меню pureQuery->Bind. Выберите базу данных для компоновки и нажмите кнопку OK.

    Рисунок 10. Компоновка пакета
    Компоновка пакета
  4. Шаг 4: Проверка компоновки

    После успешной компоновки можно легко найти скомпонованный пакет в базе данных, перейдя на вкладку SQL в окне pureQuery outline и дважды щелкнув на имени пакета. Другой способ – щелкнуть правой кнопкой на пакете и выбрать Show in Database Explorer.)

    Это немедленно открывает пакеты, созданные в базе данных в результате успешной компоновки, как показано ниже.

    Рисунок 11. Ссылка на пакеты в Database Explorer после компоновки
    Ссылка на пакеты в Database Explorer после компоновки

    В следующем разделе описаны новшества Database Explorer, которые позволяют получать больше информации о пакетах.

Улучшенная поддержка навигации по пакетам DB2

Усовершенствования Database Explorer позволяют получать максимум необходимой информации о пакетах в среде разработки.

Data Studio Developer позволяет легко исследовать существующие пакеты. В окне Properties видна такая информация, как операторы SQL в каждом пакете, использовавшиеся опции компоновки, версия пакета, набор, уровень изоляции, привилегии пользователя и т.п. Эта усовершенствованная поддержка навигации по пакетам DB2 иллюстрируется на рис. 12.

Рисунок 12. Усовершенствованная навигация по пакетам DB2
Усовершенствованная навигация по пакетам DB2

Ускоренная реализация проектов

В Data Studio Developer 1.2 особое внимание уделяется прозрачной интеграции инструментов разработки SQL в среду разработки Java. Возможность для разработчика легко находить все операторы SQL, выдаваемые приложением, позволяет ему использовать различные сценарии, описанные в следующих разделах.

Проверка качества SQL

В предыдущих разделах было показано, как использовать схематическое представление pureQuery outline для выбора всех операторов SQL в приложении.

Щелкнув правой кнопкой на операторе SQL в окне pureQuery outline, можно запустить Visual Explain и увидеть путь доступа SQL (рис. 13). Теперь разработчик может усовершенствовать код SQL (возможно, совместно с администратором БД) и повторить весь цикл до использования оператором SQL желаемого пути доступа.

Рисунок 13. Действия над SQL в окне pureQuery outline
Действия над SQL в окне pureQuery outline

Сравнение изменений SQL в разных версиях приложения

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

Обмен кодом SQL с администратором БД или другими членами команды

Если разработчики хотят отправить код SQL на согласование администратору БД, они могут сделать это в окне pureQuery outline. Выберите один или более операторов SQL, щелкните правой кнопкой и выберите Export SQL. Теперь весь код SQL из приложения можно целиком передать администратору БД для обычной процедуры согласования и внесения усовершенствований в цикле разработки приложения. Экспорт всего кода SQL в Java-классе позволяет администратору БД легко проверять все операторы SQL, выдаваемые Java-классом, не просматривая исходного кода Java, а разработчик может быстро и легко сгенерировать этот список.

Члены команды могут узнавать об операторах SQL, выдаваемых другими частями приложения, что дает им общее представление об используемых операторах SQL и объектах базы данных.

Если у администратора БД тоже есть Data Studio Developer, он также может проверить все операторы SQL в файлах классов Java, просто пользуясь представлением pureQuery outline, без необходимости экспортировать их. Администратор БД может запустить код SQL и выполнить команду explain над SQL – и все это из окна pureQuery outline. Окно pureQuery outline содержит наглядную схему всех операторов SQL в Java-классе.

Перевод в pureQuery существующих Java-приложений на основе базы данных

Иногда желательно перейти из существующих приложений в pureQuery, чтобы использовать удобство модели программирования этой среды. В Data Studio Developer 1.2 это можно сделать значительно проще, экспортировав существующий код SQL из схематического представления с последующей генерацией интерфейса pureQuery из экспортированного SQL.

  1. На схеме pureQuery выберите один или несколько операторов SQL, щелкните правой кнопкой и выберите Export SQL to File, как показано ниже.
    Рисунок 14. Экспорт в файл операторов SQL
    Экспорт в файл операторов SQL
    Теперь из одного или более операторов SQL можно сгенерировать код pureQuery.
  2. В File -> New->Other разверните Data и выберите pureQuery Annotated-method interface.
  3. Теперь при помощи мастера можно сгенерировать уровень доступа к данным pureQuery сразу для всех операторов SQL в файле *.sql.

    Мастер содержит шаг импортирования файла *.sql и при необходимости меняет характеристики компонента по умолчанию, предложенные инструментами. Будет сгенерирован уровень доступа к данным pureQuery с определенным именем интерфейса и предположениями для API по каждому из операторов SQL.

    Действия мастера показаны на следующем рисунке.

    Рисунок 15. Генерация кода pureQuery для набора операторов SQL.
    Генерация кода pureQuery для набора операторов SQL

Настройка процесса генерации кода

Раньше...

Data Studio Developer обеспечивает возможность настраивать генерируемый код с применением параметров и диалогов мастера пользовательского интерфейса.

Теперь...

Подробнее о шаблонах JET

Шаблоны JET – это среда генерации кода на основе Eclipse. Более подробные сведения можно почерпнуть из следующего документа: "Как больше – и лучше — программировать в Eclipse при помощи JET" (EN).

Вы получаете более гибкие возможности настройки генерируемого кода за пределами инструментальной среды. Data Studio Developer 1.2 предоставляет шаблоны Eclipse JET, применяемые для генерации всех операций создания, чтения, редактирования и удаления SQL (CRUD) уровня доступа к базе данных pureQuery и создания тестового кода. Эти шаблоны можно рассматривать как свои собственные, настраивая их или передавая другим разработчикам. Если группа использует Data Studio Developer 1.2, то теперь сгенерированный код следует за изменениями в настроенных шаблонах. Эту функциональность можно применять для создания новых файлов, изменения уже сгенерированных файлов и т.п.

Расширенная поддержка генерации кода

Такие среды программирования, как Hibernate, часто делают предположения о соответствиях между объектами Java и используемыми реляционными данными и не предоставляют разработчику возможности менять эти соответствия. Например, среда может предположить, что любое поле CHAR(1) должно соответствовать булевому типу данных. Если ваше приложение на самом деле хранит в этом поле несколько разных кодов состояния, это может означать, что база данных на основе этого предположения выберет неоптимальный путь доступа, вычисляя булево значение.

Теперь Data Studio Developer 1.2 предоставляет возможность указать базу данных по умолчанию для соотношений типов Java на уровне рабочего пространства. Эти параметры можно настроить так, чтобы параметры разработки сочетались с бизнес-требованиями. Затем эти предпочтения можно экспортировать и раздать разработчикам, чтобы гарантировать согласованное использование соотношений типов.

Вот некоторые дополнительные возможности, которые могут способствовать повышению производительности труда и достижению гибкости в крупных проектах:

  • Организованная генерация кода для интерфейсов pureQuery и тестов в разных пакетах SQL DB2.
  • Форматирование SQL после генерации кода или модификации SQL.
  • Генерация полных уровней доступа к данным из одного или более операторов SQL за один раз.

Создание Java-процедуры одним нажатием кнопки

Разработка обычной/хранимой процедуры базы данных Java упростилась до предела. Достаточно указать на свой метод Java и нажать кнопку.

Кроме того, теперь в своих процедурах можно использовать статический SQL pureQuery в стиле аннотированного метода и получить те же преимущества для производительности, какие дает COBOL со статическим SQL, при простоте программирования, которая характерна для pureQuery и Java. Щелкните правой кнопкой внутри процедуры Java и выберите Create Stored Procedure.

Рисунок 16. Создание процедуры
Создание процедуры

Усовершенствованные Web-сервисы данных

Раньше...

Первая версия Data Studio содержала замечательное новое решение для представления информации из базы данных в виде Web-сервисов. Это решение с говорящим названием Data Web Services позволяет создавать Web-сервисы на основе таких операций базы данных, как операторы SQL (SELECT, UPDATE, INSERT, DELETE, XQueries) и хранимые процедуры, не требуя никакого программирования! Вот некоторые основные возможности Data Web Services:

  • Разработка Web-сервисов без программирования
  • Встроенная поддержка компоновки как в стиле SOAP, так и в стиле REST
  • Возможность внедрять Web-сервисы в существующую инфраструктуру SOA всего несколькими щелчками кнопки мыши
  • Автоматическая генерация файла WSDL на основе готовых Web-сервисов
  • Встроенная среда разработки доступа к данным и Web-сервисов с встроенными практическими рекомендациями

Теперь...

В Data Studio 1.2 механизм Data Web Services дополнен рядом функций для повышения безопасности и контроля и предлагает широкие возможности по внедрению. Рассмотрим некоторые из главных усовершенствований.

Поддержка статического SQL в Data Web Services

Теперь Data Studio Developer позволяет использовать pureQuery внутри Data Web Services. Такие преимущества pureQuery, как лучшая производительность, безопасность и управляемость, теперь распространены и на Data Web Services.

Для внедрения Web-сервисов J2EE есть новая опция, которая позволяет указывать, будет ли Web-сервис обращаться к базе данных с использованием JDBC или pureQuery. А модель авторизации на основе пакетов статического SQL, обеспечиваемая pureQuery, предоставляет администратору БД лучшие возможности по управлению представлением данных посредством Web-сервисов.

Рисунок 17. Поддержка статического SQL в Data Web Services
Поддержка статического SQL в Data Web Services

Data Web Services с применением SOAP поверх JMS

Для создания Web-сервисов, которые требуют гарантированной доставки, вместо SOAP поверх HTTP можно использовать SOAP поверх JMS. Как показано на рис.18, SOAP поверх JMS теперь можно выбрать в качестве транспорта, когда выбрана целевая платформа WebSphere Application Server. Приложения JMS взаимодействуют с применением либо модели передачи сообщений «точка-точка», либо модели «издатель/подписчик». В этой версии Data Web Services поддерживает только модель передачи сообщений «точка-точка» с использованием очередей. Data Web Services, разработанные с использованием подхода без программирования в Data Studio, можно внедрять в надежную среду передачи сообщений, определив в WebSphere Application Server параметры, необходимые для работы JMS.

Рисунок 18. Data Web Services с применением SOAP поверх JMS
Поддержка Data Web services в среде передачи сообщений

Доступ к DB2 на основе Web-сервисов с применением программно-аппаратных комплексов WebSphere DataPower SOA

В новой версии Data Studio Developer в качестве целевой платформы для внедрения Web-сервисов добавлен программно-аппаратный комплекс WebSphere DataPower SOA. DataPower – это высокопроизводительное специализированное и простое в установке сетевое устройство, которое упрощает, помогает защитить и ускоряет работу XML и Web-сервисов (см. рис.19). С ним можно следовать той же знакомой модели разработки, что и в Data Studio 1.1 — перетащить блок Web-сервиса из операций базы данных, затем выбрать внедрение и сгенерировать объекты в DataPower, а не в сервер J2EE. При внедрении на серверах J2EE, таких как WebSphere Application Server, Data Studio Developer генерирует файл Web-приложения J2EE ( *.war). Если выбрано внедрение в DataPower, Data Studio генерирует файлы XSLT (вместо файла *.war), которые можно устанавливать на DataPower.

Это решение соединяет лучшие стороны обоих подходов — упрощенную модель разработки Data Web Services с обработкой на скорости среды передачи DataPower для создания быстродействующих Web-сервисов.

Рисунок 19. Внедрение Data Web Services на программно-аппаратном комплексе WebSphere DataPower
Внедрение Data Web Services на DataPower

Заключение

Мы лишь в общих чертах рассмотрели основные новые функции Data Studio Developer 1.2. Лучший способ получить настоящее представление об описанных здесь усовершенствованиях — это загрузить ознакомительную версию и поработать с ней самостоятельно. Мы рекомендуем также посмотреть видеозапись, сделанную одним из наших инженеров, где рассказывается о многих описанных здесь новых важных возможностях.

В табл. 1 сведены функции, поддерживаемые версией 2.1 для каждой платформы СУБД:

Таблица 1. Поддерживаемые функции для платформ СУБД
ФункцияDB2 для LUWInformix Dynamic ServerDB2 для z/OSDB2 для i
Оптимизация клиента
для статического исполнения существующих приложений JDBC
ЕстьБудетЕстьЕсть
Определение задач для разработчиковЕстьЕстьЕстьЕсть
Анализ влияния на приложения базы данныхЕстьЕстьЕстьЕсть
Обработка неоднородных пакетовЕстьНетЕстьЕсть
Доступ на основе Web-сервисов к DB2 с применением программно-аппаратных комплексов WebSphere DataPower SOAЕстьНетЕстьЕсть
Все прочие функцииЕстьЕстьЕстьЕсть

Ресурсы

Научиться

  • Оригинал статьи (EN)
  • "IBM Data Studio software: The big picture" (июль 2008 г.): Обзор программного обеспечения IBM Data Studio. Как использовать этот новый продукт для повышения производительности, улучшения качества услуг и достижения большей согласованности между ИТ-персоналом. (EN)
  • "“No Excuses” Database Programming for Java" (май 2008 г.): Создание быстродействующих программ при помощи статического SQL и pureQuery. (EN)
  • "IBM Data Studio pureQuery Runtime for z/OS Performance" (июль 2008 г.): Краткий обзор технологии pureQuery и новые функции оптимизации клиента в версии 1.2, которые распространяют преимущества статического SQL на любое готовое Java-приложение. (EN)
  • Видеоролик о возможностях IBM Data Studio Developer 1.2: Ведущий разработчик инструментария рассказывает о новых возможностях Data Studio 1.2. (EN)

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=433494
ArticleTitle=Что нового и замечательного в IBM Data Studio Developer 1.2
publish-date=10072009