Практический опыт использования Ensemble Борис Егоров.

Презентация:



Advertisements
Похожие презентации
РЕЗУЛЬТАТЫ РАБОТЫ ПОДСИСТЕМЫ «ВЕДЕНИЯ». В процессе работы с подсистемой «Ведения», а также при ее завершении имеются достаточно широкие возможности по.
Advertisements

Project M Cache Version 5 Промышленная разработка Web приложений и Управление проектом.
Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
Анализ данных и интеграция информационных систем Станислав Чистяков Старший Консультант 5 апреля 2011 года, гостиница «Золотое кольцо»
Интегрированная информационная система «КВАРТА». Компания КВАРТА Компания КВАРТА имеет 14-летний опыт работы в следующих областях: Реализация «под ключ»
Управление потоками работ в InterSystems Ensemble Федоров Вадим «Школа Инноваций InterSystems 2007»
Классификация БД. СУБД и ее компоненты. Логическое и физическое описание данных.
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ.
1 Диаграммы реализации (implementation diagrams).
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
Практический опыт использования WorkFlow технологий в проектах автоматизации документооборота Андреев Владимир DocsVision.
Технологическая платформа Горизонтальные решения Вертикальные / ISV решения Модификации / Расширения / Интеграции Настройка параметров и базовых спровочников.
Мартин Фаулер « Архитектура корпоративных программных приложений » Подготовила Ст. ПС - 41 Лукиных Н. А.
Использование DocsVision для автоматизации процессного управления Виктор Сущев Директор по развитию компании DocsVision.
Принципы согласования гетерогенных сетей. Маршрутизация пакетов. Борисов В.А. КАСК – филиал ФГБОУ ВПО РАНХ и ГС Красноармейск 2011 г.
ПОСТРОЕНИЕ ОНТОЛОГИЧЕСКОГО СПРАВОЧНИКА ОТРАСЛЕВОГО УРОВНЯ С УЧЕТОМ РЕКОМЕНДАЦИЙ СТАНДАРТА ISO
Страница 1 Действие Страница 2 ЗапросДействие Страница 3 Работа с Web-приложением с точки зрения пользователя.
Мониторинг в Mail.Ru Group Лихобабин Сергей Руководитель отдела внутренней разработки.
Основные элементы методологии международного стандарта ISO Кузьмин Александр Леонидович главный экономист Департамента регулирования расчетов Банка.
Коммерческое предложение. Основные особенности проекта Полноценный сайт организации – эффективный коммерческий инструмент для ведения бизнеса. Самым важным.
Транксрипт:

Практический опыт использования Ensemble Борис Егоров

Происхождение видов О чем вы думаете, когда слышите «Интеграция приложений» ?

Происхождение видов Две или несколько систем, содержащие данные... Две или несколько систем, содержащие данные... Обмен данными... Обмен данными... Отслеживание изменений в данных... Отслеживание изменений в данных... Расписания передачи данных... Расписания передачи данных... Сбор данных по отчетности... Сбор данных по отчетности... Конвертация данных... словари... вспомогательные данные... Конвертация данных... словари... вспомогательные данные... Накопление данных... Накопление данных...

Происхождение видов Данные, данные, данные... Данные, данные, данные... Координация данных Координация данных 90% всех проектов, в которых есть слово «интеграция» 90% всех проектов, в которых есть слово «интеграция» Сложность Сложность –не архитектурная –техническая (производительность) –постановочная Extract, Transform, Load (ETL) Extract, Transform, Load (ETL)

Exract, Transform, Load Координация данных Координация данных Две и более систем, синхронизация по расписанию Две и более систем, синхронизация по расписанию План работы План работы –Связаться с первой –Связаться с второй –Трансформация данных Наиболее часто встречающийся случай – синоним слова «интеграция» Наиболее часто встречающийся случай – синоним слова «интеграция» Восприятие заказчика Восприятие заказчика

Как это выглядит в Ensemble? +трансформация данных +трансформация данных дьявол в деталях... дьявол в деталях...

ETL-сложности: Скорость synchronous call, in-proc invocation для бизнес-операций synchronous call, in-proc invocation для бизнес-операций лучше 1 большое сообщение, чем 10 более мелких лучше 1 большое сообщение, чем 10 более мелких мета-сообщения (tickets) мета-сообщения (tickets) преобразования данных, основанные на COS преобразования данных, основанные на COS пул процессов, отключение трассировки пул процессов, отключение трассировки веб-сервисы – не самая хорошая идея веб-сервисы – не самая хорошая идея накопление данных и внутренняя обработка накопление данных и внутренняя обработка

ETL-сложности: Преобразования Прежде всего - постановочная Прежде всего - постановочная Преобразование данных – отображение source-сообщения на target-сообщение Преобразование данных – отображение source-сообщения на target-сообщение Вызывается из служб, операций, процессов Вызывается из служб, операций, процессов Способы задания Способы задания –графическое представление / XML –код на Cache Object Script «Изобразительные» средства преобразований «Изобразительные» средства преобразований Ensemble Data Transformation Language Ensemble Data Transformation Language

«Изобразительные возможности» Набор Ens.Util.FunctionSet Набор Ens.Util.FunctionSet –ToUpper/ToLower –Lookup/Exists (^Ens.LookupTable(table,value)) –... обертки для COS-функций, но доступны непрограммисту Набор функций – расширяем (наследование FunctionSet) Набор функций – расширяем (наследование FunctionSet) Произвольный код – максимальное быстродействие, сложные алгоритмы с сохранением «цивилизованного» интерфейса. Произвольный код – максимальное быстродействие, сложные алгоритмы с сохранением «цивилизованного» интерфейса.

Общая часть – организация взаимодействия Модель допустимого взаимодействия определяет инструменты Модель допустимого взаимодействия определяет инструменты Безконфликтные Безконфликтные –интервальное сканирование (BS) системы через API, каталогов выгрузки, и т.д.системы через API, каталогов выгрузки, и т.д. –вызов API по требованию Ensemble (BO) Требующие вмешательства во внешние системы Требующие вмешательства во внешние системы –обращение к Ensemble (BS + композитные) –работа с хранилищем Ensemble (все интерфейсы + композитные)

Общая часть – организация взаимодействия Головная боль – отслеживание изменений Головная боль – отслеживание изменений SQL-адаптер SQL-адаптер –Поле идентификатора –^Ens.AppData В общем случае – не решается, кроме как полным кэшированием данных и сравнением В общем случае – не решается, кроме как полным кэшированием данных и сравнением Частные случаи Частные случаи –таблицы журналов изменений –даты модификаций и пр. –...

Общая часть – организация взаимодействия Интерфейсов – нет Интерфейсов – нет Эмуляция работы пользователя Эмуляция работы пользователя Rational Robot Rational Robot Дешевые/бесплатные альтернативы Дешевые/бесплатные альтернативы Возможная проблема исполнения на той же машине Возможная проблема исполнения на той же машине

Сообщения «Хорошие» сообщения не зависят от характеристик источника «Хорошие» сообщения не зависят от характеристик источника Часто возникающая ситуация – с offline- взаимодействием Часто возникающая ситуация – с offline- взаимодействием Сообщения – мощный механизм абстракции Сообщения – мощный механизм абстракции

Родственник ETL – Data Hub Сбор многоаспектных данных Сбор многоаспектных данных «Композитные объекты» «Композитные объекты» –несколько независимых частей Сборка объектов Сборка объектов Дилемма Дилемма –Легко собирать данные, трудно получать объекты –Труднее собирать данные, легче получать объекты Школа Бюджето- получатель Объекты госимущества Демогр. данные Подчиненный Департамента Образования

Родственник ETL – Data Hub «Универсальная структура данных» «Универсальная структура данных» Сущности – объект, атрибут, показатель, узел классификатора + структуры для составляющих Сущности – объект, атрибут, показатель, узел классификатора + структуры для составляющих Сложные алгоритмы дальнейшей обработки и проставления ссылок Сложные алгоритмы дальнейшей обработки и проставления ссылок

Родственник ETL – Data Hub Все «части» композитного объекта встраиваются в иерархию классов Все «части» композитного объекта встраиваются в иерархию классов Смысловая связность Смысловая связность Простота дальнейшего использования Простота дальнейшего использования

Data Hub – сборка данных Сборка объектов Сборка объектов –алгоритмическая (миф?) –фактографическая (мастер-индекс, трудоемкость обновления) –смешанная

Data Hub – сборка данных Классификаторы Классификаторы –в виде экземпляров данных типы данных – узел классификатора, классификатор и т.д.типы данных – узел классификатора, классификатор и т.д. В виде мета-информации (классы) В виде мета-информации (классы) –облегчает сборку композитных объектов –усложняет сбор исходных данных –облегчает дальнейшее использование собранных данных

Моделирование бизнес-процессов Упрощение взаимодействия с заказчиком Упрощение взаимодействия с заказчиком Свобода реализации (диаграммы / код) Свобода реализации (диаграммы / код) Легкий переход к процессам в Cache – приложениях Легкий переход к процессам в Cache – приложениях

Устранение разрыва Бизнес-процесс с точки зрения человека-аналитика Бизнес-процесс с точки зрения человека-аналитика Бизнес-процесс с точки зрения интеграционной платформы Бизнес-процесс с точки зрения интеграционной платформы Компоненты бизнес-процессов Компоненты бизнес-процессов

Сложность отладки Асинхронные взаимодействия Асинхронные взаимодействия «Дорогое» для реконструкции окружение «Дорогое» для реконструкции окружение

Открытость Ensemble Очень многие механизмы открыты Очень многие механизмы открыты –генерация исполнимых бизнес-процессов –трансформации данных –визуализации схем –workflow –...

Расширяемость workflow Стратегии распределения задач (в наследниках %TaskResponse) Стратегии распределения задач (в наследниках %TaskResponse) Настройки workflow-портала Настройки workflow-портала Настройки сообщений Настройки сообщений Собственные клиенты (ZEN и др.) Собственные клиенты (ZEN и др.) Встраивание во внешние приложения Встраивание во внешние приложения Пакет EnsLib.Workflow Пакет EnsLib.Workflow

Маршрутизация сообщений (routing engine) Маршрутизирующие бизнес-правила Маршрутизирующие бизнес-правила –критерии –действия –трансформации

Маршрутизация сообщений (routing engine)

Изначально вводился для HL7 Изначально вводился для HL7 EnsLib.MsgRouter.RoutingEngine EnsLib.MsgRouter.RoutingEngine –параметр RoutingRule В – опция Do all rules В – опция Do all rules

Версионность бизнес-процессов Время работы бизнес-процесса может составлять месяцы Время работы бизнес-процесса может составлять месяцы Атрибут version (задается вручную) Атрибут version (задается вручную) Существование экземпляров различных версий Существование экземпляров различных версий Отдельные версии генерируемых классов Отдельные версии генерируемых классов –MyBPL.V1.Context and MyBPL.V1.Thread1 –MyBPL.V2.Context and MyBPL.V2.Thread1

Обработка ошибок Сводилась к ручному анализу статусов Сводилась к ручному анализу статусов Интегрируемые системы вовсе не обязаны быть транзакционными Интегрируемые системы вовсе не обязаны быть транзакционными

Обработка ошибок

Обработка ошибок response='Test.Scope.Response' >

Обработка ошибок

Alert Служит для уведомления о проблеме Служит для уведомления о проблеме Элемент продукции с именем Ens.Alert отвечает за обработку всех alert в продукции (бизнес-операция) Элемент продукции с именем Ens.Alert отвечает за обработку всех alert в продукции (бизнес-операция) Ens.AlertRequest Ens.AlertRequest –Property SourceConfigName As %String; Property AlertText As %String; Alert-сообщения всегда сохраняются в event log Alert-сообщения всегда сохраняются в event log

Alert - формирование Метод SendAlert Метод SendAlert –Do..SendAlert(##Class(Ens.AlertRequest).%New( $LB(..%ConfigName, Message Text")) в BPL в BPL – – Автоматическое создание alert-сообщений элементами продукции Автоматическое создание alert-сообщений элементами продукции –Параметр Alert on Error –Параметр Alert Retry Grace Period (BO)

Контроль импорта данных Разные источники данных Разные источники данных Разные проверки Разные проверки Разные люди, отвечающие за разные сегменты данных Разные люди, отвечающие за разные сегменты данных Цели Цели –workflow –контроль принятых решений

Контроль импорта данных Первичный импорт Первичный импорт Маршрутизатор (роутер) Маршрутизатор (роутер) Бизнес-процесс, специфичный для источника/сущности Бизнес-процесс, специфичный для источника/сущности Библиотечные проверки Библиотечные проверки Роли workflow Роли workflow Финальное сохранение (не показано) Финальное сохранение (не показано)

Контроль импорта данных Бизнес-служба читает источник, сырые данные сохраняются Бизнес-служба читает источник, сырые данные сохраняются –добавляются поля статуса (обработано, отброшено, в процессе обработки) –идентификатор «пачки» –хэш исходных значений полей Если хэш импортируемых данных совпадает с имеющимися, и статус – «в обработке», запись игнорируется Если хэш импортируемых данных совпадает с имеющимися, и статус – «в обработке», запись игнорируется Формируется сообщение – билет (источник, пачка, [конкретная запись]), передается роутеру Формируется сообщение – билет (источник, пачка, [конкретная запись]), передается роутеру

Контроль импорта – зачем роутер? Для возможности коррекций при помощи преобразований данных Для возможности коррекций при помощи преобразований данных Для более простой настройки Для более простой настройки Изменения без остановки продукции Изменения без остановки продукции Итог работы – передача сообщения специфичному для сущности/источника бизнес-процессу Итог работы – передача сообщения специфичному для сущности/источника бизнес-процессу

Контроль импорта Специфичный бизнес-процесс Специфичный бизнес-процесс –открывает сырые данные –выполняет проверки при помощи своей внутренней логики, или «библиотечных вызовов» –при необходимости осуществляется выставление workflow- задач Результат работы – исправленные данные в хранилище сырых данных Результат работы – исправленные данные в хранилище сырых данных Если идет обработка не пачкой, а по записям – проверка на то, что пачку можно сохранять (при необходимости выставить task на одобрение) Если идет обработка не пачкой, а по записям – проверка на то, что пачку можно сохранять (при необходимости выставить task на одобрение)

Спасибо. Продолжение следует. Борис Егоров