370 likes | 664 Views
BANKING INFORMATION SYSTEMS. Трансформация интерфейса ABL приложения без его переписывания. Сергей Климов Системный архитектор Банковские информационные системы. О компании. Банковские Информационные Системы (БИС) Основана в 1991
E N D
BANKING INFORMATION SYSTEMS Трансформация интерфейса ABL приложения без его переписывания Сергей Климов Системный архитектор Банковские информационные системы Interface transformation without rewriting code
О компании Банковские Информационные Системы (БИС) • Основана в 1991 • Предлагает полный спектр прикладных информационных решений для банков • Является партнером ведущих поставщиков ПО ― ProgressSoftware, Oracle, IBM, Microsoft, SerenaSoftware, Intalioи другие • Клиентами компании являются ведущие российские и международные банки ВТБ-24, Уралсиб, Bank SocieteGeneraleVostok, Bank Intezaи другие Interface transformation without rewriting code
О компании Казначейство Базовый (РКО) Денежный рынок Валютный рынок Фондовый рынок Хозяйственные договоры Пластиковые карты Налоговый учет Кредиты и депозиты Обмен с бюро кредитных историй Учет депозитарных операций Администрирование Корреспондентские отношения Векселя Материальные запасы Частные вклады Основные средства Бюджетирование Предкредитная обработка Операционная касса Дистанционное банковское обслуживание Аккредитивы Рефинансирование ипотеки Факторинг Нематериальные активы Склад 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 Interface transformation without rewriting code
План Почему нам нужно трансформировать интерфейс приложений Традиционные способы трансформации Что такое БИС трансформер? Interface transformation without rewriting code
Почему нам нужно трансформировать интерфейс приложений Старая бизнес-система Interface transformation without rewriting code
Почему нам нужно трансформировать интерфейс приложений Мы хотим, чтобы все выглядело круто! Interface transformation without rewriting code
Почему нам нужно трансформировать интерфейс приложений Наши клиенты имеют проблемы, работая с устаревшим TTY интерфейсом Interface transformation without rewriting code
Почему нам нужно трансформировать интерфейс приложений Мы хотим, чтобы наши клиенты были счастливее и более продуктивны с нашим современным графическим интерфейсом Interface transformation without rewriting code
План Почему нам нужно трансформировать интерфейс приложений Традиционные способы трансформации Что такое БИС трансформер? Interface transformation without rewriting code
Традиционные способы трансформации • Разработка новой системы • Рефакторинг старой системы Interface transformation without rewriting code
Традиционные способы трансформации Переход к 3-хзвенной архитектуре Старая система Слой данных UI Бизнес логика Interface transformation without rewriting code
Традиционные способы трансформации Добавление GUI UI GUI Слой данных TTY Бизнес логика Interface transformation without rewriting code
Традиционные способы трансформации Добавление других UI Mobile WEB UI Слой данных GUI TTY Бизнес логика Interface transformation without rewriting code
Традиционные способы трансформации Какие опции есть для ABL приложений • КлассическийGUI + OCX • Новый GUI • Open Client • WebSpeed Interface transformation without rewriting code
Традиционные способы трансформации Какие опции есть для ABL приложений RPC вызов GUI приложение OE AppServer Interface transformation without rewriting code
Традиционные способы трансформации Плюсы иминусы рефакторинга Плюсы • Улучшенная архитектура • Улучшенный интерфейс Минусы • Требует массу ресурсов – времени, людей, денег • Высокий риск неудачи • Многие ограничения старой архитектуры будут сохранены в новой архитектуре Interface transformation without rewriting code
План Почему нам нужно трансформировать интерфейс приложений Традиционные способы трансформации Что такое БИС трансформер? Interface transformation without rewriting code
Что такое БИС трансформер? Наша начальная позиция • Монолитное TTY приложение • Более 2-х миллионов строк отменного «спагетти» • кода • Почти никакой документации и никаких юнит тестов • Никакой поддержки других языков • Никаких ресурсов для рефакторинга Interface transformation without rewriting code
Что такое БИС трансформер? Организация UI Frame A FILL-IN 1 FILL-IN 3 Widg = FRAME a:HANDLE:FIRST-CHILD:FIRST-CHILD. DO WHILE VALID-HANDLE(Widg): … Widg = Widg:NEXT-SIBLING. END. FILL-IN 2 FILL-IN 4 FrameB FILL-IN 5 FILL-IN 6 Interface transformation without rewriting code
Что такое БИС трансформер? Организация 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> Frame A FILL-IN 1 Frame B FILL-IN 2 FILL-IN 3 FILL-IN 5 FILL-IN 4 FILL-IN 6 Interface transformation without rewriting code
Что такое БИС трансформер? Организация UI Инициализация формы Нет Ожидание события от пользователя Нет «Последнее» событие? Есть ли событие? WAIT-FOR Да Запуск триггера Да Конец Interface transformation without rewriting code
Что такое БИС трансформер? Модификация UI Инициализация формы Получение и отправка данных формы Получение и отправка данных формы Нет Ожидание данных от формы Ожидание данных от формы «Последнее» событие? Нет Есть ли данные? Усовершенствованный WAIT-FOR Да Применение данных Применение данных Да Запуск триггера Конец Interface transformation without rewriting code
Что такое БИС трансформер? Как сделать усовершенствованныйWAIT-FOR • Процедураполучения данных формы • SOCKET объект • WAIT-FOR READ-RESPONSE • Процедураустановки атрибутов виджетов • APPLY Получение данных формы Отправка данных Ожидание данных Применение данных Запуск триггеров Interface transformation without rewriting code
Что такое БИС трансформер? Усовершенствованная архитектура RPC вызов Данные формы в XML Данные формы и события GUI приложение OE AppServer Interface transformation without rewriting code
Что такое БИС трансформер? Недостатки сервера приложений OE AppServer агент _proapsv • ENABLE / DISABLE не работают • Некоторые атрибуты виджетов не доступны, например SENSITIVE&CHECKED • BROWSEне поддерживается совсем • Много других мелких недостатков _progres -b Interface transformation without rewriting code
Что такое БИС трансформер? Как преодолеть недостатки сервера приложений но PROGRESS Software уже сделала это для нас Поприветствуем WebSpeed! • Можно поменять логику вашего приложения, чтобы избавиться от «неподдерживаемого» кода • Можно разработать свой собственный сервер приложений Interface transformation without rewriting code
Что такое БИС трансформер? Усовершенствованная архитектура v.2.00 OE AppServer RPC вызов IPC вызов OE WebSpeed Server GUI приложение Данные формы в XML Данные формыи события Interface transformation without rewriting code
Что такое БИС трансформер? Усовершенствованная архитектура v.3.00 Web запрос Данные формы в XML Данные формы и события GUI приложение OE WebSpeed Server Interface transformation without rewriting code
Что такое БИС трансформер? Как выглядит усовершенствованный WAIT-FOR? /* Обычный код, который выглядит так */ WAIT-FOR GO OF FRAME fMain. /* ...превращается в такой */ {wait_for.i &THIS_FRAME = “fMain” &EXTEXT = “GO OF FRAME fMain”} {wait_for.i &THIS_FRAME = "<frame name>" &EXTEXT = “<options for WAIT-FOR>" } Interface transformation without rewriting code
Что такое БИС трансформер? Как заменить обычный WAIT-FOR на усовершенствованный? - Нет. Расслабьтесь! Мы можем это сконвертировать! https://teamtrack.bis.ru/wshtm/conv.htm - Что?! Мы должны делать это вручную?! Interface transformation without rewriting code
Что такое БИС трансформер? бизнес логика на разных десктопах blodd – Business Logic On Different Desktops • bloddABLделает всю работу на стороне WebSpeed сервера • bloddConverterпревращает обычный код в усовершенствованный • bloddAdapterобщается с WebSpeed на стороне клиента • bloddPainterрисует и управляет UI на стороне клиента Interface transformation without rewriting code
Что такое БИС трансформер? То, что выглядело так… Interface transformation without rewriting code
Что такое БИС трансформер? … сейчас выглядит вот так! Interface transformation without rewriting code
Что такое БИС трансформер? Дополнительные преимущества • Вы можете использовать любую GUI/web/mobile платформу • Поддержка разных языков • XSLT • Если все еще хотите рефакторинг, вы можете начать с bloddтрансформации Interface transformation without rewriting code
Что такое БИС трансформер? А в чем проблемы? • Архитектура остается той же самой • Ограниченный UI • Проблемы с производительностью • Проблемы с конфигурацией сети • Ошибки в работе SOCKET Interface transformation without rewriting code
ВОПРОСЫ? СПАСИБО! Skype: bulklodd E-mail: ksv@bis.ru Тел.: +7 495 780 3773 Interface transformation without rewriting code