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

Post on 10-Jan-2016

94 views 4 download

Tags:

description

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

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

BANKINGINFORMATIONSYSTEMS

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

Interface transformation without rewriting code

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

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

BANKINGINFORMATIONSYSTEMS

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

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

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

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

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

О компании

BANKINGINFORMATIONSYSTEMS

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

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

Склад

Аккредитивы

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

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

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

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

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

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

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

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

договоры

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

обработка

Векселя

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

отношения

Денежный

рынок

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

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

депозита

рных

операций

Факторинг

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

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

Нематери

альные

активы

Обмен с бюро

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

О компании

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

банковское

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

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

Interface transformation without rewriting code

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

Обо мне

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

План

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

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

BANKINGINFORMATIONSYSTEMS

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

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

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

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

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

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

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

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

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

План

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

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

BANKINGINFORMATIONSYSTEMS

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

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

Слой данных

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

UI

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

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

GUI

TTY

UIСлой данных

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

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

WEB

Mobile

TTY

Слой данных

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

GUI

UI

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

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

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

RPC вызов

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

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

Interface transformation without rewriting code

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

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

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

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

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

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

План

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

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

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

BANKINGINFORMATIONSYSTEMS

Interface transformation without rewriting code

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

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

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

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.

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>

BANKINGINFORMATIONSYSTEMS

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

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

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

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

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

Конец

Нет

WAIT-FOR

Interface transformation without rewriting code

Нет

Да

Да

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

BANKINGINFORMATIONSYSTEMS

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

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

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

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

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

Да

Нет

Да

Нет

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

WAIT-FOR

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

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

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

Interface transformation without rewriting code

Конец

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

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

BANKINGINFORMATIONSYSTEMS

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

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

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

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

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

Interface transformation without rewriting code

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

SOCKET объект

WAIT-FOR READ-RESPONSE

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

APPLY

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

BANKINGINFORMATIONSYSTEMS

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

RPC вызов

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

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

Interface transformation without rewriting code

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

BANKINGINFORMATIONSYSTEMS

_proapsv

_progres -b

OE AppServerагент

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

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

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

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

Interface transformation without rewriting code

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

BANKINGINFORMATIONSYSTEMS

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

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

Interface transformation without rewriting code

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

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

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

BANKINGINFORMATIONSYSTEMS

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

RPC вызов

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

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

OE AppServer

IPC вызов

Interface transformation without rewriting code

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

BANKINGINFORMATIONSYSTEMS

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

Web запрос

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

Interface transformation without rewriting code

GUI приложение

OE WebSpeed Server

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

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?

BANKINGINFORMATIONSYSTEMS

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

Interface transformation without rewriting code

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

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

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

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

BANKINGINFORMATIONSYSTEMS

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

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

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

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

Interface transformation without rewriting code

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

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

BANKINGINFORMATIONSYSTEMS

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

Interface transformation without rewriting code

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

BANKINGINFORMATIONSYSTEMS

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

Interface transformation without rewriting code

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

BANKINGINFORMATIONSYSTEMS

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

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

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

Interface transformation without rewriting code

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

BANKINGINFORMATIONSYSTEMS

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

Interface transformation without rewriting code

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

BANKINGINFORMATIONSYSTEMS

СПАСИБО!

Skype: bulkloddE-mail: ksv@bis.ruТел.: +7 495 780 3773

ВОПРОСЫ?

Interface transformation without rewriting code