Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии





Скачать 398.15 Kb.
НазваниеМатематико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии
страница3/5
Дата публикации10.01.2015
Размер398.15 Kb.
ТипРешение
100-bal.ru > Бухгалтерия > Решение
1   2   3   4   5

Решения интеграционных задач в инвестиционных фондах


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

Общей структурой рассматриваемых примеров будет

  • Задача - бизнес требования для автоматизации какого-либо процесса или обмена данными

  • Описание решения - каким образом реализуется на текущий момент в индустрии

  • Технологии - что используются сейчас на рынке для разработки таких решений

  • Следующие шаги - какие дополнительные требования могут быть предъявлены и как это поменяет способ реализации

 

Задача 1


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

Описание решения

Хотя в случае небольших фондов компании и готовы принимать файлы по электронной почте, стандартным решением в индустрии является обмен этими файлами через FTP сайты. Администратор фонда или прайм брокер предоставляет фонду аккаунт на своем FTP сайте и определенные инструкции по сохранению файлов (именование файлов, время, папка). Файлы, сохраненные правильным образом, автоматически обрабатываются системами компании агента - например, администратор фонда загружает их в собственную бухгалтерскую систему для расчета позиций фонда-клиента. Таким образом, задача сводится к построению интеграции между системой фонда, обладающей информацией о совершенных за день транзакций, и FTP cайтам нескольких компаний, с которыми фонд работает. А именно, нужно решить две проблемы:

  • Трансформация данных исходной системы в формат компании-агента

  • Автоматизация отправки файлов на FTP cайт

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

Трансформация данных встречается повсеместно, как только речь заходит об интеграции, поскольку исходные форматы данных любых двух интегрируемых систем будут различаться, за исключением тех случаев, когда производитель систем одна компания или когда системы поддерживают какой-либо стандартный формат (примеров из индустрии финансов не так много: протокол FIX, SWIFT). Рассмотрим более подробно уровни трансформации данных [EIP]:

 

Уровень трансформации

Обрабатывает

Пример в случае трансформации данных о транзакциях:

Инструменты

Структура данных

Сущности, связи

Свести структуру данных из 2х уровней (parent-child) к плоской,

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

Инструменты маппинга в интеграционных платформах, собственный код, SQL

Типы данных

Имена полей, типы значений, список допустимых значений, справочники

В возвращаемом формате идентификатор ценной бумаги - TICKER, в исходной системе - Сode, ISIN, CUSIP - нужно вернуть первое не пустое значение

 

Отформатировать дату проводки транзакции (settlement date) в виде строки формата yyyyMMdd

 

Вернуть код типа транзакции, который требуется в формате, в соответствии с кодами в исходной системе ("BY" для "Buy", "SL" для "Sell" и т.д.)

Инструменты маппинга в интеграционных платформах (EAI), XSL, SQL или другой скрипт

Представление данных

Формат файла (XML, текстовый файл с разделителями, файл с фиксированной длинной полей и т.д.)

 

Кодировка (ASCII, Unicode)

 

Шифрование, сжатие

Cохранить отформатированные данные в искомый формат - в нашем примере это чаще всего файл с разделителями (CSV, pipe-delimited, tab-delimited)

 

Зашифровать файл ключом PGP

XML parser,

инструменты вывода EAI,

собственный код или API сторонних утилит

Транспорт

Протокол передачи данных: TCP/IP, HTTP, SOAP, FTP и т.д.

Отправить файл на FTP компании-агента

Адаптеры EAI,

сторонние утилиты,

собственный код

 

Данная задача решается в индустрии различными способами - зачастую функциональностью отправки файлов компаниям-агентам обладают системы Portfolio Management или системы построения отчетов. Еще один вариант - передать эту обязанность администратору фонда или сторонней компании специализирующийся на этом (Omgeo). Таким образом, эту задачу редко решает сам фонд самостоятельно, но при этом за них это постоянно решают поставщики программных продуктов для фондов (technology vendors)

Стиль интеграции

Как видно из описания нашего решения, сама индустрия диктует стиль интеграции - Обмен файлами (File Transfer) [EIP]- способ, при котором приложение производит файл для обработки прочими приложениям, и в свою очередь обрабатывает файлы, произведенные ими. Наиболее простой и старый способ интеграции, безусловно, обладает большим количеством ограничений:

  • Приложения, участвующие в интеграции, обязаны осуществлять трансформацию в общий формат данных (адаптер в каждом из приложений)

  • Разработчикам решения приходится самостоятельно отвечать за обмен и доставку файлов

  • Данный способ подходит только для передачи данных, для интеграции функциональности нужно использовать удаленный вызов процедур (Remote Procedure Invocation)

  • Данный способ также не подходит для частого обмена небольшими изменениями в данных, в таких случаях следует использовать Обмен Сообщениями (Messaging) и строить интеграцию на EAI платформах


Следующие шаги

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

  • Файлы, отправляемые на FTP, должны быть зашифрованы ключом PGP - это просто дополнительное требование к автоматизации процесса отправки файлов и не представляет собой сложности (мы либо воспользуемся API оpen-source PGP инструментов, либо вызовем ее из командной строки)

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

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

  • Наконец, что если исходных систем с данными о транзакциях несколько? Например, одна группа трейдеров (trading desk) может торговать только акциями и использовать один программный продукт, другая группа занимается облигациями и для их задач больше подходит другое программное обеспечение. В конце торгового дня, первая система будем иметь данные по транзакциям на акции, вторая - на облигации. Экспортировать данные из каждой из систем в формат компании-агента и каким-то образом объединять эти файлы перед оправкой - не является правильным решением в данном случае. Разумнее в таком фонде построить промежуточное хранилище данных (data warehouse):

 

clip_image001

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

Технологии

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

  • SQL - позволяет сделать выборку нужных данных и сделать трансформацию на уровне структуры данных и типов данных

  • Microsoft SQL Server Integration Services (SSIS) - позволяет сериализовать результат выборки в нужный формат файла с разделителями или XML

  • Ключевую роль играет средство, используемое для автоматизации процесса генерации и отправки файла. Процесс, состоящий обычно из 4 шагов (осуществить выборку -> сгенерировать файл -> зашифровать PGP ключом -> сохранить файл на FTP), нужно либо запускать руками (если фонд не имеет четкого срока, когда все транзакции введены в систему), либо запускать по расписанию. Мы уже останавливались и на требованиях по логированию и мониторингу

    • Фонды, традиционно разрабатывающие внутренние инструменты самостоятельно, будут использовать промышленные средства автоматизации и запуска задач, такие как Active Batch и AutoSys. Весь процесс в таком случае состоит из различных утилит или сприптов, которые объединяются таким средством в единый процесс

    • Автоматизация процессов (workflow automation) является частью интегрированных решений для инвестиционных фондов, которые либо предоставляют функциональность визуального построения отчетов с последующим экспортом в файл и отправкой на FTP (например, Paladyne Analytics Master), либо имеют готовые предопределенные компоненты для автоматизации отправки файлов для наиболее крупных администраторов фондов и прайм брокеров (например,Tradar Insight), либо же предоставляют сервис по построению нужных файлов с последующей их отправкой и мониторингом процесса (EzeCastle OMS)

 

Задача 2


Компании, поставщики рыночных данных (market data vendors), предоставляют сервисы, позволяющие получить определение и свойства ценной бумаги (security terms and conditions) а также рыночные цены на конец дня (end-of-day prices). Фонду необходимо загружать данные из сервисов нескольких компаний одновременно и распределять эти данные между своими системами.

Описание решения

Сервисы рыночных данных (таких компаний, как Bloomberg, Thomson Reuters, Interactive Data, MarkIT) устроены схожим образом и, так же как и в предыдущей задаче, основаны на обмене файлами. Различие состоит в том, что сервисы подразумевают режим работы в форме запрос-ответ, а именно

  • Сервис представляет собой FTP аккаунт (или в случае Mark IT - HTTPS)

  • Файл запроса должен отвечать формату и синтаксису этого сервиса и начинает обрабатываться, как только такой файл будет скопирован на FTP

  • Файл с результатами выполнения запроса (ответ) генерируется на том же FTP, и ответственностью клиента является его загрузка и обработка.

  • Файлы запроса и ответа в большинстве случаев - текстовые файлы с разделителями и заголовком, хотя начинается более частое употребление XML в новых сервисах. Файл ответа (данные) может быть заархивирован для сокращения объема, а затем еще зашифрован открытым ключом.

Использование таких средств, как FTP и текстовые файлы, объясняется и тем, что эти сервисы существуют очень давно (с конца 80х годов), и компании обязаны поддерживать обратную совместимость для десятков тысяч клиентов, и тем, что обеспечивают абсолютную независимость платформ (скопировать файл с FTP и обработать текстовый файл может все что угодно). Тем не менее, некоторая модернизация технологий все же происходит - компания Bloomberg, например, сделала реплику своего сервиса Data License в виде Web-Service - Data License Web Services.

Помимо режима запрос-ответ (который обычно называется per-security feed), существует режим, при котором вендор данных публикует на клиентском аккаунте файлы с фиксированным набором данных по большому количеству ценных бумаг (например, данные по всем акциям, размещенным на биржах США и Канады). Это режим называется Bulk feed, и не требует запроса от клиента, новые файлы с данными просто публикуются в определенное время на FTP сайте. С одной стороны лицензия такого сервиса стоит существенно больше, с другой стороны, он удобнее и экономичнее большим клиентам (крупным фондам, инвестиционным банкам, которым требуется информация о большом наборе ценных бумаг одновременно)

Задачу интеграции с сервисами данных решают и сами фонды самостоятельно, и компании, разрабатывающие продукты для фондов. Фонды, от небольших до весьма крупных, всегда создают простые утилиты, получающие данные необходимые для их системы (и, конечно, такие решения создаются совершенно ad hoc), при этом технологические компании разрабатывают большие продукты для интеграции с вендорами данных и управлению ими (например, Paladyne Security Master, Golden Source, Asset Control)

Представим себе, что нам нужно разработать такую интеграцию с нуля. Тогда нам нужно решить следующие задачи:

  • На основании некоторого настраиваемого критерия сгенерировать файл запроса. Мы будем забирать данные из нескольких сервисов данных, поэтому нам нужна такая логика, реализованная для каждого из сервисов.

  • Компонент, отвечающий за сохранение файла-запроса на сервере FTP, ожидание, а затем загрузку файла с данными, сгенерированного в ответ. Для этой компоненты нам понадобится FTP клиент и некоторый скрипт, реализующий ожидание файла ответа определенное время.

  • Компонент, обрабатывающий файл ответа. Его задачей будет разобрать файл с данными на строки и колонки (парсинг) и осуществить трансформацию в необходимый формат данных для сохранения в систему, которая получает данные. Данный компонент должен отвечать трем требованиям

    • Эффективно обрабатывать большие объемы данных / файлов, поскольку в режиме работы bulk feed, файлы с данными могут содержать сотни тысяч строк с 50ю и более колонками с данными

    • Иметь удобные средства для трансформации на уровне типов данных. Основная сложность обработки таких данных будет как раз в преобразовании типов данных и в соответствии значений справочников вендора тем, которые принимаются целевой системой. Например, в файле данных биржа размещения ценной бумаги будет представлена двухбуквенным кодом - это значение нужно соотнести с кодом или номером этой же биржи, в той системе, куда мы загружаем данные (NS соответствует New York Stock Exchange, LN - London Stock Exchange). Таких полей со значениями из определенного списка (домена) в файле много - страна компании, валюта, тип процентного купона, частота выплаты интереса, рейтинг компании и т.д. Далее, для разных вендоров, эти домены будут разными, а поскольку мы загружаем данные от нескольких разных вендоров в целевую систему, нам нужно отображение между каждым вендором и нашей системой.

    • Малая стоимость изменений. Изменения в файлах вендоров происходят весьма часто, могут добавиться новые поля в файл с данными, новые значения в список значений определенного домена, затем фонду может потребоваться загружать больше данных из вендора или поменять маппинг. Все эти изменения нужно производить быстро и с минимальными трудозатратами.

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


Технологии

Перечисленные задачи обычно решаются инструментами, реализующими Extract, Transform, Load (ETL) технологию. Если целевая система позволяет писать данные напрямую в свою базу данных, то ETL-инструменты эффективно реализуют компонент, обрабатывающий и сохраняющий файлы данных. Таким образом, Extract часть - генерация файла запроса и FTP-клиент может быть реализована в собственном коде, Transform - обработка и маппинг файла и Load - сохранение и обработка ошибок - инструментом ETL (коммерческими, такими как Microsoft SQL Server Integration Services, Oracle Data Integrator, Informatica, SAS Data Integration, или open source - Talend Open Studio, Clover.ETL, Jitterbit).
Следующие шаги

Мы обсуждали в прошлой главе, что информация о ценных бумагах, необходима всем системам фонда. А раз так, то нам нужно предложить работоспособный вариант, при котором данные из сервиса вендоров получает больше, чем одна система одновременно. Могут ли все системы, использовать одну и ту же базу данных, в которой хранятся ценные бумаги (ту, в которую пишет наш инструмент ETL) - стиль интеграции Shared Database [EIP]? Нет, ни один фонд не разрабатывает все свои системы самостоятельно, а готовые продукты так работать не могут. Тем не менее, я бы предложил промежуточную базу данных, в которую будут загружаться данные из нескольких сервисов данных, а затем уже строить интеграцию между этой базой данных и целевыми системами. Эта схема схожа с той, что мы рассмотрели в задаче об отправке информации о сделках из нескольких систем одновременно. В данном случае она также дает преимущество - мы можем инкапсулировать обработку данных от вендоров в одном механизме, без необходимости дублировать логику для каждой целевой системы.

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

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

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

  • Механизм трансформации данных между форматами исходных и целевых систем

  • Возможность обмениваться обратными сообщениями. Например, для интеграции не только данных, но и функциональности: система А может отправить ценную бумагу на расчет стоимости в Систему Б, которая обладает этой функциональностью. Обратное сообщение есть результат такого расчета, который нужно сохранить в исходной системе

Существуют готовые архитектурные решения для решения подобных задач - стиль интеграции Обмен Сообщениями или Messaging [EIP], при котором приложения подключаются к общей системе обмена сообщениями, и обмен данными и вызов функциональности происходит посредством сообщений. Сопровождающие этот стиль шаблоны разработки, Message Endpoint решает первую задачу об адаптерах для систем, Message Channel , Message Router - вторую задачу о передаче данных, Message Translator - отвечает за трансформацию данных, Request-Reply message - последний пункт об интеграции функциональности. При этом существуют коммерческие и open source программные платформы для промышленной интеграции (EAI - Enterprise application integration), которые несут в себе реализацию этих шаблонов - нам остается только разработать наше интеграционное решение на одной из этих платформ. В следующей главе мы рассмотрим реализацию примера такого решения для интеграции системы, публикующей данные об исполненных сделках, и бухгалтерской системы.


1   2   3   4   5

Похожие:

Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconМатематико-механический факультет
Государственное образовательное учреждение высшего профессионального образования
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconОбзор современных систем управления бизнес-процессами
Агапова Татьяна, математико-механический факультет, 2 курс
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconМатематико-механический факультет asmpy ассемблер python compiled (*. pyc ) файлов
Государственное образовательное учреждение высшего профессионального образования
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconСанкт-Петербургский Государственный Университет Математико-механический факультет
Сергей Николаевич Кучер, проректор краевого государственного образовательного учреждения дополнительного профессионального образования...
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconСанкт-Петербургский государственный университет Математико-механический факультет
Министерством образования и науки Российской Федерации. В 2012-2013 учебном году литературное образование в школе на базовом уровне...
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии icon1. Основные понятия и определения теории анализа и принятия решений...
Вводные понятия теории анализа и принятия решений. Области применения. Лицо, принимающее решение (лпр). Альтернативы и критерии в...
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconКафедра системного программирования
Построение риторических деревьев текста на основе машинного обучения в рамках задачи автоматического реферирования
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconЮридический факультет Кафедра гражданского и предпринимательского права
Понятие финансовой аренды (лизинга) и договора финансовой аренды (лизинга), история развития лизинга
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconРабочая программа по дисциплине «Операционные системы»
Кроме того, целью преподавания является формирование у студентов системного мышления, теоретической и практической базы системного...
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconФакультет экономики и управления Кафедра менеджмента Рабочая программа...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки магистра...
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconПрезентация «Решение задач с помощью кругов Эйлера». Презентация...
Интегрированное занятие математического кружка (математика + информатика) в 5-м классе по теме "Решение задач с помощью кругов Эйлера....
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconПрограмма дисциплины «Информационные технологии в индустрии гостеприимства и туризме»
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 080200. 68 Менеджмент...
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconПрограмма учебной дисциплины «Финансы, денежное обращение, кредит»
Целью данного предмета является изучение основных видов финансовых рынков. При этом развиваются навыки анализа финансовой документации,...
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconПрограмма дисциплины «Сетевые формы организации в индустрии гостеприимства и туризма»
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 080200. 68 «Менеджмент»...
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconРеферат по дисциплине "Информационные и коммуникационные технологии...
В связи с этим на электронные системы ложится обязанность автоматизации всех процедур работы с документами, а также интеграции совместных...
Математико-механический факультет Кафедра системного программирования Решение задач интеграции программных решений в финансовой индустрии iconЭнергетический факультет
Механический расчет линии электропередачи напряжением 110 кв с увеличенным сечением провода на металлических опорах


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск