37
Трансформация интерфейса ABL приложения без его переписывания Interface transformation without rewriting code Сергей Климов Системный архитектор Банковские информационные системы BANKING INFORMATION SYSTEMS

Трансформация интерфейса ABL приложения без его переписывания

  • Upload
    rudolf

  • View
    92

  • Download
    4

Embed Size (px)

DESCRIPTION

BANKING INFORMATION SYSTEMS. Трансформация интерфейса ABL приложения без его переписывания. Сергей Климов Системный архитектор Банковские информационные системы. О компании. Банковские Информационные Системы (БИС) Основана в 1991 - PowerPoint PPT Presentation

Citation preview

Page 1: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Трансформация интерфейса ABL приложения без его переписывания

Interface transformation without rewriting code

Сергей Климов Системный архитектор

Банковские информационные системы

BANKINGINFORMATIONSYSTEMS

Page 2: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

Банковские Информационные Системы (БИС) Основана в 1991 Предлагает полный спектр прикладных

информационных решений для банков Является партнером ведущих поставщиков ПО ―

Progress Software, Oracle, IBM, Microsoft, Serena Software, Intalio и другие

Клиентами компании являются ведущие российские и международные банки ВТБ -24, Уралсиб, Bank Societe Generale Vostok, Bank Inteza и другие

О компании

Page 3: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Рефинансирование ипотеки

Материальные запасы

Склад

Аккредитивы

Базовый (РКО)

Администрирование

Операционная касса

Частные вклады

Пластиковые карты

Кредиты и депозиты

Бюджетирование

Хозяйственные

договоры

Предкредитная

обработка

Векселя

Корреспондентские

отношения

Денежный

рынок

Фондовый рынок

Налоговый учетУчет

депозита

рных

операций

Факторинг

Основные средства

Валютный рынок

Нематери

альные

активы

Обмен с бюро

кредитных историй

О компании

Дистанционное

банковское

обслуживание

Казначейство

Interface transformation without rewriting code

Page 4: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

Сергей Климов Разрабатываю на PROGRESS с 1995 (V7)

Автор

• KSV Editor – улучшенный ABL редактор http://herohog.com/ksveditor

• KsvPlugin for OpenEdge Architect – http://www.oehive.org/project/KsvPlugin

Обо мне

Page 5: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

План

Почему нам нужно трансформировать интерфейс приложенийТрадиционные способы трансформации

Что такое БИС трансформер?

Page 6: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Почему нам нужно трансформировать интерфейс приложений

Старая бизнес-система

Interface transformation without rewriting code

Page 7: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Почему нам нужно трансформировать интерфейс приложений

Мы хотим, чтобы все выглядело круто!

Interface transformation without rewriting code

Page 8: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Почему нам нужно трансформировать интерфейс приложений

Наши клиенты имеют проблемы, работая с устаревшим TTY интерфейсом

Interface transformation without rewriting code

Page 9: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Мы хотим, чтобы наши клиенты были счастливее и более

продуктивны с нашим современным графическим интерфейсом

Почему нам нужно трансформировать интерфейс приложений

Interface transformation without rewriting code

Page 10: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

План

Почему нам нужно трансформировать интерфейс приложений

Традиционные способы трансформацииЧто такое БИС трансформер?

Page 11: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Традиционные способы трансформации

Разработка новой системы Рефакторинг старой системы

Interface transformation without rewriting code

Page 12: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Слой данных

Бизнес логика

UI

Старая система

Традиционные способы трансформацииПереход к 3-х звенной архитектуре

Interface transformation without rewriting code

Page 13: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

GUI

TTY

UIСлой данных

Бизнес логика

Традиционные способы трансформацииДобавление GUI

Interface transformation without rewriting code

Page 14: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

WEB

Mobile

TTY

Слой данных

Бизнес логика

GUI

UI

Традиционные способы трансформацииДобавление других UI

Interface transformation without rewriting code

Page 15: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Классический GUI + OCX Новый GUI Open Client WebSpeed

Традиционные способы трансформации Какие опции есть для ABL приложений

Interface transformation without rewriting code

Page 16: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

RPC вызов

GUI приложение OE AppServer

Традиционные способы трансформации Какие опции есть для ABL приложений

Interface transformation without rewriting code

Page 17: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

Плюсы Улучшенная архитектура Улучшенный интерфейс

Минусы Требует массу ресурсов – времени, людей, денег Высокий риск неудачи Многие ограничения старой архитектуры будут

сохранены в новой архитектуре

Традиционные способы трансформацииПлюсы и минусы рефакторинга

Page 18: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

План

Почему нам нужно трансформировать интерфейс приложений

Традиционные способы трансформации

Что такое БИС трансформер?

Page 19: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

Монолитное TTY приложение Более 2-х миллионов строк отменного «спагетти»

кода Почти никакой документации и никаких юнит тестов Никакой поддержки других языков Никаких ресурсов для рефакторинга

Что такое БИС трансформер?Наша начальная позиция

Page 20: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

FILL-IN 1

FILL-IN 5

FILL-IN 6

Frame A

FILL-IN 3

Frame B

FILL-IN 2

Что такое БИС трансформер?Организация UI

FILL-IN 4

Interface transformation without rewriting code

Widg = FRAME a:HANDLE:FIRST-CHILD:FIRST-CHILD.

DO WHILE VALID-HANDLE(Widg):…Widg = Widg:NEXT-SIBLING.

END.

Page 21: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

Frame AFrame A

FILL-IN 2

FILL-IN 1

FILL-IN 3

FILL-IN 4

Frame BFrame B

FILL-IN 5

FILL-IN 6

Что такое БИС трансформер?Организация UI<?xml version="1.0">

<WIDGET HANDLE="306975" NAME="FRAME-A" TYPE="FRAME"> <SIDE-LABELS>yes</SIDE-LABELS> <WIDGET HANDLE="306990" NAME="FILL-IN-1" TYPE="FILL-IN"> <ROW>1</ROW> <SENSITIVE>yes</SENSITIVE> </WIDGET> <WIDGET HANDLE="306992" NAME="FILL-IN-2" TYPE="FILL-IN"> </WIDGET> <WIDGET HANDLE="306975" NAME="FRAME-B" TYPE="FRAME"> <SIDE-LABELS>yes</SIDE-LABELS> <WIDGET HANDLE="406990" NAME="FILL-IN-5" TYPE="FILL-IN"> <ROW>1</ROW> <SENSITIVE>yes</SENSITIVE> </WIDGET> <WIDGET HANDLE="406992" NAME="FILL-IN-6" TYPE="FILL-IN"> </WIDGET> </WIDGET></WIDGET>

Page 22: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Инициализация формы

Ожидание события от пользователя

Есть ли событие?

Запуск триггера

«Последнее» событие?

Конец

Нет

WAIT-FOR

Interface transformation without rewriting code

Нет

Да

Да

Что такое БИС трансформер?Организация UI

Page 23: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Инициализация формы

Получение и отправка данных формы

Есть ли данные?

Запуск триггера

«Последнее»событие?

Да

Нет

Да

Нет

Усовершенствованный

WAIT-FOR

Ожидание данных от формы

Применение данныхПрименение данных

Получение и отправка данных формы

Interface transformation without rewriting code

Конец

Ожидание данных от формы

Что такое БИС трансформер?Модификация UI

Page 24: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Получение данных формы

Отправка данных

Ожидание данных

Применение данных

Запуск триггеров

Interface transformation without rewriting code

Процедура получения данных формы

SOCKET объект

WAIT-FOR READ-RESPONSE

Процедура установки атрибутов виджетов

APPLY

Что такое БИС трансформер?Как сделать усовершенствованный WAIT-FOR

Page 25: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Данные формы и события

RPC вызов

GUI приложение OE AppServer

Данные формы в XML

Interface transformation without rewriting code

Что такое БИС трансформер?Усовершенствованная архитектура

Page 26: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

_proapsv

_progres -b

OE AppServerагент

• ENABLE / DISABLE не работают

• Некоторые атрибуты виджетов не доступны, например SENSITIVE & CHECKED

• BROWSE не поддерживается совсем

• Много других мелких недостатков

Interface transformation without rewriting code

Что такое БИС трансформер?Недостатки сервера приложений

Page 27: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Можно поменять логику вашего приложения, чтобы избавиться от «неподдерживаемого» кода

Можно разработать свой собственный сервер приложений

Interface transformation without rewriting code

Что такое БИС трансформер?Как преодолеть недостатки сервера приложений

но PROGRESS Software уже сделала это для нас

Поприветствуем WebSpeed!

Page 28: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Данные формы и события

RPC вызов

GUI приложение OE WebSpeed Server

Данные формы в XML

OE AppServer

IPC вызов

Interface transformation without rewriting code

Что такое БИС трансформер?Усовершенствованная архитектура v.2.00

Page 29: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Данные формы и события

Web запрос

Данные формы в XML

Interface transformation without rewriting code

GUI приложение

OE WebSpeed Server

Что такое БИС трансформер?Усовершенствованная архитектура v.3.00

Page 30: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

{wait_for.i &THIS_FRAME = "<frame name>"&EXTEXT = “<options for WAIT-FOR>"

}

Interface transformation without rewriting code

/* Обычный код, который выглядит так */WAIT-FOR GO OF FRAME fMain.

/* ...превращается в такой */{wait_for.i

&THIS_FRAME = “fMain” &EXTEXT = “GO OF FRAME fMain”}

Что такое БИС трансформер?Как выглядит усовершенствованный WAIT-FOR?

Page 31: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

- Что?! Мы должны делать это вручную?!

Interface transformation without rewriting code

- Нет. Расслабьтесь!Мы можем это

сконвертировать!

Что такое БИС трансформер?Как заменить обычный WAIT-FOR на усовершенствованный?

https://teamtrack.bis.ru/wshtm/conv.htm

Page 32: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

bloddABL делает всю работу на стороне WebSpeed сервера

bloddConverter превращает обычный код в усовершенствованный

bloddAdapter общается с WebSpeed на стороне клиента

bloddPainter рисует и управляет UI на стороне клиента

Interface transformation without rewriting code

Что такое БИС трансформер?

бизнес логика на разных десктопахblodd – Business Logic On Different Desktops

Page 33: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

То, что выглядело так…

Interface transformation without rewriting code

Что такое БИС трансформер?

Page 34: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

… сейчас выглядит вот так!

Interface transformation without rewriting code

Что такое БИС трансформер?

Page 35: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Вы можете использовать любую GUI/web/mobile платформу

Поддержка разных языков XSLT Если все еще хотите рефакторинг, вы можете начать с

blodd трансформации

Interface transformation without rewriting code

Что такое БИС трансформер?Дополнительные преимущества

Page 36: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

Архитектура остается той же самой Ограниченный UI Проблемы с производительностью Проблемы с конфигурацией сети Ошибки в работе SOCKET

Interface transformation without rewriting code

Что такое БИС трансформер?А в чем проблемы?

Page 37: Трансформация интерфейса ABL приложения без его переписывания

BANKINGINFORMATIONSYSTEMS

СПАСИБО!

Skype: bulkloddE-mail: [email protected]Тел.: +7 495 780 3773

ВОПРОСЫ?

Interface transformation without rewriting code