Консалтинг и автоматизация в области управления
эффективностью банковского бизнеса

Журнал ВРМ World

SwiftML - язык разметки Общества за всемирные межбанковские финансовые телекоммуникации

SwiftML - это язык бизнес-сообщений для банков, брокеров, дилеров, инвестиционных менеджеров и инфраструктур рынка в области платежей, министерства финансов/казначейства, ценных бумаг и торговли, получивший название Язык разметки SWIFT (Общества за всемирные межбанковские финансовые телекоммуникации). При его создании учитывалась потребность пользователей во взаимодействии между различными финансовыми реализациями XML через моделирование стандартов SWIFTStandarts Modelling. SwiftML ориентирован на такие направления, как подтверждение, клиринг и оплата сделок с ценными бумагами. SwiftML является частью инициативы SWIFTStandards, задача которой состоит в правильном определении различных бизнес-правил с использованием методов моделирования.

Новый подход позволил отделить бизнес-стандарт от его физического представления в специфическом синтаксисе. Вся эта информация хранится в репозитории стандартов SWIFTStandards Repository. Это позволяет различным, даже не-XML, синтаксисам взаимодействовать на основе общей бизнес-модели. Принятие swiftML очень структурировано. Например, бизнес-информация всегда выражается только как XML-элементы/значения, а метаданные выражены как XML-атрибуты. В результате swiftML-сообщения отличаются своей согласованностью и унифицированностью. В настоящее время swiftML-сообщения описываются с помощью традиционных XML DTD (Document tyoe definitions, шаблонов описания документа).

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

Разговоры о необходимости такого стандарта велись еще с середины 2000 года, когда на рынке уже появились такие стандарты FinXML, FpML, FIXML и др. и стало очевидно, что частные стандарты подошли к пределам своих технических возможностей. Тогда Правление SWIFT приняло XML в качестве предпочтительного синтаксиса для своих стандартов SWIFTStandards.

В январе 2001 SWIFT опубликовал бизнес-проект развития новых стандартов. Конечной целью по прежнему было признано создание "единого стандарта", но пока основной акцент был сделан на возможности взаимодействия. Для разработки модели решено было использовать Унифицированный язык моделирования (Unified Modelling Language, UML). Другим ключевым элементам стал XML, в частности - swiftM и другие XML-форматы: FIXML, FpML, Bolero XML и STPML. Следует отметить, что SWIFT не планировал заменить XML-стандартом все сообщения с синтаксисом FIX, особенно в области платежей, где его позиции достаточно сильны.

В июле 2001 на www.swift.com была опубликована Техническая спецификация правил проектирования swiftML. Тогда же SWIFT и FIX Protocol Ltd. (FPL, организация, развивавшая XML-версию протокола FIX) объявили о сотрудничестве, задачей которого планировалось сделать поиск путей сближения протоколов сообщений обеих организаций в целях создания XML-версии стандарта типов сообщений по ценным бумагам 'ISO 15022 XML', разработкой которого занималась ISO Working Group 10.

Правила схемы swiftML будут опубликованы, как только W3C примет XML-схему, хотя swiftML спроектирован таким образом, что принятие схемы не повлияет на сообщения, уже описанные на данный момент с помощью традиционных DTD. SwiftML XML DTD используются в основном для соединения с SWISTStandards Repository, содержащим полный бизнес-стандарт, но могут применяться и для проверки допустимости сообщений, не заменяя при этом бизнес-модель UML.

Набор правил проектирования XML, названный swiftML, напрямую и очень подробно определяет способ выведения физического XML-представления из бизнес-сообщений в UML-диаграмме классов. Правила маппирования из UML в swiftML, изложенные в Технической спецификации правил проектирования swiftML, таковы:

  • SwiftML-представление должно быть максимально структурированным:
    • бизнес-информация выражается как XML-элементы/величины;
    • метаданные выражаются как XML-атрибуты. XML-атрибуты не должны переноситься напрямую в примеры XML, за исключением случаев, когда необходимо исключить неопределенность.
  • Даже если в будущем предполагается принятие XML-схемы, правила проектирования сегодня сосредоточены на поколении традиционных DTD.
  • Имена тэгов swiftML-элементов должны легко читаться.
  • Имена в UML должны использоваться в swiftML везде, где только возможно.
  • Элементы swiftML выводятся из UML-представлений или бизнес-сообщений, и только из UML-классов, UML-ролей или UML-атрибутов.
  • Каждый элемент swiftML должен прослеживаться до соответствующего ему элемента модели UML и иметь следующую структуру:

    <swiftMLTag elementID="xxx" [roleID="yyy"] type="zzz" version="aaa">

S.W.I.F.T. Standards рекомендуют использовать в качестве механизма (по умолчанию) кодирования символов UTF-8, поскольку:

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

Пример:


<?xml version="1.0" encoding="UTF-8"?>

Пространство имен UML необязательно должно соответствовать пространству имен swiftML. Репозиторий swiftML обслуживается в одном пространстве имен XML - 'sw'.

Пример:


<sw:PmtsAcct>
123-456789-0</sw:PmtsAcct>


Пример кода swiftML:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE NoticeOfExecution SYSTEM "NoticeOfExecution.dtd">
<NoticeOfExecution>
<MsgFunction>NewMessage </MsgFunction>
<SendersMsgRef>
<RefNbr>gstpa12345</RefNbr>
</SendersMsgRef>
<Buyer>
<PartyId>ABNANL2A</PartyId>
<TradingCapacityIndicator>PRINCIPAL</TradingCapacityIndicator>
</Buyer>
<Seller>
<PartyId>DEUTDEFF</PartyId>
</Seller>
<ExecutedTradeDetails>
<FinInstrQty elementID='ABCD2008' type='DCBA0013'>
<FaceAmt>102</FaceAmt>
</FinInstrQty>
<TradeDate>
20000427</TradeDate>
<RequestedSettlementDate>
20000428</RequestedSettlementDate >
<DealPrice elementID='ABCD2000' type='57A817C1'>
<ActualPrice>
<CcyCode>
EUR</CcyCode>
<Value>
20000</Value>
</ActualPrice>
</DealPrice>
</ExecutedTradeDetails>
</NoticeOfExecution>

В настоящее время стандарт swiftML реализуется Ассоциацией прямой глобальной обработки (Global Straight Through Processing Association, GSTPA), Inquiry Link и e-Trust.