Комментарии: Инструментальные средства для модернизации корпоративных приложений и подходов к их разработке

Недавно анонсированный продукт IBM® Rational® Developer for System z® Unit Test предлагает существенное улучшение методов разработки, сопровождения и тестирования приложений для мэйнфреймов. В этой статье поясняется, как это решение, наряду с другими продуктами линейки IBM Rational Enterprise Modernization, можно использовать в типичном сценарии трансформации существующих приложений "зеленого экрана" для мэйнфреймов в интерфейс смартфона с помощью современных технологий. Из журнала IBM WebSphere Developer Technical Journal.

Реджинальдо Бароса, ведущий ИТ-специалист, IBM

Author photoРеджинальдо У. Бароса (Reginaldo Barosa) — ведущий ИТ-специалист корпорации IBM. Он занимается поддержкой продаж, оказывая заказчикам помощь по решениям для модернизации корпоративных приложений и средствам разработки, таким как Rational Developer for System z. Перед приходом в американское подразделение IBM более десяти лет назад Реджинальдо 27 лет проработал в бразильском филиале IBM. Он является соавтором руководств IBM Redbook и автором двух книг, а также множества статей и учебных пособий для IBM developerWorks. Имеет диплом инженера-электротехника Технологического института Мауа, Сан-Паулу, Бразилия.



30.10.2012

Помните времена зеленых экранов?

Мы все знаем, как быстро развиваются технологии. Помните, например, пейджеры? Не далее чем десять лет назад, когда впервые появились компактные сотовые телефоны, один мой друг страстно мечтал о новой “раскладушке”. Тогда такой телефон считался ультрасовременным, а сейчас другу было бы стыдно вытащить его из кармана.

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

Поэтому перед разработчиками встает вопрос: как эффективно провести модернизацию приложения, чтобы оно не устарело сразу же?

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

В этой статье приводится очень простой пример модернизации приложения для мэйнфреймов и демонстрируется, как аналитики, архитекторы и разработчики могут быстро, эффективно и надежно трансформировать имеющиеся приложения с помощью отдельных продуктов пакета IBM Rational и сервис-ориентированной архитектуры (SOA). Я расскажу, как повторно использовать существующий код и выполнить быструю трансформацию с помощью современного структурированного подхода.


Сценарий трансформации

Пример сценария, который используется в этой статье, очень прост и широко распространен: нужно взять существующее приложение COBOL/CICS® и трансформировать его старый интерфейс для терминала 3270 в интерфейс iPhone — и сделать это нужно, не добавляя нового кода (кроме уровня представления), и так, чтобы существующее приложение для мэйнфрейма сохранило функциональность. Да, и еще одно очень важное и обязательное требование: производительность трансформированного приложения должна оставаться по крайней мере на том же уровне, что и сейчас.

Существует несколько средств и технологий, которые помогут вам и вашим коллегам добиться такого результата. В данном примере мы будем использовать:

На рисунке 1 показана аппаратная и программная архитектура, использованная в реализации этого простого сценария. Обратите внимание, что в данном примере используются три ноутбука: два из них (Mac и Lenovo T60as) являются клиентами, а третий (Lenovo W510) используется в качестве сервера.

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

Рисунок 1. Аппаратная и программная архитектура, используемая в нашем сценарии
Figure 1. Hardware and software architecture used in our scenario

1. Вам потребуется гибкая среда разработки, использующая систему z/OS

Чтобы сэкономить ресурсы мэйнфрейма, но при этом иметь гибкую среду разработки для z/OS, вы можете запустить на серверном ноутбуке среду Rational Developer for System z Unit Test. В данном примере CICS V4.1 работает в z/OS под Rational Developer for System z Unit Test, что позволяет подключить и запустить трансформируемое приложение. На рисунке 2 показан зеленый экран, полученный в результате простого запроса с помощью этого приложения, работающего в системе Rational Developer for System z. Пользователь вводит CICS-транзакцию BKXX, выбирает опцию View (Обзор) и вводит некоторый номер (в данном примере 000002). После нажатия на Enter на экране отображаются данные.

Рисунок 2. Текущий интерфейс 3270 существующего приложения CICS
Figure 2. Existing CICS application current 3270 interface

2. Вам потребуется структурированный подход к формированию требований и контролю трансформационных изменений

Вместо того чтобы готовить требования, переписываясь по электронной почте и применяя разобщенные инструменты, вы можете воспользоваться продуктом Rational Team Concert с расширениями для вашей системы z/OS, работающей на Rational Developer for System z Unit Test.

С помощью Rational Team Concert архитектор или аналитик может формировать требования и передавать их разработчику. Эти требования называются элементами потока операций. Обратите внимание, что хотя ваши компоненты развернуты в системе z/OS под CICS, исходный код хранится в репозитории Rational Team Concert, который установлен на Linux®— на том же Linux, на котором работают система z/OS и Rational Developer (рисунок 1). (Rational Team Concert может работать на разных платформах и под управлением z/OS, но в данном примере он работает под обычным Linux.)

Для доступа к Rational Team Concert можно использовать Web-браузер или интерфейс Eclipse. В данном случае элемент потока операций создается с помощью браузера, как показано на рисунке 3.

Рисунок 3. Архитектор создает элемент потока операций с помощью Rational Team Concert
Figure 3. Architect uses Rational Team Concert to create a work item

3. Вам потребуется инструмент, позволяющий определить, какие из существующих компонентов z/OS можно развернуть в виде Web-сервисов.

Теперь аналитик должен исследовать CICS-транзакцию BKXX, которая мы собираемся трансформировать.

Для поиска компонентов z/OS, используемых в этой CICS-транзакции, и выявления тех из них, которые могут развертываться в CICS в качестве Web-сервисов, можно использовать TSO/ISPF, но почему бы не воспользоваться вместо этого автоматизированным инструментом? Кроме того, неплохо было бы знать, какое влияние окажет трансформация на существующие развернутые ресурсы.

Все эти возможности предлагает Rational Asset Analyzer. В нашем сценарии Rational Asset Analyzer установлен на систему z/OS (рисунок 1), и любой человек, нуждающийся в информации о существующем приложении и его компонентах, может обратиться к нему через Web-браузер. В нашем случае аналитик использует для этой операции Web-браузер, а позднее разработчик будет обращаться к базе данных Rational Asset Analyzer с помощью плагина Eclipse, установленного в Rational Developer.

Архитектор анализирует транзакцию BKXX с помощью браузера и определяет, что она состоит из других транзакций и программ, и, в частности, что идеальным кандидатом на развертывание в CICS в качестве Web-сервиса является программа COBOL CICS под названием BKPXXS1.

Результаты работы Rational Asset Analyzer показаны на рисунке 4.

Рисунок 4. Результаты анализа трансформации кода в Rational Asset Analyzer
Figure 4. Rational Asset Analyzer browser results during code transformation analysis

Обладая этой информацией, разработчик должен завершить процесс трансформации после дополнительного анализа. Аналитик с помощью Rational Team Concert обновляет элемент потока операций и дает задание разработчику, передавая ему снимки экрана и подробную информацию о программе COBOL, которая будет развернута в качестве Web-сервиса (BKPXXS1).

Теперь элемент потока операций перешел к новому владельцу (разработчику), и миссия аналитика на этом заканчивается, хотя позже он может ознакомиться с работой, проделанной разработчиком в Rational Team Concert, и утвердить ее.

4. Вам потребуется простой и эффективный способ выбора метода трансформации кода

Разработчик получает по электронной почте уведомление о том, что необходимо выполнить некоторую разработку, и для того, чтобы приступить к работе, ему понадобится доступ к Rational Team Concert. Он обращается к Rational Team Concert из Rational Developer for System z, который является для него средством разработки, и получает доступ к соответствующему элементу потока операций.

На рисунке 5 приведено представление элементов потока операций Rational Developer и показано рабочее задание со всей необходимой документацией, что позволяет разработчику начать анализ программы COBOL, которая будет развернута в качестве Web-сервиса.

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

Рисунок 5. Обращение к Rational Team Concert через интерфейс Rational Developer для обновления элемента потока операций
Figure 5. Accessing Rational Team Concert via Rational Developer interface to update a work item

5. Вам потребуется глубоко проанализировать необходимый код COBOL

Если разработчик решит, что нужно внести изменения в код COBOL (в нашем сценарии код не меняется), с помощью Rational Asset Analyzer он может выполнить анализ влияния, выявить нерабочие фрагменты кода и т.д. На рисунке 6 показан пример того, как пользователь анализирует программу BKPXXS1 и разбирается в логике ее работы с помощью Rational Developer for System z.

Рисунок 6. Разработчик использует Rational Asset Analyzer, интегрированный с Rational Developer
Figure 6. Developer using Rational Asset Analyzer integrated with Rational Developer

6. Вам потребуется средство создания и развертывания Web-сервисов

Разработчик должен упаковать существующий код COBOL и развернуть Web-сервис CICS, не внося изменений в код COBOL. Этот метод позволяет избежать влияния на существующее приложение. Для создания, тестирования и развертывания Web-сервиса CICS разработчик будет использовать Rational Developer for System z. (Несколько статей о создании Web-сервисов вы найдете в Ресурсах.) На рисунке 7 показано представление Enterprise Services в Rational Developer, содержащее мастер создания Web-сервиса CICS.

Рисунок 7. Создание Web-сервисов CICS с помощью Rational Developer
Figure 7. Creating a CICS Web Services using Rational Developer

Важно помнить, что поскольку z/OS работает в среде Rational Developer, мы не оказываем никакого влияния на мэйнфрейм. После успешного тестирования сервиса в Rational Developer нужно просто перенести код на реальный мэйнфрейм для дальнейшего тестирования и окончательной доработки.

Используя Rational Developer и необходимую авторизацию CICS, вы можете развернуть Web-сервисы CICS на основе созданных компонентов (рисунок 8).

Рисунок 8. Развертывание Web-сервисов CICS из Rational Developer
Figure 8. Deploying a CICS Web Service from Rational Developer

В процессе создания Web-сервиса SOAP создается также и его описание на языке WSDL. Как видите, применение этих инструментов позволяет легко понять, насколько быстрой может быть разработка в z/OS.

7. Вам потребуется средство тестирования и отладки развертываемых Web-сервисов

После развертывания Web-сервиса его нужно протестировать. Если при этом обнаружатся проблемы, вам, возможно, потребуется отладка кода COBOL, работающего на z/OS.

Web-сервис можно протестировать, используя созданный WSDL и обозреватель Web-сервисов Web Services Explorer, входящий в состав Rational Developer for System z. На рисунке 9 показан Web Services Explorer в действии. Разработчик вводит входное сообщение и получает ответ.

Рисунок 9. Тестирование Web-сервиса CICS
Figure 9. Testing the CICS web service

При получении неожиданных результатов можно выполнить отладку компонентов z/OS с помощью встроенного в Rational Developer отладчика. Используя доступный в Rational Developer обозреватель CICS, вы можете выбрать программу COBOL для отладки и указать адрес TCP/IP и номер порта ноутбука, на котором расположен слушающий клиент. При этом активируется отладчик z/OS, работающий на Rational Developer, после чего для отладки кода можно использовать представление отладчика, как показано на рисунке 10.

(Представление отладчика Rational Developer используется и для отладки кода на других языках, например, Java.)

Рисунок 10. Отладчик z/OS в действии
Figure 10. z/OS debug in action

8. Вам потребуется современный язык для создания интерфейса Web 2.0

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

Если вас интересуют подробное описание Web 2.0 и его достоинств и преимущества EGL над другими технологиями, такими как JavaScript™ Ajax и т.п., загляните в Ресурсы, поскольку обсуждение этих тем выходит за рамки настоящей статьи. На этом этапе задача разработчика заключается в создании интерфейса Web 2.0 из существующего сгенерированного WSDL-описания развернутых Web-сервисов.

Rational Developer с EGL имеет диалоговое окно, создающее интерфейс EGL, который можно использовать в коде EGL для обращения к Web-сервису CICS. Мастер использует предоставленный WSDL и создает простой код EGL. Этот код будет использоваться в операторе вызова EGL, который будет обращаться к сервису CICS. Код EGL показан на рисунке 11. Обратите внимание, что этот вызов Web-сервисов CICS является асинхронным. Другими словами, при запуске его в браузере в виде JavaScript пользователю не нужно ждать возврата данных из CICS, и Web-браузер может использоваться для других операций. В этом заключается одно из преимуществ использования Web 2.0. Мастера EGL в Rational Developer существенно упрощают обращение к Web-сервисам CICS.

Рисунок 11. Код EGL для обращения к Web-сервису CICS
Figure 11. EGL code to invoke the CICS web service

Можно также использовать графический редактор EGL Web 2.0 для перетаскивания мышью таких компонентов интерфейса, как кнопки, выпадающие меню, мини-приложения Dojo или специализированные интерфейсы, как показано на рисунке 12. А щелкнув на вкладке Source (исходный код), вы увидите код EGL, полученный в результате такого перетаскивания.

Рисунок 12. Создание интерфейса Web 2.0 в графическом редакторе EGL
Figure 12. Creating the Web 2.0 interface using EGL graphical editor

Графический редактор EGL имеет три вкладки: Design (проектирование), Source (исходный код) и Preview (предварительный просмотр) (рисунок 12). Вкладка Preview полезна для тестирования компонентов Web 2.0 (рисунок 13) и показывает Web-интерфейс именно в том виде, как его увидит пользователь.

Рисунок 13. Вкладка предварительного просмотра редактора EGL с данными, возвращенными Web-сервисами CICS
Figure 13. Preview EGL editor tab with the data returned from CICS web services

На этом этапе миссия завершена. Теперь можно проверить скорость реакции Web-сервисов CICS с помощью простой строки кода EGL. При первом запуске этого примера было зарегистрировано время реакции в несколько миллисекунд. Не забывайте, что данные, переданные в CICS, представляли собой XML; CICS выполнил грамматический анализ этих данных и вызвал программу на COBOL, которая получила данные из базы данных, снова отправила их на грамматический анализ и возвратила их клиенту в формате XML.

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

Рисунок 14. Существующее приложение COBOL/CICS с интерфейсом iPhone
Figure 14. The existing COBOL/CICS application with iPhone interface

9. Для завершения работы и получения разрешений вам нужно обменяться информацией с коллегами

Разработчик может снова обратиться к Rational Team Concert, обновить закрепленный за ним элемент потока операций и, при необходимости, запросить разрешение других членов команды на дополнительное тестирование и окончательную доработку.

Мы могли бы еще многое обсудить, но не будем усложнять и просто закончим на том, как разработчик закрывает свой элемент потока операций. На рисунке 15 показано, как он делает это - по-прежнему при помощи Rational Developer.

Рисунок 15. Завершение работы над элементом потока операций Rational Team Concert
Figure 15. Resolving the Rational Team Concert work item

Конечно, можно пойти дальше и использовать другие возможности Rational Team Concert для создания и развертывания компонентов и выполнения тестов другого уровня или даже для передачи нового кода в производство, но, надеюсь, вы уже поняли, что имеющиеся средства могут сделать весь этот процесс очень простым и практичным.


Заключение

В этой статье показан сценарий, который использует современные средства разработки для модернизации существующего приложения с «зеленым экраном» на COBOL/CICS путем его переноса в Интернет с помощью технологии Web 2.0 с одновременной трансформацией инфраструктуры разработки приложения.

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

Ресурсы

Комментарии

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=WebSphere, Web-архитектура
ArticleID=843568
ArticleTitle=Комментарии: Инструментальные средства для модернизации корпоративных приложений и подходов к их разработке
publish-date=10302012