Saturday 5 August 2017

Algorithmic Trading System Architecture


Arquitetura do sistema A arquitetura do AlgoTrader é composta pelos seguintes componentes. O AlgoTrader Server fornece a infra-estrutura para todas as estratégias que estão sendo executadas em cima dela. O servidor AlgoTrader possui o principal mecanismo de Processamento de Evento Complexo Esper (CEP). É responsável por todos os objetos do modelo de domínio e sua persistência no banco de dados. Diferentes adaptadores de dados de mercado estão disponíveis para processar dados de mercado atuais e históricos. Na outra extremidade estão disponíveis adaptadores para diferentes corretores de execução e trocas, que são responsáveis ​​por fazer pedidos e receber execuções. O AlgoTrader Server também fornece componentes de negócios para gerenciamento de portfólio, medição de desempenho, gerenciamento de riscos, gerenciamento de dinheiro, preço de opções, reconciliação, hedge Forex e otimização de parâmetros. Em cima do AlgoTrader Server, qualquer número de estratégias pode ser implantado. O AlgoTrader possui uma arquitetura baseada em eventos, utilizando um motor dedicado Esper CEP por estratégia. Uma estratégia pode implantar qualquer número de declarações Esper-like do SQL para análise de dados de mercado baseada em tempo e geração de sinais. Declarações Esper podem invocar qualquer número de ações processuais, como fazer um pedido ou fechar uma posição, que são codificadas em Java. A combinação de declarações Esper e Java Code fornece uma abordagem do melhor dos dois mundos. Para gerenciamento e monitoramento do sistema, existem quatro clientes GUI diferentes. O novo AlgoTrader HTML5 Frontend fornece funcionalidades relacionadas à negociação, como gráficos, pedidos, posições de dados de mercado de amplificadores. O cliente AlgoTrader Eclipse é o ambiente de desenvolvimento de estratégia padrão. O cliente EsperHQ gerencia o motor esper CEP. O cliente Grails é um cliente genérico para gerenciamento de dados de referência. Para instalações produtivas e implantação, o AlgoTrader usa o Docker. Apresentando o AlgoTrader 3.0 8211 O AlgoTrader mais poderoso ainda Apr-07-2016 O AlgoTrader 3.0 foi lançado. Esta versão inclui o novo HTML5 Frontend, implantação de um clique com o Docker, três novos algoritmos de execução e um relatório de teste de retorno baseado no Excel. Introduzindo o AlgoTrader One-Click Installation pelo Docker Mar-15-2016 O AlgoTrader 3.0 apresenta instalações de estratégia de negociação com um clique alimentadas por Docker BILANZ Artikel zum Thema Hochfrequenzhandel Feb-02-2016 AlgoTrader GmbH CEO Andy Flury im Entrevista com o BILANZ zum Thema Hochfrequenzhandel Termo de Licença da AlgoTrader TERMOS E CONDIÇÕES DO CONTRATO DE LICENÇA DO USUÁRIO FINAL (8220AGREIMENTO8221) GOVERNECE O USO DO SOFTWARE A MENOS QUE VOCÊ E O O LICENCIANTE EXECUTOU UM ACORDO DE LICENÇA ESCRITO SEPARADO QUE REGULA O USO DO SOFTWARE. O Licenciante está disposto a conceder a licença do Software apenas mediante a condição de aceitar todos os termos contidos neste Contrato. Ao assinar este Contrato ou ao fazer o download, instalar ou usar o Software, você indicou que entendeu este Contrato e aceita todos os seus termos. Se você não aceita todos os termos deste Contrato, o Licenciador não está disposto a licenciar o Software para você, e você não pode baixar, instalar ou usar o Software. 1. CONCESSÃO DE LICENÇA a. Licença de Uso e Desenvolvimento de Uso de Avaliação. Sujeito à sua conformidade com os termos e condições deste Contrato, o Licenciante concede a você uma licença pessoal, não exclusiva e intransferível, sem o direito de sublicenciar, durante o termo deste Contrato, usar internamente o Software exclusivamente para Utilização de avaliação e uso de desenvolvimento. Os produtos ou módulos de software de terceiros fornecidos pelo Licenciador, se houver, podem ser usados ​​exclusivamente com o Software e podem estar sujeitos à aceitação dos termos e condições fornecidos por esses terceiros. Quando a licença termina, você deve parar de usar o Software e desinstalar todas as instâncias. Todos os direitos não especificamente concedidos aqui são retidos pelo Licenciador. O desenvolvedor não deve fazer nenhum uso comercial do Software, ou qualquer trabalho derivado dele (incluindo para os próprios fins de negócios internos do Developer8217s). Copiando e redistribuindo, de qualquer forma, o Software ou o Aplicativo de desenvolvedor para seus clientes diretos ou indiretos é proibido. B. Licença de uso de produção. Sujeito à sua conformidade com os termos e condições deste Contrato, incluindo o pagamento da taxa de licença aplicável, o Licenciante concede a você uma licença não exclusiva e não transferível, sem o direito de sublicenciar, durante o termo deste Contrato, para : (A) use e reproduza o Software exclusivamente para seus próprios fins de negócios internos (8220Produção Use8221) e (b) faça um número razoável de cópias do Software apenas para fins de backup. Essa licença é limitada ao número específico de CPUs (se licenciado pela CPU) ou instâncias de Java Virtual Machines (se licenças por máquina virtual) para as quais você pagou uma taxa de licença. O uso do Software em uma maior quantidade de CPUs ou instâncias de Java Virtual Machines exigirá o pagamento de uma taxa de licença adicional. Os produtos ou módulos de software de terceiros fornecidos pelo Licenciante, se houver, podem ser usados ​​exclusivamente com o Software. C. Não há outros direitos. Os seus direitos e o uso do Software são limitados aos expressamente concedidos nesta Seção 1. Você não fará nenhum outro uso do Software. Exceto quando expressamente licenciado nesta Seção, o Licenciante não lhe concede outros direitos ou licenças, por implicação, impedimento ou de outra forma. TODOS OS DIREITOS NÃO CONCEDIDOS EXPRESSAMENTE AQUI SÃO RESERVADOS PELO LICENCIANTE OU SEUS FORNECEDORES. 2. RESTRIÇÕES Salvo o disposto expressamente na Seção 1, você não: (a) modificará, traduzirá, desmontará, criará obras derivadas do Software ou copiará o Software (b) alugará, emprestará, transferirá, distribuirá ou concederá quaisquer direitos no Software de qualquer forma para qualquer pessoa (c) fornecer, divulgar, divulgar ou disponibilizar, ou permitir o uso do Software, por qualquer terceiro (d) publicar qualquer benchmark ou teste de desempenho executado no Software ou qualquer parte dele ou ( E) remover quaisquer avisos de propriedade, rótulos ou marcas no Software. Você não distribuirá o Software a qualquer pessoa em uma base autônoma ou em um fabricante de equipamento original (OEM). 3. PROPRIEDADE Entre as partes, o Software é e permanecerá propriedade exclusiva e exclusiva do Licenciador, incluindo todos os direitos de propriedade intelectual nele contidos. uma. No caso de você usar o Software sob a licença estabelecida na Seção 1 (a), este Contrato permanecerá em vigor durante o período de avaliação ou desenvolvimento. B. No caso de você usar o Software sob a licença estabelecida na Seção 1 (b), este Contrato permanecerá em vigor, quer (a) por um período de um ano, se adquirido como uma licença de assinatura anual ou (b) perpétuamente se comprado como um licença perpétua. Uma licença de assinatura anual será renovada automaticamente por um ano, a menos que seja encerrado com aviso prévio de um mês. Este Contrato terminará automaticamente sem aviso prévio se você violar qualquer termo deste Contrato. Após a rescisão, você deve imediatamente deixar de usar o Software e destruir todas as cópias do Software em sua posse ou controle. 5. SERVIÇOS DE APOIO Se você comprou essa licença, incluindo serviços de suporte, incluem lançamentos de manutenção (atualizações e atualizações), suporte por telefone e suporte por e-mail ou na web. uma. O Licenciador fará esforços comercialmente razoáveis ​​para fornecer uma atualização projetada para resolver ou ignorar um erro relatado. Se esse erro tiver sido corrigido em uma versão de manutenção, o Licenciado deve instalar e implementar a versão de manutenção aplicável de outra forma, a Atualização pode ser fornecida sob a forma de uma correção, procedimento ou rotina temporária, a ser usada até uma versão de manutenção contendo a atualização permanente está disponível. B. Durante o Termo do Contrato de Licença, o Licenciador deverá disponibilizar os Lançamentos de Manutenção ao Licenciado se, à medida que o Licenciador disponibilizar as Lançamentos de Manutenção, geralmente disponíveis para seus clientes. Se surgir uma questão sobre se uma oferta de produto é uma Atualização ou um novo produto ou recurso, a opinião do Licensor8217s prevalecerá, desde que o Licenciador considere a oferta de produtos como um novo produto ou recurso para seus clientes finais em geral. C. A obrigação do Licensor8217 de fornecer os Serviços de Suporte está condicionada ao seguinte: (a) O Licenciado faz esforços razoáveis ​​para corrigir o Erro depois de consultar o Licenciador (b) O Licenciado fornece ao Licenciante informações e recursos suficientes para corrigir o Erro no site do Licensor8217s Ou via acesso remoto ao site do Licenciado8217s, bem como acesso ao pessoal, hardware e qualquer software adicional envolvido na descoberta do erro (c) O Licenciado instala prontamente todas as versões de manutenção e (d) O Licenciado procura, instala e mantém todo o equipamento, comunicação Interfaces e outros equipamentos necessários para operar o Produto. D. O Licenciador não é obrigado a prestar serviços de suporte nas seguintes situações: (a) o Produto foi alterado, modificado ou danificado (exceto se sob a supervisão direta do Licenciador) (b) o erro é causado por negligência do Licenciado8217s, mau funcionamento do hardware Ou outras causas além do controle razoável do Licenciador (c) o erro é causado por software de terceiros não licenciado através do Licenciador (d) O Licenciado não instalou e implementou a (s) Versão (ões) de Manutenção para que o Produto seja uma versão suportada pelo Licenciador ou (e) O Licenciado não pagou as taxas de Licença ou de Serviços de Suporte quando vencer. Além disso, o Licenciador não é obrigado a fornecer serviços de suporte para o código de software escrito pelo próprio cliente com base no Produto. E. O Licenciador reserva-se o direito de interromper os Serviços de Suporte se o Licenciante, a seu exclusivo critério, determinar que o suporte continuado para qualquer Produto não é mais economicamente praticável. O Licenciante dará ao Licenciado pelo menos três (3) meses de antecedência de notificação por escrito de qualquer descontinuação de Serviços de Apoio e reembolsará quaisquer taxas de Serviços de Suporte não acumuladas que o Licenciado pode ter pago antecipadamente em relação ao Produto afetado. O Licenciante não tem obrigação de suportar ou manter qualquer versão do Produto ou plataformas de terceiros subjacentes (incluindo, mas não limitado a, software, JVM, sistema operacional ou hardware) para o qual o Produto é suportado, exceto (i) a versão atual do Produto e plataforma de terceiros subjacente, e (ii) as duas versões imediatamente anteriores do Produto e sistema operacional por um período de seis (6) meses após a sua primeira substituição. O Licenciador reserva-se o direito de suspender o desempenho dos Serviços de Apoio se o Licenciado não pagar qualquer montante que seja pagável ao Licenciador sob o Contrato no prazo de trinta (30) dias após esse vencimento. 6. GARANTIA a. O Licenciador garante que o Software será capaz de realizar em todos os aspectos relevantes de acordo com as especificações funcionais estabelecidas na documentação aplicável por um período de 90 dias após a data em que você instalou o Software. Em caso de incumprimento de tal garantia, o Licenciador deverá, a seu critério, corrigir o Software ou substituir esse Software gratuitamente. O que precede são os seus únicos e exclusivos remédios e a única responsabilidade do Licensor8217 por violação dessas garantias. As garantias estabelecidas acima são feitas e para o benefício de você apenas. As garantias serão aplicadas somente se (a) o Software tiver sido devidamente instalado e usado em todos os momentos e de acordo com as instruções de uso (c) as atualizações mais recentes foram aplicadas ao software e (c) nenhuma modificação, alteração ou adição Foi feito ao Software por pessoas que não sejam o Licenciador ou o representante autorizado do Licensor8217s. 7. EXERCÍCIO EXCEPTO, COMO SEJA FORNECIDO DE ACORDO COM A SEÇÃO 6 (a), O LICENCIANTE EXCLUIRÁ EXPRESSAMENTE TODAS AS GARANTIAS, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUAISQUER GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO INFRACÇÃO E QUAISQUER GARANTIAS DECORRENTES DO CURSO DE NEGOCIAÇÃO OU USO DO COMÉRCIO. NENHUM AVISO OU INFORMAÇÃO, SEJA ORAL OU ESCRITO, OBTIDO DO LICENCIANTE OU DE OUTRA VEZ CRIÁ QUALQUER GARANTIA NÃO EXPRESSAMENTE INDICADA NESTE ACORDO. O Licenciante não garante que o Produto de Software atenda seus requisitos ou opere sob suas condições específicas de uso. O Licenciante não garante que a operação do Produto de Software seja segura, sem erros ou sem interrupção. VOCÊ DEVE DETERMINAR SE O PRODUTO DE SOFTWARE SUFICIENTEMENTE CARREGA SEUS REQUISITOS PARA SEGURANÇA E ININTERRUPTABILIDADE. VOCÊ PENA A ÚNICA RESPONSABILIDADE E TODA A RESPONSABILIDADE POR QUALQUER PERDA INCURRIDA POR FALHA DO PRODUTO DO SOFTWARE PARA CUMPRIR OS SEUS REQUISITOS. O LICENCIANTE NÃO SERÁ RESPONSÁVEL PELA PERDA DE DADOS POR QUALQUER COMPUTADOR OU DISPOSITIVO DE ARMAZENAMENTO DE INFORMAÇÕES, SOB QUALQUER CIRCUNSTÂNCIA. 8. LIMITAÇÃO DE RESPONSABILIDADE A RESPONSABILIDADE TOTAL DE LICENCIADORA 8217S DE TODAS AS CAUSAS DE AÇÃO E SOB TODAS AS TEORIAS DE RESPONSABILIDADE SERÃO LIMITADAS E NÃO EXCEDERÃO A TAXA DE LICENÇA PAGADA POR VOCÊ PARA O LICENCIANTE PARA O SOFTWARE. EM NENHUM CASO, O LICENCIANTE SERÁ RESPONSÁVEL POR QUAISQUER DANOS ESPECIAIS, INCIDENTAIS, EXEMPLARES, PUNITIVOS OU CONSEQÜENCIAIS (INCLUINDO PERDA DE USO, DADOS, NEGÓCIOS OU LUCROS) OU PARA O CUSTO DOS PRODUTOS DE SUBSTITUIÇÃO DE PROCURA QUE SÃO FORA DE OU RELACIONADOS COM ESTE CONTRATO OU O USO OU O DESEMPENHO DO SOFTWARE, SEJA TAL RESPONSABILIDADE DE QUALQUER RECLAMAÇÃO COM BASE NO CONTRATO, GARANTIA, DELITO (INCLUINDO NEGLIGÊNCIA), RESPONSABILIDADE ESTRITA OU DE OUTRA FORMA, E SE O LICENCIANTE TENHA SIDO AVISADO DA POSSIBILIDADE DE TAIS PERDAS OU DANIFICAR. AS LIMITAÇÕES ANTERIORES SOBREVIVARÃO E APLICAREM MESMO, SE QUALQUER REMÉDIO LIMITADO ESPECIFICADO NESTE ACORDO SE ENCONTRARÁ PARA FALHAR SEU PROPÓSITO ESSENCIAL. NA MEDIDA DE QUE A LEGISLAÇÃO APLICÁVEL LIMITA A ABORDAGEM DA LICENCIADORA 8217 NENHUMA RESPONSABILIDADE, ESTA EXERCÍCIO DE RESPONSABILIDADE SERÁ EFICAZ NA MÁXIMA EXTENSÃO PERMITIDA. 9. GERAL Se qualquer disposição deste Contrato for considerada inválida ou inaplicável, o restante deste Contrato permanecerá em pleno vigor e efeito. Na medida em que quaisquer restrições expressas ou implícitas não sejam permitidas pelas leis aplicáveis, essas restrições expressas ou implícitas permanecerão em vigor e aplicadas na extensão máxima permitida por tais leis aplicáveis. Este Contrato é o acordo completo e exclusivo entre as partes em relação ao assunto em questão, substituindo e substituindo todos e quaisquer acordos, comunicações e entendimentos prévios (tanto escritos quanto orais) em relação a esse assunto. As partes neste Contrato são empreiteiras independentes, e tampouco tem o poder de vincular a outra ou incorrer em obrigações por conta do outro. Nenhuma falha de qualquer das partes para exercer ou fazer valer qualquer dos seus direitos ao abrigo deste Acordo constituirá uma renúncia a tais direitos. Quaisquer termos ou condições contidos em qualquer pedido de compra ou outro documento de pedido que sejam inconsistentes ou adicionais aos termos e condições deste Contrato são rejeitados pelo Licenciador e serão considerados nulos e sem efeito. Este Acordo será interpretado e interpretado de acordo com as leis da Suíça, sem levar em conta os princípios do conflito de leis. As partes aceitam a jurisdição exclusiva e o foro dos tribunais situados em Zurique, Suíça, para resolução de eventuais litígios decorrentes ou relacionados a este Contrato. 10. DEFINIÇÕES 8220Avaliação O uso8221 significa o uso do Software exclusivamente para avaliação e avaliação para novas aplicações destinadas ao seu Uso de Produção. 8220Produção O uso8221 significa usar o Software apenas para fins comerciais internos. O Uso da Produção não inclui o direito de reproduzir o Software para sublicenciar, revender ou distribuir, incluindo, sem limitação, operação em um compartilhamento de tempo ou distribuição do Software como parte de um arranjo ASP, VAR, OEM, distribuidor ou revendedor. 8220Software8221 significa o software Licensor8217s e todos os seus componentes, documentação e exemplos incluídos pelo Licenciador. 8220Error8221 significa (a) uma falha no Produto de acordo com as especificações estabelecidas na documentação, resultando na incapacidade de usar ou restrição no uso do Produto, ou / ou (b) um problema que requer novos procedimentos, esclarecimentos , Informações adicionais e pedidos de melhorias de produtos. 8220Maintenance Release8221 significa Atualizações e Atualizações para o Produto que estão disponíveis para licenciados de acordo com os Serviços de Suporte padrão definidos na seção 5. 8220Update8221 significa uma modificação de software ou adição que, quando feita ou adicionada ao Produto, corrige o erro ou um Procedimento ou rotina que, quando observado na operação regular do Produto, elimina o efeito adverso prático do Erro no Licenciado. 8220Upgrade8221 significa uma revisão do Produto lançada pelo Licenciador para seus clientes finais em geral, durante o Termo de Serviços de Suporte, para adicionar funções novas e diferentes ou para aumentar a capacidade do Produto. A atualização não inclui a liberação de um novo produto ou recursos adicionais para os quais pode haver uma cobrança separada. Arquitetura do sistema de comércio alergórico Anteriormente neste blog, escrevi sobre a arquitetura conceitual de um sistema de negociação algorítmico inteligente e funcional e não - Requisitos funcionais de um sistema de negociação algorítmica de produção. Desde então, criei uma arquitetura de sistema que, acredito, poderia satisfazer esses requisitos arquitetônicos. Nesta publicação, descreverei a arquitetura seguindo as diretrizes do sistema ISOIECIEEE 42010 e padrão de descrição da arquitetura de engenharia de software. De acordo com este padrão, uma descrição de arquitetura deve: Conter várias visualizações arquitetônicas padronizadas (por exemplo, em UML) e Manter a rastreabilidade entre decisões de design e requisitos arquitetônicos. Definição de arquitetura de software Ainda não existe consenso sobre o que é uma arquitetura de sistemas. No contexto deste artigo, é definida como a infra-estrutura dentro da qual os componentes do aplicativo que satisfazem os requisitos funcionais podem ser especificados, implantados e executados. Os requisitos funcionais são as funções esperadas do sistema e seus componentes. Os requisitos não funcionais são medidas através das quais a qualidade do sistema pode ser medida. Um sistema que satisfaça plenamente seus requisitos funcionais ainda pode deixar de atender às expectativas se os requisitos não funcionais forem deixados insatisfeitos. Para ilustrar este conceito, considere o seguinte cenário: um sistema de negociação algorítmico que você acabou de comprar construído faz excelentes decisões de negociação, mas é completamente inoperável com os sistemas de gerenciamento de riscos e de gestão das organizações. Esse sistema atenderá às suas expectativas Arquitetura conceitual Uma visão conceitual descreve conceitos e mecanismos de alto nível que existem no sistema no mais alto nível de granularidade. Neste nível, o sistema de negociação algorítmica segue uma arquitetura orientada a eventos (EDA) dividida em quatro camadas e dois aspectos arquitetônicos. Para cada camada e referência de aspecto arquiteturas e padrões são usados. Padrões arquitetônicos são estruturas comprovadas e genéricas para alcançar requisitos específicos. Os aspectos arquitetônicos são preocupações transversais que abrangem múltiplos componentes. Arquitetura orientada a eventos - uma arquitetura que produz, detecta, consome e reage a eventos. Os eventos incluem movimentos do mercado em tempo real, eventos ou tendências complexas e eventos comerciais, e. Enviando um pedido. Este diagrama ilustra a arquitetura conceitual do sistema de negociação algorítmica Referência Arquiteturas Para usar uma analogia, uma arquitetura de referência é semelhante aos planos para uma parede de suporte de carga. Esta impressão em azul pode ser reutilizada para vários projetos de construção independentemente do edifício que está sendo construído, pois satisfaz um conjunto de requisitos comuns. Da mesma forma, uma arquitetura de referência define um modelo contendo estruturas genéricas e mecanismos que podem ser usados ​​para construir uma arquitetura de software concreta que satisfaça os requisitos específicos. A arquitetura para o sistema de negociação algorítmica usa uma arquitetura baseada em espaço (SBA) e um controlador de exibição de modelo (MVC) como referências. São também utilizadas boas práticas, como o armazenamento de dados operacionais (ODS), o padrão de transformação e carregamento de extratos (ETL) e um data warehouse (DW). Controle de exibição de modelo - um padrão que separa a representação de informações da interação dos usuários com ela. Arquitetura baseada em espaço - especifica uma infra-estrutura onde as unidades de processamento acopladas vagamente interagem entre si através de uma memória associativa compartilhada chamada espaço (mostrado abaixo). Visão estrutural A visão estrutural de uma arquitetura mostra os componentes e subcomponentes do sistema de negociação algorítmica. Ele também mostra como esses componentes são implantados em infra-estrutura física. Os diagramas UML utilizados nesta visão incluem diagramas de componentes e diagramas de implantação. Abaixo está a galeria dos diagramas de implantação do sistema de negociação algorítmico geral e as unidades de processamento na arquitetura de referência SBA, bem como diagramas de componentes relacionados para cada uma das camadas. Táticas arquitetônicas De acordo com o instituto de engenharia de software, uma tática arquitetônica é um meio de satisfazer um requisito de qualidade, manipulando algum aspecto de um modelo de atributo de qualidade através de decisões de design arquitetônico. Um exemplo simples usado na arquitetura do sistema de negociação algorítmica é manipular uma loja de dados operacional (ODS) com um componente de consulta contínua. Este componente analisaria continuamente o ODS para identificar e extrair eventos complexos. As seguintes táticas são usadas na arquitetura: o padrão de disruptor nas filas de eventos e pedidos Memória compartilhada para as filas de eventos e pedidos Linguagem de consulta contínua (CQL) no ODS Filtragem de dados com o padrão de design de filtro em dados recebidos Algoritmos de evitação de congestionamentos em todos Conexões de entrada e saída Gerenciamento de fila ativa (AQM) e notificação de congestionamento explícito Recursos de computação de commodities com capacidade de atualização (escalável) Redundância ativa para todos os pontos de falha únicos Indicação e estruturas de persistência otimizadas no backup regular de dados e scripts de limpeza do ODS Schedule ODS Histórico de transações em todos os bancos de dados Súmrios para todas as ordens para detectar falhas Anotar eventos com timestamps para ignorar eventos obsoletos Regras de validação de pedidos, por exemplo, Quantidades de comércio máximo Componentes de comerciante automatizado usam um banco de dados na memória para análise Autenticação em dois estágios para interfaces de usuário conectando-se à ATs Criptografia em interfaces de usuário e conexões ao padrão de design ATs Observer para o MVC para gerenciar vistas. A lista acima é apenas um design pequeno Decisões que identifiquei durante o desenho da arquitetura. Não é uma lista completa de táticas. À medida que o sistema está sendo desenvolvido, táticas adicionais devem ser empregadas em vários níveis de granularidade para atender aos requisitos funcionais e não funcionais. Abaixo estão três diagramas que descrevem o padrão de design do disruptor, o padrão de design do filtro e o componente de consulta contínua. Visão comportamental Esta visão de uma arquitetura mostra como os componentes e camadas devem interagir um com o outro. Isso é útil ao criar cenários para testar projetos de arquitetura e para entender o sistema de ponta a ponta. Essa visão consiste em diagramas de seqüência e diagramas de atividades. Diagramas de atividades que mostram o processo interno dos sistemas de negociação algorítmica e como os operadores devem interagir com o sistema de negociação algorítmica são mostrados abaixo. Tecnologias e estruturas O passo final na concepção de uma arquitetura de software é identificar possíveis tecnologias e estruturas que possam ser utilizadas para realizar a arquitetura. Como princípio geral, é melhor aproveitar as tecnologias existentes, desde que satisfaçam adequadamente os requisitos funcionais e não funcionais. Uma estrutura é uma arquitetura de referência realizada, e. JBoss é uma estrutura que realiza a arquitetura de referência JEE. As seguintes tecnologias e frameworks são interessantes e devem ser consideradas na implementação de um sistema de negociação algorítmica: CUDA - A NVidia possui uma série de produtos que suportam modelagem de finanças computacionais de alto desempenho. Pode-se alcançar até 50x melhorias no desempenho ao executar simulações de Monte Carlo na GPU em vez da CPU. Rio Apache - Rio é um kit de ferramentas usado para desenvolver sistemas distribuídos. Ele foi usado como uma estrutura para a construção de aplicativos com base no padrão SBA Apache Hadoop - no caso de registro invasivo ser um requisito, então o uso do Hadoop oferece uma solução interessante para o problema dos grandes dados. O Hadoop pode ser implantado em um ambiente em cluster que suporta tecnologias CUDA. AlgoTrader - uma plataforma de negociação algorítmica de código aberto. O AlgoTrader poderia ser implantado no lugar dos componentes do comerciante automatizado. FIX Engine - um aplicativo autônomo que aceita os protocolos do Financial Information Exchange (FIX), incluindo FIX, FAST e FIXatdl. Embora não seja uma tecnologia ou uma estrutura, os componentes devem ser criados com uma interface de programação de aplicativos (API) para melhorar a interoperabilidade do sistema e seus componentes. Conclusão A arquitetura proposta foi projetada para satisfazer requisitos muito genéricos identificados para sistemas de negociação algorítmica. De um modo geral, os sistemas de negociação algorítmica são complicados por três fatores que variam de acordo com cada implementação: Dependências em sistemas externos de negócios e de intercâmbio Desafio de requisitos não funcionais e Evolução de restrições arquitetônicas A arquitetura de software proposta deveria, portanto, ser adaptada caso a caso para Para satisfazer requisitos organizacionais e regulatórios específicos, bem como para superar restrições regionais. A arquitetura do sistema de negociação algorítmica deve ser vista como apenas um ponto de referência para indivíduos e organizações que desejam projetar seus próprios sistemas de negociação algorítmica. Para uma cópia completa e fontes usadas, baixe uma cópia do meu relatório. Obrigado. Trading Floor Architecture Trading Floor Architecture Executive Overview O aumento da concorrência, o aumento do volume de dados do mercado e as novas exigências regulatórias são algumas das forças motrizes das mudanças da indústria. As empresas estão tentando manter sua vantagem competitiva mudando constantemente suas estratégias de negociação e aumentando a velocidade de negociação. Uma arquitetura viável deve incluir as tecnologias mais recentes dos domínios de rede e de aplicativos. Tem que ser modular para fornecer um caminho gerenciável para evoluir cada componente com uma interrupção mínima no sistema geral. Portanto, a arquitetura proposta por este artigo é baseada em uma estrutura de serviços. Examinamos serviços como mensagens de latência ultra-baixa, monitoramento de latência, multicast, computação, armazenamento, virtualização de dados e aplicativos, resiliência comercial, mobilidade comercial e thin client. A solução para os requisitos complexos da plataforma de negociação da próxima geração deve ser construída com uma mentalidade holística, cruzando os limites dos silos tradicionais, como negócios e tecnologia ou aplicativos e redes. Este documento, principal objetivo, é fornecer diretrizes para a construção de uma plataforma de negociação de latência ultra baixa, ao mesmo tempo em que otimizamos a taxa de transferência e taxa de mensagens em bruto, tanto para os dados do mercado quanto para os pedidos de negociação FIX. Para conseguir isso, estamos propondo as seguintes tecnologias de redução de latência: conectividade entre conexões de alta velocidade ou 10 Gbps para o cluster de negociação Buscador de mensagens de alta velocidade Aceleração de aplicativos via RDMA sem re-código de aplicativos Monitoramento de latência em tempo real e re-direção de Tráfego comercial para o caminho com menor latência Tendências e desafios do setor As arquiteturas de negociação de próxima geração têm que responder ao aumento das demandas de velocidade, volume e eficiência. Por exemplo, espera-se que o volume de opções de dados de mercado dobre após a introdução das opções de negociação de penny em 2007. Também há demandas regulatórias para a melhor execução, que exigem o manuseio de atualizações de preços a taxas que se aproximam de 1 msgs. Para trocas. Eles também exigem visibilidade sobre o frescor dos dados e prova de que o cliente obteve a melhor execução possível. No curto prazo, a velocidade de negociação e inovação são diferenciadores-chave. Um número crescente de negociações é tratada por aplicativos de negociação algorítmica colocados o mais próximo possível do local de execução comercial. Um desafio com esses mecanismos de negociação quotblack-boxquot é que eles compõem o aumento de volume ao emitir ordens apenas para cancelá-los e enviá-los novamente. A causa desse comportamento é a falta de visibilidade em que local oferece melhor execução. O comerciante humano é agora um engenheiro financeiro quot, quotquantquot (analista quantitativo) com habilidades de programação, que pode ajustar os modelos comerciais sobre a marcha. As empresas desenvolvem novos instrumentos financeiros, como derivados do tempo ou transações de classe de ativos cruzados, e precisam implementar os novos aplicativos de forma rápida e escalável. A longo prazo, a diferenciação competitiva deve ser feita a partir da análise, não apenas do conhecimento. Os comerciantes de estrelas de amanhã assumem riscos, conseguem uma verdadeira visão do cliente e sempre superam o mercado (fonte IBM: www-935.ibmservicesusimcpdfge510-6270-trader. pdf). A resiliência empresarial tem sido uma das principais preocupações das empresas comerciais desde 11 de setembro de 2001. As soluções nesta área variam de centros de dados redundantes situados em diferentes regiões geográficas e conectados a vários locais de negociação para soluções de comerciantes virtuais que oferecem aos comerciantes de energia a maior parte da funcionalidade de um piso comercial Em um local remoto. O setor de serviços financeiros é um dos mais exigentes em termos de requisitos de TI. A indústria está passando por uma mudança arquitetônica para Arquitetura orientada a serviços (SOA), serviços da Web e virtualização de recursos de TI. A SOA aproveita o aumento da velocidade da rede para permitir a ligação dinâmica e a virtualização de componentes de software. Isso permite a criação de novas aplicações sem perder o investimento em sistemas e infraestrutura existentes. O conceito tem o potencial de revolucionar a forma como a integração é feita, permitindo reduções significativas na complexidade e custo dessa integração (gigaspacesdownloadMerrilLynchGigaSpacesWP. pdf). Outra tendência é a consolidação de servidores em fazendas de servidores de centros de dados, enquanto as mesas comerciais possuem apenas extensões KVM e clientes ultrafinos (por exemplo, soluções de lâminas SunRay e HP). As redes de área metropolitana de alta velocidade permitem que os dados de mercado sejam multicast entre diferentes locais, possibilitando a virtualização do piso comercial. Arquitetura de alto nível A Figura 1 descreve a arquitetura de alto nível de um ambiente comercial. A planta ticker e os mecanismos de negociação algorítmica estão localizados no cluster de negócios de alto desempenho no centro de dados das empresas ou na troca. Os comerciantes humanos estão localizados na área de aplicativos do usuário final. Funcionalmente, existem dois componentes de aplicativos no ambiente comercial, editores e assinantes da empresa. O ônibus de mensagens fornece o caminho de comunicação entre editores e assinantes. Existem dois tipos de tráfego específicos para um ambiente comercial: informações de preços do Market DataCarries para instrumentos financeiros, notícias e outras informações de valor agregado, como a análise. É unidirecional e muito sensível à latência, tipicamente entregue ao multicast UDP. É medido em updatessec. E em Mbps. Os fluxos de dados de mercado de um ou vários feeds externos, provenientes de provedores de dados de mercado, como bolsas de valores, agregadores de dados e ECNs. Cada provedor tem seu próprio formato de dados de mercado. Os dados são recebidos por manipuladores de alimentação, aplicativos especializados que normalizam e limpam os dados e enviam-no aos consumidores de dados, como motores de preços, aplicativos de negociação algorítmica ou comerciantes humanos. As empresas que vendem também enviam os dados do mercado para seus clientes, empresas de compra como fundos de investimento, hedge funds e outros gerentes de ativos. Algumas empresas compradoras podem optar por receber feeds diretos dos intercâmbios, reduzindo a latência. Figura 1 Arquitetura de negociação para uma empresa SideSell Side Firm Não existe um padrão industrial para formatos de dados de mercado. Cada troca tem seu formato proprietário. Os provedores de conteúdo financeiro, como a Reuters e Bloomberg, agregam diferentes fontes de dados de mercado, normalizam e adicionam notícias ou análises. Exemplos de feeds consolidados são RDF (Reuters Data Feed), RWF (Reuters Wire Format) e Bloomberg Professional Services Data. Para entregar dados de mercado de baixa latência, ambos os fornecedores lançaram feeds de dados de mercado em tempo real que são menos processados ​​e têm menos análises: Bloomberg B-PipeWith B-Pipe, Bloomberg deslocam o feed de dados de mercado de sua plataforma de distribuição porque um terminal Bloomberg Não é necessário para obter B-Pipe. Wombat e Reuters Feed Handlers anunciaram apoio para a B-Pipe. Uma empresa pode decidir receber feeds diretamente de uma troca para reduzir a latência. Os ganhos na velocidade de transmissão podem variar entre 150 milissegundos e 500 milissegundos. Esses feeds são mais complexos e mais caros e a empresa tem que construir e manter sua própria planta de ticker (financetechfeaturedshowArticle. jhtmlarticleID60404306). Ordens de troca Esse tipo de tráfego traz os negócios reais. É bidirecional e muito sensível à latência. É medido em messagessec. E Mbps. Os pedidos originam-se de uma empresa compradora ou comercial e são enviados para locais de negociação como um Exchange ou ECN para execução. O formato mais comum para o transporte de pedidos é FIX (Informações Financeiras eXchangefixprotocol. org). As aplicações que manipulam mensagens FIX são chamadas de motores FIX e eles se interagem com sistemas de gerenciamento de pedidos (OMS). Uma otimização para FIX é denominada FAST (Fix Adapted for Streaming), que usa um esquema de compressão para reduzir o comprimento da mensagem e, de fato, reduzir a latência. FAST é direcionado mais para a entrega de dados de mercado e tem potencial para se tornar um padrão. FAST também pode ser usado como um esquema de compressão para formatos de dados de mercado proprietários. Para reduzir a latência, as empresas podem optar por estabelecer acesso direto ao mercado (DMA). DMA é o processo automatizado de rotear uma ordem de valores mobiliários diretamente para um local de execução, evitando assim a intervenção de um terceiro (towergroupresearchcontentglossary. jsppage1ampglossaryId383). O DMA requer uma conexão direta com o local de execução. O barramento de mensagens é um software de middleware de fornecedores, como Tibco, 29West, Reuters RMDS, ou uma plataforma de código aberto como o AMQP. O barramento de mensagens usa um mecanismo confiável para entregar mensagens. O transporte pode ser feito através de TCPIP (TibcoEMS, 29West, RMDS e AMQP) ou UDPmulticast (TibcoRV, 29West e RMDS). Um conceito importante na distribuição de mensagens é o fluxo quotópico, que é um subconjunto de dados de mercado definidos por critérios como o símbolo do ticker, a indústria ou uma determinada cesta de instrumentos financeiros. Os assinantes se juntam a grupos de tópicos mapeados para um ou vários sub-tópicos para receber apenas as informações relevantes. No passado, todos os comerciantes receberam todos os dados do mercado. Nos atuais volumes de tráfego, isso seria sub-ótimo. A rede desempenha um papel crítico no ambiente comercial. Os dados do mercado são levados ao balcão onde os comerciantes humanos estão localizados através de uma rede de alta velocidade Campus ou Metro Area. Alta disponibilidade e baixa latência, bem como alto rendimento, são as métricas mais importantes. O ambiente de negociação de alto desempenho tem a maioria de seus componentes no farm de servidores do Data Center. Para minimizar a latência, os mecanismos de negociação algorítmica precisam estar localizados na proximidade dos manipuladores de alimentação, dos motores FIX e dos sistemas de gerenciamento de pedidos. Um modelo de implantação alternativo possui os sistemas de negociação algorítmica localizados em uma troca ou um provedor de serviços com conectividade rápida para trocas múltiplas. Modelos de implantação Existem dois modelos de implantação para uma plataforma de negociação de alto desempenho. As empresas podem escolher ter uma combinação dos dois: Centro de dados da empresa comercial (Figura 2) Este é o modelo tradicional, onde uma plataforma de negociação de pleno direito é desenvolvida e mantida pela empresa com links de comunicação para todos os locais de negociação. A latência varia com a velocidade dos links e o número de lúpulos entre a empresa e os locais. Figura 2 Modelo de implantação tradicional Co-localização no local de negociação (trocas, provedores de serviços financeiros (FSP)) (Figura 3) A empresa comercial implementa sua plataforma de negociação automatizada o mais próximo possível dos locais de execução para minimizar a latência. Figura 3 Arquitetura de negociação orientada para serviços modelo de implantação hospedada Proponemos uma estrutura orientada a serviços para a construção da arquitetura comercial de próxima geração. Esta abordagem fornece uma estrutura conceitual e um caminho de implementação baseado em modularização e minimização de interdependências. Esta estrutura fornece às empresas uma metodologia para: Avaliar seu estado atual em termos de serviços Priorizar os serviços com base no seu valor para o negócio Evoluir a plataforma de negociação para o estado desejado usando uma abordagem modular A arquitetura de negociação de alto desempenho depende dos seguintes serviços, como Definido pelo quadro de arquitetura de serviços representado na Figura 4. Figura 4 Estrutura de Arquitetura de Serviços para Negociação de Alto Desempenho Serviço de Mensagens de Latência Ultra-Baixa Este serviço é fornecido pelo barramento de mensagens, que é um sistema de software que resolva o problema de conectar muitos-a - Muitas aplicações. O sistema consiste em: Um conjunto de esquemas de mensagens pré-definidos Um conjunto de mensagens de comando comuns Uma infra-estrutura de aplicativos compartilhados para enviar as mensagens aos destinatários. A infra-estrutura compartilhada pode ser baseada em um corretor de mensagens ou em um modelo de cancelamento de publicação. Os principais requisitos para o barramento de mensagens de próxima geração são (fonte 29West): menor latência possível (por exemplo, menos de 100 microssegundos) Estabilidade sob carga pesada (por exemplo, mais de 1,4 milhões de msgsec.) Controle e flexibilidade (controle de taxa e transportes configuráveis) São esforços na indústria para padronizar o ônibus de mensagens. O Advanced Message Queuing Protocol (AMQP) é um exemplo de um padrão aberto defendido por J. P. Morgan Chase e apoiado por um grupo de fornecedores, tais como Cisco, Envoy Technologies, Red Hat, TWIST Process Innovations, Iona, 29West e iMatix. Dois dos principais objetivos são fornecer um caminho mais simples para a interoperabilidade para aplicações escritas em diferentes plataformas e modularidade para que o middleware possa ser facilmente desenvolvido. Em termos muito gerais, um servidor AMQP é análogo a um servidor de E-mail com cada troca atuando como um agente de transferência de mensagens e cada fila de mensagens como caixa de correio. As ligações definem as tabelas de roteamento em cada agente de transferência. Os editores enviam mensagens para agentes de transferência individuais, que então roteiam as mensagens para as caixas de correio. Os consumidores recebem mensagens de caixas de correio, o que cria um modelo poderoso e flexível que é simples (fonte: amqp. orgtikiwikitiki-index. phppageOpenApproachWhyAMQP). Serviço de Monitoramento de Latência Os principais requisitos para este serviço são: Granularidade de milissegundos de medidas Visibilidade em tempo real sem adicionar latência ao tráfego comercial Capacidade de diferenciar latência de processamento de aplicativos de latência de trânsito de rede Capacidade de lidar com altas taxas de mensagens Fornecer uma interface programática para Negociação de aplicativos para receber dados de latência, permitindo que os mecanismos de negociação algorítmica se adaptem às condições de mudança. Correla eventos de rede com eventos de aplicativos para fins de solução de problemas. A latência pode ser definida como o intervalo de tempo entre quando uma ordem comercial é enviada e quando a mesma ordem é reconhecida e agendada Sobre a parte receptora. Abordar o problema de latência é um problema complexo, que requer uma abordagem holística que identifique todas as fontes de latência e aplique diferentes tecnologias em diferentes camadas do sistema. A Figura 5 mostra a variedade de componentes que podem introduzir latência em cada camada da pilha OSI. Ele também mapeia cada fonte de latência com uma solução possível e uma solução de monitoramento. Esta abordagem em camadas pode dar às empresas uma maneira mais estruturada de atacar a questão da latência, pelo qual cada componente pode ser considerado como um serviço e tratado de forma consistente em toda a empresa. Manter uma medida precisa do estado dinâmico desse intervalo de tempo em rotas alternativas e destinos pode ser de grande ajuda nas decisões táticas de negociação. A capacidade de identificar a localização exata dos atrasos, seja na rede de ponta dos clientes, no centro central de processamento ou no nível de aplicação da transação, determina significativamente a capacidade dos prestadores de serviços de atender aos acordos de nível de serviço comercial (SLA). Para os formulários do lado da compra e do lado da venda, bem como para os comerciantes de dados de mercado, a rápida identificação e remoção de estrangulamentos se traduz diretamente em oportunidades comerciais e receitas melhoradas. Figura 5 Arquitetura de gerenciamento de latência Ferramentas de monitoramento de baixa latência da Cisco As ferramentas tradicionais de monitoramento de rede operam com granularidade de minutos ou segundos. As plataformas de negociação de próxima geração, especialmente as que oferecem suporte à negociação algorítmica, exigem latências inferiores a 5 ms e níveis extremamente baixos de perda de pacotes. Em uma LAN Gigabit, um microburst de 100 ms pode causar perda de 10.000 transtornos ou atraso excessivo. A Cisco oferece aos seus clientes uma escolha de ferramentas para medir a latência em um ambiente comercial: Gerenciador de Qualidade de Banda Larga (BQM) (OEM da Corvil) Gerenciador de Qualidade de Banda Larga (BQM) 4.0 Um produto de gerenciamento de desempenho de aplicativos de rede de próxima geração que permite aos clientes monitorar e provisionar sua rede para níveis controlados de latência e desempenho de perdas. Embora o BQM não seja exclusivamente alvo de redes comerciais, sua visibilidade por microsecondes combinada com características de provisionamento de banda larga inteligentes o torna ideal para esses ambientes exigentes. O Cisco BQM 4.0 implementa um amplo conjunto de tecnologias de análise de tráfego e de medição de tráfego patenteadas e pendentes de patente que proporcionam ao usuário uma visibilidade e uma compreensão sem precedentes de como otimizar a rede para o máximo desempenho da aplicação. O Cisco BQM agora é suportado na família de produtos do Cisco Application Deployment Engine (ADE). A família de produtos Cisco ADE é a plataforma de escolha para aplicativos de gerenciamento de rede da Cisco. Benefícios da BQM A micro-visibilidade do Cisco BQM é a capacidade de detectar, medir e analisar eventos de transição de latência, jitter e perda de indução para níveis microscópios de granularidade por resolução de pacotes. Isso permite que o Cisco BQM detecte e determine o impacto dos eventos de trânsito na latência, jitter e perda da rede. Critical para ambientes de negociação é que o BQM pode suportar medições de latência, perda e jitter de uma via para o tráfego TCP e UDP (multicast). Isso significa que ele informa perfeitamente tanto para o tráfego comercial quanto para os feeds de dados do mercado. O BQM permite ao usuário especificar um conjunto abrangente de limiares (contra atividade de microburst, latência, perda, jitter, utilização, etc.) em todas as interfaces. BQM, em seguida, opera uma captura de pacote de rolagem de fundo. Sempre que ocorre uma violação de limite ou outro evento de degradação de desempenho potencial, ele desencadeia o Cisco BQM para armazenar a captura de pacotes no disco para análise posterior. Isso permite ao usuário examinar detalhadamente o tráfego de aplicativos que foi afetado pela degradação do desempenho (quotthe victimsquot) e o tráfego que causou a degradação do desempenho (quotthe culpritsquot). Isso pode reduzir significativamente o tempo gasto no diagnóstico e na resolução de problemas de desempenho da rede. O BQM também é capaz de fornecer recomendações detalhadas de aprovisionamento de políticas de largura de banda e qualidade de serviço (QoS), que o usuário pode aplicar diretamente para alcançar o desempenho da rede desejado. Medidas BQM ilustradas Para entender a diferença entre algumas das técnicas de medição mais convencionais e a visibilidade fornecida pela BQM, podemos observar alguns gráficos de comparação. No primeiro conjunto de gráficos (Figura 6 e Figura 7), vemos a diferença entre a latência medida pelo Monitor de Qualidade de Rede Passiva do BQM (PNQM) e a latência medida pela injeção de pacotes de ping a cada 1 segundo no fluxo de tráfego. Na Figura 6., vemos a latência reportada por pacotes de ping ICMP de 1 segundo para tráfego de rede real (é dividido por 2 para dar uma estimativa para o atraso de ida). Ele mostra o atraso confortavelmente abaixo de cerca de 5ms por quase todo o tempo. Figura 6 Latência relatada por pacotes de ping ICMP de 1 segundo para tráfego de rede real Na Figura 7. vemos a latência relatada pelo PNQM pelo mesmo tráfego ao mesmo tempo. Aqui vemos que ao medir a latência unidirecional dos pacotes de aplicativos reais, obtemos uma imagem radicalmente diferente. Aqui, a latência está pairando em torno de 20 ms, com rajadas ocasionais muito maiores. A explicação é que, como o ping está enviando pacotes apenas a cada segundo, está perdendo a maior parte da latência do tráfego do aplicativo. Na verdade, os resultados do ping normalmente apenas indicam atraso de propagação de ida e volta em vez de latência de aplicação realista em toda a rede. Figure 7 Latency Reported by PNQM for Real Network Traffic In the second example (Figure 8 ), we see the difference in reported link load or saturation levels between a 5-minute average view and a 5 ms microburst view (BQM can report on microbursts down to about 10-100 nanosecond accuracy). The green line shows the average utilization at 5-minute averages to be low, maybe up to 5 Mbitss. The dark blue plot shows the 5ms microburst activity reaching between 75 Mbitss and 100 Mbitss, the LAN speed effectively. BQM shows this level of granularity for all applications and it also gives clear provisioning rules to enable the user to control or neutralize these microbursts. Figure 8 Difference in Reported Link Load Between a 5-Minute Average View and a 5 ms Microburst View BQM Deployment in the Trading Network Figure 9 shows a typical BQM deployment in a trading network. Figure 9 Typical BQM Deployment in a Trading Network BQM can then be used to answer these types of questions: Are any of my Gigabit LAN core links saturated for more than X milliseconds Is this causing loss Which links would most benefit from an upgrade to Etherchannel or 10 Gigabit speeds What application traffic is causing the saturation of my 1 Gigabit links Is any of the market data experiencing end-to-end loss How much additional latency does the failover data center experience Is this link sized correctly to deal with microbursts Are my traders getting low latency updates from the market data distribution layer Are they seeing any delays greater than X milliseconds Being able to answer these questions simply and effectively saves time and money in running the trading network. BQM is an essential tool for gaining visibility in market data and trading environments. It provides granular end-to-end latency measurements in complex infrastructures that experience high-volume data movement. Effectively detecting microbursts in sub-millisecond levels and receiving expert analysis on a particular event is invaluable to trading floor architects. Smart bandwidth provisioning recommendations, such as sizing and what-if analysis, provide greater agility to respond to volatile market conditions. As the explosion of algorithmic trading and increasing message rates continues, BQM, combined with its QoS tool, provides the capability of implementing QoS policies that can protect critical trading applications. Cisco Financial Services Latency Monitoring Solution Cisco and Trading Metrics have collaborated on latency monitoring solutions for FIX order flow and market data monitoring. Cisco AON technology is the foundation for a new class of network-embedded products and solutions that help merge intelligent networks with application infrastructure, based on either service-oriented or traditional architectures. Trading Metrics is a leading provider of analytics software for network infrastructure and application latency monitoring purposes (tradingmetrics ). The Cisco AON Financial Services Latency Monitoring Solution (FSMS) correlated two kinds of events at the point of observation: Network events correlated directly with coincident application message handling Trade order flow and matching market update events Using time stamps asserted at the point of capture in the network, real-time analysis of these correlated data streams permits precise identification of bottlenecks across the infrastructure while a trade is being executed or market data is being distributed. By monitoring and measuring latency early in the cycle, financial companies can make better decisions about which network serviceand which intermediary, market, or counterpartyto select for routing trade orders. Likewise, this knowledge allows more streamlined access to updated market data (stock quotes, economic news, etc.), which is an important basis for initiating, withdrawing from, or pursuing market opportunities. The components of the solution are: AON hardware in three form factors: AON Network Module for Cisco 2600280037003800 routers AON Blade for the Cisco Catalyst 6500 series AON 8340 Appliance Trading Metrics MampA 2.0 software, which provides the monitoring and alerting application, displays latency graphs on a dashboard, and issues alerts when slowdowns occur (tradingmetricsTMbrochure. pdf ). Figure 10 AON-Based FIX Latency Monitoring Cisco IP SLA Cisco IP SLA is an embedded network management tool in Cisco IOS which allows routers and switches to generate synthetic traffic streams which can be measured for latency, jitter, packet loss, and other criteria (ciscogoipsla ). Two key concepts are the source of the generated traffic and the target. Both of these run an IP SLA quotresponder, quot which has the responsibility to timestamp the control traffic before it is sourced and returned by the target (for a round trip measurement). Various traffic types can be sourced within IP SLA and they are aimed at different metrics and target different services and applications. The UDP jitter operation is used to measure one-way and round-trip delay and report variations. As the traffic is time stamped on both sending and target devices using the responder capability, the round trip delay is characterized as the delta between the two timestamps. A new feature was introduced in IOS 12.3(14)T, IP SLA Sub Millisecond Reporting, which allows for timestamps to be displayed with a resolution in microseconds, thus providing a level of granularity not previously available. This new feature has now made IP SLA relevant to campus networks where network latency is typically in the range of 300-800 microseconds and the ability to detect trends and spikes (brief trends) based on microsecond granularity counters is a requirement for customers engaged in time-sensitive electronic trading environments. As a result, IP SLA is now being considered by significant numbers of financial organizations as they are all faced with requirements to: Report baseline latency to their users Trend baseline latency over time Respond quickly to traffic bursts that cause changes in the reported latency Sub-millisecond reporting is necessary for these customers, since many campus and backbones are currently delivering under a second of latency across several switch hops. Electronic trading environments have generally worked to eliminate or minimize all areas of device and network latency to deliver rapid order fulfillment to the business. Reporting that network response times are quotjust under one millisecondquot is no longer sufficient the granularity of latency measurements reported across a network segment or backbone need to be closer to 300-800 micro-seconds with a degree of resolution of 100 igrave seconds. IP SLA recently added support for IP multicast test streams, which can measure market data latency. A typical network topology is shown in Figure 11 with the IP SLA shadow routers, sources, and responders. Figure 11 IP SLA Deployment Computing Services Computing services cover a wide range of technologies with the goal of eliminating memory and CPU bottlenecks created by the processing of network packets. Trading applications consume high volumes of market data and the servers have to dedicate resources to processing network traffic instead of application processing. Transport processingAt high speeds, network packet processing can consume a significant amount of server CPU cycles and memory. An established rule of thumb states that 1Gbps of network bandwidth requires 1 GHz of processor capacity (source Intel white paper on IO acceleration inteltechnologyioacceleration306517.pdf ). Intermediate buffer copyingIn a conventional network stack implementation, data needs to be copied by the CPU between network buffers and application buffers. This overhead is worsened by the fact that memory speeds have not kept up with increases in CPU speeds. For example, processors like the Intel Xeon are approaching 4 GHz, while RAM chips hover around 400MHz (for DDR 3200 memory) (source Intel inteltechnologyioacceleration306517.pdf ). Context switchingEvery time an individual packet needs to be processed, the CPU performs a context switch from application context to network traffic context. This overhead could be reduced if the switch would occur only when the whole application buffer is complete. Figure 12 Sources of Overhead in Data Center Servers TCP Offload Engine (TOE)Offloads transport processor cycles to the NIC. Moves TCPIP protocol stack buffer copies from system memory to NIC memory. Remote Direct Memory Access (RDMA)Enables a network adapter to transfer data directly from application to application without involving the operating system. Eliminates intermediate and application buffer copies (memory bandwidth consumption). Kernel bypass Direct user-level access to hardware. Dramatically reduces application context switches. Figure 13 RDMA and Kernel Bypass InfiniBand is a point-to-point (switched fabric) bidirectional serial communication link which implements RDMA, among other features. Cisco offers an InfiniBand switch, the Server Fabric Switch (SFS): ciscoapplicationpdfenusguestnetsolns500c643cdccont0900aecd804c35cb. pdf. Figure 14 Typical SFS Deployment Trading applications benefit from the reduction in latency and latency variability, as proved by a test performed with the Cisco SFS and Wombat Feed Handlers by Stac Research: Application Virtualization Service De-coupling the application from the underlying OS and server hardware enables them to run as network services. One application can be run in parallel on multiple servers, or multiple applications can be run on the same server, as the best resource allocation dictates. This decoupling enables better load balancing and disaster recovery for business continuance strategies. The process of re-allocating computing resources to an application is dynamic. Using an application virtualization system like Data Synapses GridServer, applications can migrate, using pre-configured policies, to under-utilized servers in a supply-matches-demand process (networkworldsupp2005ndc1022105virtual. htmlpage2 ). There are many business advantages for financial firms who adopt application virtualization: Faster time to market for new products and services Faster integration of firms following merger and acquisition activity Increased application availability Better workload distribution, which creates more quothead roomquot for processing spikes in trading volume Operational efficiency and control Reduction in IT complexity Currently, application virtualization is not used in the trading front-office. One use-case is risk modeling, like Monte Carlo simulations. As the technology evolves, it is conceivable that some the trading platforms will adopt it. Data Virtualization Service To effectively share resources across distributed enterprise applications, firms must be able to leverage data across multiple sources in real-time while ensuring data integrity. With solutions from data virtualization software vendors such as Gemstone or Tangosol (now Oracle), financial firms can access heterogeneous sources of data as a single system image that enables connectivity between business processes and unrestrained application access to distributed caching. The net result is that all users have instant access to these data resources across a distributed network (gridtoday030210101061.html ). This is called a data grid and is the first step in the process of creating what Gartner calls Extreme Transaction Processing (XTP) (gartnerDisplayDocumentrefgsearchampid500947 ). Technologies such as data and applications virtualization enable financial firms to perform real-time complex analytics, event-driven applications, and dynamic resource allocation. One example of data virtualization in action is a global order book application. An order book is the repository of active orders that is published by the exchange or other market makers. A global order book aggregates orders from around the world from markets that operate independently. The biggest challenge for the application is scalability over WAN connectivity because it has to maintain state. Todays data grids are localized in data centers connected by Metro Area Networks (MAN). This is mainly because the applications themselves have limitsthey have been developed without the WAN in mind. Figure 15 GemStone GemFire Distributed Caching Before data virtualization, applications used database clustering for failover and scalability. This solution is limited by the performance of the underlying database. Failover is slower because the data is committed to disc. With data grids, the data which is part of the active state is cached in memory, which reduces drastically the failover time. Scaling the data grid means just adding more distributed resources, providing a more deterministic performance compared to a database cluster. Multicast Service Market data delivery is a perfect example of an application that needs to deliver the same data stream to hundreds and potentially thousands of end users. Market data services have been implemented with TCP or UDP broadcast as the network layer, but those implementations have limited scalability. Using TCP requires a separate socket and sliding window on the server for each recipient. UDP broadcast requires a separate copy of the stream for each destination subnet. Both of these methods exhaust the resources of the servers and the network. The server side must transmit and service each of the streams individually, which requires larger and larger server farms. On the network side, the required bandwidth for the application increases in a linear fashion. For example, to send a 1 Mbps stream to 1000recipients using TCP requires 1 Gbps of bandwidth. IP multicast is the only way to scale market data delivery. To deliver a 1 Mbps stream to 1000 recipients, IP multicast would require 1 Mbps. The stream can be delivered by as few as two serversone primary and one backup for redundancy. There are two main phases of market data delivery to the end user. In the first phase, the data stream must be brought from the exchange into the brokerages network. Typically the feeds are terminated in a data center on the customer premise. The feeds are then processed by a feed handler, which may normalize the data stream into a common format and then republish into the application messaging servers in the data center. The second phase involves injecting the data stream into the application messaging bus which feeds the core infrastructure of the trading applications. The large brokerage houses have thousands of applications that use the market data streams for various purposes, such as live trades, long term trending, arbitrage, etc. Many of these applications listen to the feeds and then republish their own analytical and derivative information. For example, a brokerage may compare the prices of CSCO to the option prices of CSCO on another exchange and then publish ratings which a different application may monitor to determine how much they are out of synchronization. Figure 16 Market Data Distribution Players The delivery of these data streams is typically over a reliable multicast transport protocol, traditionally Tibco Rendezvous. Tibco RV operates in a publish and subscribe environment. Each financial instrument is given a subject name, such as CSCO. last. Each application server can request the individual instruments of interest by their subject name and receive just a that subset of the information. This is called subject-based forwarding or filtering. Subject-based filtering is patented by Tibco. A distinction should be made between the first and second phases of market data delivery. The delivery of market data from the exchange to the brokerage is mostly a one-to-many application. The only exception to the unidirectional nature of market data may be retransmission requests, which are usually sent using unicast. The trading applications, however, are definitely many-to-many applications and may interact with the exchanges to place orders. Figure 17 Market Data Architecture Design Issues Number of GroupsChannels to Use Many application developers consider using thousand of multicast groups to give them the ability to divide up products or instruments into small buckets. Normally these applications send many small messages as part of their information bus. Usually several messages are sent in each packet that are received by many users. Sending fewer messages in each packet increases the overhead necessary for each message. In the extreme case, sending only one message in each packet quickly reaches the point of diminishing returnsthere is more overhead sent than actual data. Application developers must find a reasonable compromise between the number of groups and breaking up their products into logical buckets. Consider, for example, the Nasdaq Quotation Dissemination Service (NQDS). The instruments are broken up alphabetically: This approach allows for straight forward networkapplication management, but does not necessarily allow for optimized bandwidth utilization for most users. A user of NQDS that is interested in technology stocks, and would like to subscribe to just CSCO and INTL, would have to pull down all the data for the first two groups of NQDS. Understanding the way users pull down the data and then organize it into appropriate logical groups optimizes the bandwidth for each user. In many market data applications, optimizing the data organization would be of limited value. Typically customers bring in all data into a few machines and filter the instruments. Using more groups is just more overhead for the stack and does not help the customers conserve bandwidth. Another approach might be to keep the groups down to a minimum level and use UDP port numbers to further differentiate if necessary. The other extreme would be to use just one multicast group for the entire application and then have the end user filter the data. In some situations this may be sufficient. Intermittent Sources A common issue with market data applications are servers that send data to a multicast group and then go silent for more than 3.5 minutes. These intermittent sources may cause trashing of state on the network and can introduce packet loss during the window of time when soft state and then hardware shorts are being created. PIM-Bidir or PIM-SSM The first and best solution for intermittent sources is to use PIM-Bidir for many-to-many applications and PIM-SSM for one-to-many applications. Both of these optimizations of the PIM protocol do not have any data-driven events in creating forwarding state. That means that as long as the receivers are subscribed to the streams, the network has the forwarding state created in the hardware switching path. Intermittent sources are not an issue with PIM-Bidir and PIM-SSM. Null Packets In PIM-SM environments a common method to make sure forwarding state is created is to send a burst of null packets to the multicast group before the actual data stream. The application must efficiently ignore these null data packets to ensure it does not affect performance. The sources must only send the burst of packets if they have been silent for more than 3 minutes. A good practice is to send the burst if the source is silent for more than a minute. Many financials send out an initial burst of traffic in the morning and then all well-behaved sources do not have problems. Periodic Keepalives or Heartbeats An alternative approach for PIM-SM environments is for sources to send periodic heartbeat messages to the multicast groups. This is a similar approach to the null packets, but the packets can be sent on a regular timer so that the forwarding state never expires. S, G Expiry Timer Finally, Cisco has made a modification to the operation of the S, G expiry timer in IOS. There is now a CLI knob to allow the state for a S, G to stay alive for hours without any traffic being sent. The (S, G) expiry timer is configurable. This approach should be considered a workaround until PIM-Bidir or PIM-SSM is deployed or the application is fixed. RTCP Feedback A common issue with real time voice and video applications that use RTP is the use of RTCP feedback traffic. Unnecessary use of the feedback option can create excessive multicast state in the network. If the RTCP traffic is not required by the application it should be avoided. Fast Producers and Slow Consumers Today many servers providing market data are attached at Gigabit speeds, while the receivers are attached at different speeds, usually 100Mbps. This creates the potential for receivers to drop packets and request re-transmissions, which creates more traffic that the slowest consumers cannot handle, continuing the vicious circle. The solution needs to be some type of access control in the application that limits the amount of data that one host can request. QoS and other network functions can mitigate the problem, but ultimately the subscriptions need to be managed in the application. Tibco Heartbeats TibcoRV has had the ability to use IP multicast for the heartbeat between the TICs for many years. However, there are some brokerage houses that are still using very old versions of TibcoRV that use UDP broadcast support for the resiliency. This limitation is often cited as a reason to maintain a Layer 2 infrastructure between TICs located in different data centers. These older versions of TibcoRV should be phased out in favor of the IP multicast supported versions. Multicast Forwarding Options PIM Sparse Mode The standard IP multicast forwarding protocol used today for market data delivery is PIM Sparse Mode. It is supported on all Cisco routers and switches and is well understood. PIM-SM can be used in all the network components from the exchange, FSP, and brokerage. There are, however, some long-standing issues and unnecessary complexity associated with a PIM-SM deployment that could be avoided by using PIM-Bidir and PIM-SSM. These are covered in the next sections. The main components of the PIM-SM implementation are: PIM Sparse Mode v2 Shared Tree (spt-threshold infinity) A design option in the brokerage or in the exchange.

No comments:

Post a Comment