Tecnologia IBM na linha de frente dos mercados financeiros, Parte 1: Visão geral de um plano de projeto de integração de linha de frente de mercados financeiros

Este artigo é primeiro de uma série que explora como os recursos de middleware IBM® podem ser integrados para tratar dos requisitos técnicos da linha de frente dos mercados financeiros. Os requisitos da linha de frente necessitam de softwares especializados que possam manipular grandes volumes de dados a velocidades extremamente altas. Esta série de artigos descreve um cenário de comércio algorítmico que foi implementado como parte de um projeto de incubação do IBM Software Group. Este primeiro artigo fornece uma visão geral de alto nível de um plano de projeto que foi produzido dentro do projeto Esse plano de projeto ilustra como os componentes no cenário se interconectam. Os artigos futuros se aprofundarão mais em detalhes técnicos sobre a integração de vários produtos no plano de projeto e como os produtos foram usados no cenário.

Mary Taylor, Senior IT Architect, IBM

Author Photo: Mary TaylorMary está na IBM há mais de 25 anos. Ela ocupou várias posições, incluindo programadora, engenheira de sistemas, líder de projetos, DBA e especialista em qualidade de dados. Ela está na Estratégia Técnica SWG nos últimos quatro anos. Grande parte desse tempo esteve dedicada ao Software como um Serviço. Agora, ela administra o Programa de Incubação SWG. Nos últimos 18 anos, ela liderou um projeto chamado Botticelli, que está focado no posicionamento do middleware IBM na linha de frente dos mercados financeiros.



German Goldszmidt, Senior Technical Staff Member, IBM

German Goldszmidt photoDr. German Goldszmid é um engenheiro distinto da IBM que trabalha na Estratégia Técnica para o IBM Software Group (SWG). Ele é responsável pelo programa de Tecnologia Avançada SWG, que inclui o Programa de Incubação e o Programa Conjunto de Pesquisa SWG. Antes de 2003, ele era Membro e Gerente da Equipe de Pesquisa nos laboratórios de Pesquisa da IBM T.J. Watson. Ele liderou a equipe que desenvolveu o primeiro utilitário de fornecimento de computação (nuvem) que manipula mudanças variáveis de cargas de trabalho e infraestrutura de maneira eficiente através do ajuste automático de alocações de recursos. Anteriormente, ele criou e desenvolveu o Network Dispatcher, um balanceador de carga de alto desempenho que fornece confiabilidade e escalabilidade para múltiplos produtos e implementações IBM. Ele publicou mais de 50 artigos em periódicos de arbitragem e atas de conferências e possui 15 patentes. Dr. Goldszmidt é doutor em Ciência da Computação pela Columbia University no campo de gerenciamento de redes.



28/Mai/2010

Introdução ao projeto

O projeto de incubação do Software Group, com o nome de código de "Botticelli", focava na linha de frente em mercados de capital. A linha de frente envolve a compra e venda de ações por negociadores. Esse projeto implementou um caso de uso de comércio algorítmico simples. O comércio algorítmico refere-se à ordem programática de compra ou venda. No comércio algorítmico, um modelo quantitativo gera, automaticamente, a sincronização e tamanho de ordens baseando-se em certos parâmetros e restrições. Esses ambientes de troca necessitam de uma infraestrutura de alta velocidade que possa manipular grandes volumes de dados para otimizar o comércio da empresa. Nesse cenário de projeto, o programa algorítmico analisa e processa dados de mercado reais em conjunto com outros dados de referências e gera ordens de compra ou venda de ações.

A estrutura de linha de frente necessária para suportar o comércio algorítmico é diferente das infraestruturas de funções de gerenciamento de risco e cálculo de lucros e perdas e de funções administrativas de apoio. A última é mais dirigida ao processo de negócios, sendo a entrega garantida de mensagens um requisito importante para garantir que nenhuma das ordens seja perdida.

Dentro do cenário de comércio algorítmico, há várias etapas que devem ser executadas e aplicamos tecnologia IBM para demonstrar cada uma dessas etapas.


Requisitos do processo de comércio algorítmico

O comércio algorítmico necessita de uma infraestrutura que forneça acesso de alta velocidade a grandes volumes de dados. A plataforma de comércio geralmente necessita de vários recursos, incluindo a capacidade de:

  • Aceitar fluxos de dados de mercado recebidos
  • Distribuir dados de mercado para aplicativos/processos em microssegundos
  • Analisar dados de mercado em tempo real
  • Pré-carregar dados de referência e históricos
  • Suportar regras de negócio
  • Fornecer acesso a investidores sobre dados de mercado e outras informações financeiras
  • Monitorar o funcionamento do ambiente de comércio algorítmico

Cenário Botticelli

O cenário Botticelli, ilustrado na Figura 1, representa um caso de uso simples de comércio algorítmico.

Figura 1. Cenário de comércio algorítmico Botticelli
Diagram of Botticelli algorithmic trading scenario

O fluxo é da seguinte maneira:

  • Os dados de mercado da NYSE e da NASDAQ são processados através de manipuladores de alimentação e são disponibilizados a assinantes.
  • Dois assinantes recebem os dados de mercado— o programa de comércio algorítmico de índice de negócios e o hub de dados.
  • Dados de referência e parâmetros de limite são carregados na memória para serem usados durante o pregão pelos programas de comércio algorítmico.
  • O programa de índice de negócios recebe os dados de mercado através de uma conexão de alta velocidade e faz o seguinte:
    • Recupera dados de referência, como ganhos por ação, classificações de analistas e parâmetros de configuração a partir da memória.
    • Calcula o preço médio de volume medido para negócios.
    • Executa cálculos e gera as ordens que classificou como negócios.
    • Determina se uma ordem é uma exceção (excede um limite de tamanho).
    • Envia ordens que não sejam de exceção através do hub de dados para que sejam roteadas para o foro de execução.
    • Invoca regras de negócios para determinar para quem rotear ordens de exceção.
    • Roteia as ordens de exceção através do hub de dados para o negociador adequado.
  • O desktop do negociador inscreve-se no hub de dados e exibe:
    • Uma lista de ações que devem ser monitoradas (Dow 30 para este cenário), vários widgets financeiros e ordens de exceção para o negociador.
  • O painel de monitoramento inscreve-se no hub de dados e exibe:
    • Visualizações multidimensionais dos dados de ordem, status da ordem, saída do programa de índice de negócios, informações de latência do sistema e pane de ordem de exceção.

Plano de projeto da linha de frente de mercados financeiros

A Figura 2 ilustra o conjunto de middleware IBM que foi integrado para fornecer os recursos definidos na seção anterior.

Figura 2. Plano de projeto da linha de frente
Diagram of financial markets front office blueprint

Vejamos cada tecnologia e produto IBM que estão sendo usados para esses recursos. Cada produto descrito abaixo está associado a um dos componentes com letras (por exemplo, "A") na Figura 2 .

IBM WebSphere® Front Office (A)
O WebSphere Front Office fornece mais de 95 manipuladores de alimentação cobrindo a maior parte das alimentações de participação acionária da América do Norte, Europa e Ásia, a maior alimentação de opções e algumas alimentações de futuros e commodities na América do Norte. Os manipuladores de alimentação entendem como interpretar os dados recebidos, normalizá-los e torná-los disponíveis aos assinantes. O recurso de distribuição de dados fornece várias maneiras de distribuir os dados, cada uma envolvendo diferentes qualidades de serviço.
WebSphere MQ Low Latency Messaging (B)
O WebSphere MQ Low Latency Messaging é um barramento de distribuição de baixa latência que trata das necessidades da infraestrutura de comércio dos mercados financeiros. Ele suporta recursos como sistema de mensagens de alto desempenho, transportes multicast e unicast, replicação do estado do componente, detecção de falha e failover e entrega ordenada consistente.

O Low Latency Messaging participou recentemente de uma avaliação de desempenho do Securities Technology Analysis Center (STAC). Em termos de velocidade, em uma taxa de 50 mil mensagens por segundo, o STAC avaliou o desempenho do WebSphere MQ Low Latency Messaging em latência de hop única de oito microssegundos no Infiniband. Em termos de rendimento, em testes de desempenho interno, o WebSphere MQ Low Latency Messaging foi avaliado como sendo capaz de manipular mais de 13 milhões de mensagens de 45 bytes por segundo no InfiniBand.

IBM InfoSphere™ Streams (C)
O InfoSphere Streams é uma tecnologia de processamento de fluxo de alto desempenho que pode ser usada para analisar dados, notícias e vídeos em tempo real, de maneira rápida, com os fluxos de dados de diferentes fontes de tempo real. A plataforma Streams pode analisar dados estruturados e não estruturados e pode escalar para mais de 125 instâncias de nós (servidor). No Botticelli, implementamos o índice de negócios como um programa sendo executado na plataforma Streams.

A Figura 3 ilustra a visualização do tempo de execução do programa de índice de negócios. Esse programa é implementado como um fluxo unidirecional de tuplas de dados. Ele começa pela entrada de dados do mercado a partir do WebSphere Front Office, e então, divide os dados em comércios e cotas. Os comércios são enriquecidos com dados adicionais e o cálculo do preço médio do volume medido é executado. As ordens são finalmente geradas e a saída é enviada ao hub de dados através de uma conexão do WebSphere MQ Low Latency Messaging. O programa foi criado usando uma linguagem de processamento de fluxo que suporta composição declarativa de operadores, que são seus blocos de construção básicos. Os fluxos fornecem geração de código para alto desempenho e independência da plataforma. Devido a esses recursos, o Streams pode ser uma tecnologia muito boa para uma plataforma de comércio algorítmico.

Figura 3. Programa de índice de negócios
Diagram of Streams bargain index program
IBM solidDB® (D)
O solidDB fornece recuperação dentro da memória de dados usando métodos de acesso especializados. Esses métodos de acesso resultam em acesso e armazenamento de dados até dez vezes mais rápidos que os usados para acessar dados armazenados em cache a partir de sistemas de bancos de dados tradicionais baseados em discos. Dentro do Botticelli, pré-carregamos os dados de referência que os programas algorítmicos necessitariam dentro do solidDB para que o acesso desses dados em tempo real fosse o mais rápido possível.
WebSphere ILOG® Business Rule Management Systems (BRMS) (E)
A tecnologia ILOG especializa-se no gerenciamento, otimização e visualização de regras de negócios. O ILOG BRMS é chamado JRules. O JRules fornece a capacidade de centralizar o gerenciamento e a administração de regras dentro de uma empresa, fornecendo o recurso de auditoria e rastreamento, que são requisitos críticos no segmento de mercado financeiro. Por essa razão, usamos o JRules para manipular o roteamento de ordens de exceção para a revisão de negociadores.

Dentro do Botticelli, invocamos regras de roteamento criadas no JRules para determinar para onde rotear ordens de exceção. Essas são ordens geradas de maneira algorítmica, que excedem o limite definido no tamanho da ordem. O próximo artigo na série trata da maneira como integramos o Streams e o ILOG. (Para ouvir um demo gravado do ILOG que mostra como o JRules pode ser usado em uma firma de Mercados Financeiros, veja a seção Recursos.)

O Botticelli também usou widgets de visualização ILOG no desktop do negociador. O IBM ILOG JViews Enterprise fornece uma variada gama de interfaces gráficas que podem ser integradas em monitores de desktop, Ajax e Eclipse.

WebSphere eXtreme Scale (F)
O WebSphere eXtreme Scale é uma tecnologia de armazenamento em cache e grade que usamos como um hub de dados central para os dados que necessitamos disponibilizar para os aplicativos cliente. Armazenamos em cache os dados de mercado do WebSphere Front Office, os dados de ordem do Streams e os dados históricos necessários aos desktops dos negociadores.

Criamos receptores diferentes que poderiam processar os dados recebidos através de tipos múltiplos de protocolos de sistemas de mensagem e disponibilizamos esses dados através de um gerenciador de assinaturas.

Clientes de desktop: IBM Lotus® Expeditor e WebSphere sMash (G)
Há diferentes requisitos para desktops clientes baseados no volume e na frequência de mudanças de dados. Criamos um aplicativo de desktop que exibe latência muito baixa usando o Lotus Expeditor e um aplicativo baseado na Web usando o WebSphere sMash (que pode ser acessado por qualquer navegador da Internet).

O Lotus Expeditor é uma plataforma cliente gerenciada pelo servidor que fornece um contêiner único para integrar aplicativos do desktop, aplicativos da Web e aplicativos de legado. É possível vincular o conteúdo dos aplicativos contextualmente através do uso de um broker da propriedade. No Botticelli, também integramos widgtes de visualização ILOG JViews para nossas tabelas e gráficos.

O WebSphere sMash é uma plataforma de desenvolvimento e execução para construir e executar aplicativos dinâmicos baseados na Web 2.0 de maneira rápida usando princípios SOA. Ele suporta linguagens de script como PHP e Groovy e fornece um ambiente ágil de desenvolvimento de aplicativos da Web.

IBM Cognos® Now! (H)
Além do desktop do negociador, identificamos a necessidade de fornecer um recurso de monitoramento de aplicativos. Gerenciadores de mesa de comércio, que são responsáveis pela mesa de comércio, estão interessados em:
  • Quantas ordens estão sendo geradas
  • A pane de ordens por setor/símbolo/tempo
  • Como as alimentações de dados estão sendo executadas
  • Qual o status da ordem

O Cognos Now! possui um mecanismo de fluxo que permite que ele processe alimentações de dados em tempo quase real. Em nosso cenário, os dados de ordem são enviados do programa algorítmico para o painel do Cognos Now!. Visualizações multidimensionais dos dados de ordem são apresentadas no painel em uma variedade de formatos. O recurso Alert Manager permite que usuários de negócios identifiquem condições de dados sobre as quais gostariam de ser alertados. Pontos de vigília podem ser usados para destacar condições de dados nas tabelas do painel.

Um artigo futuro nesta série descreve a integração entre o Cognos Now! e o WebSphere MQ Low Latency Messaging como parte deste projeto.


Pontos de integração

Houve pontos de integração múltiplos que foram tratados como parte desse esforço. Como o WebSphere MQ Low Latency Messaging é o barramento de sistema de mensagens principal, os produtos do Plano do Projeto tinham que ser ativados para usá-lo. Por isso, foi necessário o desenvolvimento de várias novas APIs. O código para essas APIs foi contribuído para as equipes do produto. Também foi feito um trabalho para integrar o mecanismo JRules com o Streams, permitindo a atualização dinâmica de regras de negócio em um programa Stream em execução. Artigos futuros nesta série descrevem como tratamos desses e de outros problemas de integração. Estes pontos de integração incluem:

  • Envio de dados do WebSphere Front Office ao InfoSphere Streams
  • Recebimento de dados do solidDB no InfoSphere Streams
  • Envio da saída do InfoSphere Streams a outros aplicativos usando o protocolo do WebSphere MQ Low Latency Messaging
  • Recebimento de dados no Cognos Now! através do WebSphere MQ Low Latency Messaging
  • Integração do mecanismo ILOG JRules em um programa do InfoSphere Streams
  • Extração de métricas de latência a partir do WebSphere Front Office, do WebSphere MQ Low Latency Messaging, do InfoSphere Streams e do solidDB

Conclusão

Este artigo forneceu uma visão geral de alguns recursos IBM no Segmento de Mercado Financeiro, especialmente na linha de frente. Usamos um cenário de comércio algorítmico para ilustrar como a tecnologia de middleware IBM pode ser integrada para fornecer uma solução de amostra. As mesmas tecnologias podem fornecer uma estrutura a muitas outras soluções nesse domínio que necessitem de recursos de alta velocidade e alto rendimento.

Agradecimentos

Gostaríamos de agradecer às pessoas que contribuíram para o projeto Botticelli:

  • Nick Schofield, Wei Tchao e Wayne Lee desenvolveram o protótipo que integra esses produtos e fornece uma demonstração.
  • Folu Okunseinde forneceu conhecimento técnico sobre mercados financeiros e tendência arquitetural.
  • Rajiv Chodhari e Philip Enness forneceram prioridades de tendência de negócios, conhecimento sobre mercados financeiros e requisitos de clientes.
  • Jim Caldwell nos informou sobre o domínio desse problema e forneceu grande suporte de gerenciamento.

Recursos

Aprender

Obter produtos e tecnologias

  • Elabore seu próximo projeto de desenvolvimento com o software de teste IBM, disponível para download diretamente no developerWorks.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management, WebSphere, Lotus, Segmentos de mercado
ArticleID=493141
ArticleTitle=Tecnologia IBM na linha de frente dos mercados financeiros, Parte 1: Visão geral de um plano de projeto de integração de linha de frente de mercados financeiros
publish-date=05282010