Architecture du système L'architecture d'AlgoTrader est composée des composants suivants. Le serveur AlgoTrader fournit l'infrastructure pour toutes les stratégies qui s'exécutent au-dessus d'elle. Le serveur AlgoTrader détient le moteur principal de traitement des événements complexes Esper (CEP). Il est responsable de tous les objets de modèle de domaine et de leur persistance dans la base de données. Différents adaptateurs de données de marché sont disponibles pour traiter les données du marché en direct et en temps réel. Sur l'autre extrémité des adaptateurs pour différents courtiers d'exécution et des échanges sont disponibles, qui sont responsables de passer des ordres et de recevoir des exécutions. Le serveur AlgoTrader fournit également des composants d'entreprise pour la gestion de portefeuille, la mesure du rendement, la gestion des risques, la gestion de l'argent, le tarification des options, le rapprochement, la couverture Forex et l'optimisation des paramètres. Au-dessus du serveur d'AlgoTrader n'importe quel nombre de stratégies peut être déployé. AlgoTrader a une architecture événementielle en utilisant un moteur de CEP Esper par stratégie. Une stratégie peut déployer n'importe quel nombre d'instructions Esper de type SQL pour l'analyse de données de marché basée sur le temps et la génération de signaux. Les instructions de Esper peuvent invoquer n'importe quel nombre d'actions procédurales, telles que placer une commande ou fermer une position, qui sont codées en Java. La combinaison d'énoncés Esper et de code Java fournit une approche best-of-both-worlds. Pour la gestion et le suivi du système, quatre clients GUI différents existent. Le nouvel AlgoTrader HTML5 Frontend fournit des fonctionnalités liées à la négociation telles que la cartographie, les commandes, les positions, les données du marché des amplificateurs. Le client AlgoTrader Eclipse est l'environnement de développement de stratégie par défaut. Le client EsperHQ gère le moteur CEP Esper. Le client Grails est un client générique pour la gestion des données de référence. Pour les installations productives et le déploiement AlgoTrader utilise Docker. Présentation de AlgoTrader 3.0 8211 Le plus puissant AlgoTrader Encore Avril-07-2016 AlgoTrader 3.0 a été libéré. Cette nouvelle version inclut le nouveau Frontend HTML5, un déploiement en un clic avec Docker, trois nouveaux Algorithmes d'Exécution et un Rapport de Test Retour basé sur Excel Présentation de AlgoTrader One-Click Installation par Docker Mar-15-2016 AlgoTrader 3.0 introduit une stratégie de trading avec un clic Docker BILANZ Artikel zum Thema Hochfrequenzhandel Feb-02-2016 AlgoTrader GmbH PDG Andy Flury en Interview avec BILANZ zum Thema Hochfrequenzhandel Conditions d'utilisation de la licence AlgoTrader CONDITIONS GÉNÉRALES D'UTILISATION DU LOGICIEL (8220AGREEMENT8221) LE LICENCIANT A EXÉCUTÉ UN CONTRAT DE LICENCE ÉCRIT SÉPARÉ RÉGISSANT VOTRE UTILISATION DU LOGICIEL. Le Concédant est disposé à vous accorder la licence du Logiciel uniquement à la condition que vous acceptiez toutes les conditions contenues dans le présent Contrat. En signant le présent Contrat ou en téléchargeant, installant ou utilisant le Logiciel, vous avez indiqué que vous comprenez le présent Contrat et que vous acceptez toutes ses conditions. Si vous n'acceptez pas tous les termes du présent Contrat, le Concédant ne vous autorisera pas à souscrire le Logiciel, et vous ne pourrez pas le télécharger, l'installer ou l'utiliser. 1. OCTROI DE LA LICENCE a. Évaluation Utilisation et développement Utilisation de la licence. Sous réserve de votre respect des termes et conditions du présent Contrat, le Concédant vous accorde une licence personnelle, non exclusive et non transférable, sans droit de sous-licence, pendant la durée du présent Contrat, d'utiliser le Logiciel en interne uniquement pour Évaluation Utilisation et développement Utilisation. Les logiciels tiers ou les modules fournis par le Concédant, le cas échéant, peuvent être utilisés exclusivement avec le Logiciel et peuvent être soumis à votre acceptation des termes et conditions fournis par ces tiers. Lorsque la licence est terminée, vous devez cesser d'utiliser le logiciel et désinstaller toutes les instances. Tous les droits qui ne vous sont pas expressément accordés sont conservés par le Concédant. Le développeur ne fera aucune utilisation commerciale du Logiciel, ni de tout travail dérivé de celui-ci (y compris pour ses propres besoins internes). Il est interdit de copier et de redistribuer, sous quelque forme que ce soit, le logiciel ou la demande de développement à vos clients directs ou indirects. B. Licence d'utilisation de la production. Sous réserve de votre respect des termes et conditions du présent Contrat, y compris le paiement des droits de licence applicables, le Concédant vous accorde une licence non exclusive et non transférable, sans droit de sous-licence, pour la durée du présent Contrat, : (A) utiliser et reproduire le Logiciel uniquement à des fins professionnelles internes (8220Production Use8221) et (b) faire un nombre raisonnable d'exemplaires du Logiciel uniquement à des fins de sauvegarde. Cette licence est limitée au nombre spécifique de CPU (si la licence est fournie par l'UC) ou aux instances de machines virtuelles Java (si les licences par machine virtuelle) pour lesquelles vous avez payé des frais de licence. L'utilisation du Logiciel sur un plus grand nombre de CPU ou d'instances de Java Virtual Machines nécessitera le paiement d'une redevance supplémentaire. Les logiciels tiers ou les modules fournis par le Concédant, le cas échéant, peuvent être utilisés uniquement avec le Logiciel. C. Aucun autre droit. Vos droits et utilisation du Logiciel sont limités à ceux expressément accordés dans cette Section 1. Vous ne ferez aucune autre utilisation du Logiciel. Sauf dans les cas expressément autorisés dans cette section, le Concédant ne vous accorde aucun autre droit ou licence, par implication, préclusion ou autrement. TOUS LES DROITS NON EXPRESSEMENT ACCORDÉS DANS CE DOCUMENT SONT RÉSERVÉS PAR LE LICENCIANT OU SES FOURNISSEURS. 2. RESTRICTIONS Sauf disposition expresse de la Section 1, vous ne devez pas: (a) modifier, traduire, désassembler, créer des œuvres dérivées du Logiciel ou copier le Logiciel; (b) louer, prêter, transférer, distribuer ou accorder des droits sur le Logiciel (C) fournir, divulguer, divulguer, mettre à disposition ou permettre l'utilisation du Logiciel par une tierce partie; (d) publier des tests de performance ou de référence exécutés sur le Logiciel ou une partie de celui-ci ou ( E) retirer les mentions, les étiquettes ou les marques du Logiciel. Vous ne distribuerez le Logiciel à quiconque sur une base autonome ou sur un fabricant de matériel d'origine (OEM). 3. PROPRIÉTÉ Entre les parties, le Logiciel est et restera la propriété exclusive et exclusive du Concédant, y compris tous les droits de propriété intellectuelle y afférents. une. Dans le cas où vous utiliserez le Logiciel en vertu de la licence énoncée à la Section 1 (a), le présent Contrat demeurera en vigueur pendant la durée de l'évaluation ou de la période de développement. B. Si vous utilisez le Logiciel en vertu de la licence énoncée à la Section 1 (b), le présent Contrat demeurera en vigueur soit: a) pour une durée d'un an si acheté en tant que licence annuelle de souscription; Licence perpétuelle. Une licence d'abonnement annuelle sera renouvelée automatiquement d'un an à moins qu'elle ne soit résiliée avec un préavis d'un mois. Le présent Contrat prendra automatiquement fin sans préavis si vous enfreignez une quelconque des dispositions du présent Contrat. À la résiliation, vous devez immédiatement cesser d'utiliser le Logiciel et détruire toutes les copies du Logiciel en votre possession ou sous votre contrôle. 5. SERVICES DE SOUTIEN Si vous avez acheté cette licence, y compris les Services de Support, ils comprennent les mises à jour de maintenance (mises à jour et mises à niveau), l'assistance téléphonique et l'assistance par courrier électronique ou Web. une. Le Concédant fera des efforts commercialement raisonnables pour fournir une Mise à jour conçue pour résoudre ou contourner une Erreur signalée. Si une telle erreur a été corrigée dans une version de maintenance, le titulaire de licence doit installer et mettre en œuvre la version de maintenance applicable, sinon, la mise à jour peut être fournie sous la forme d'un correctif temporaire, procédure ou routine, est disponible. B. Pendant la durée de l'accord de licence, le concédant met à la disposition du titulaire de licence les mises à jour de maintenance si, à mesure que le concédant met ces mises à jour de maintenance à la disposition de ses clients. Si une question se pose sur la question de savoir si une offre de produit est une mise à niveau ou un nouveau produit ou une nouvelle fonctionnalité, l'opinion de la Licence8217s prévaudra, à condition que le Concédant considère l'offre de produit comme un nouveau produit ou une fonctionnalité pour ses clients utilisateurs finaux en général. C. L'obligation de l'Acheteur de fournir les Services de Support est conditionnée par ce qui suit: (a) le Licencié déploie des efforts raisonnables pour corriger l'Erreur après avoir consulté le Concédant; (b) Le Licencié fournit au Concédant suffisamment d'informations et de ressources pour corriger l'Erreur (C) le titulaire de licence installe rapidement toutes les versions de maintenance et (d) le titulaire de licence procède à l'acquisition, à l'installation et à la maintenance de tout l'équipement, de la communication Interfaces et autres matériels nécessaires à l'utilisation du Produit. ré. Le Concédant n'est pas tenu de fournir des Services d'Assistance dans les situations suivantes: (a) le Produit a été modifié, modifié ou endommagé (sauf si sous la supervision directe du Concédant); (b) l'Erreur est causée par la négligence du Licencié, Ou d'autres causes indépendantes du contrôle raisonnable du Concédant (c) l'Erreur est causée par un logiciel tiers non autorisé par le Concédant (d) Le Licencié n'a pas installé et implémenté des Versions de Maintenance afin que le Produit soit une version prise en charge par le Concédant de licence ou (e) Le Licencié n'a pas payé les frais de licence ou les frais de Services de soutien à la date d'échéance. En outre, le Concédant n'est pas tenu de fournir des Services de Support pour le code logiciel écrit par le client lui-même basé sur le Produit. E. Le Concédant se réserve le droit d'interrompre les Services de Support si le Concédant, à son entière discrétion, décide que le support continu de tout Produit n'est plus économiquement réalisable. Le Concédant donnera au Licencié un préavis écrit d'au moins trois (3) mois de toute cessation des Services d'Assistance et remboursera les frais non supportés des Services de Soutien que le Licencié peut avoir payés à l'avance à l'égard du Produit concerné. Le Concédant n'a aucune obligation de soutenir ou de maintenir une version du Produit ou des plates-formes tierces sous-jacentes (y compris, mais sans s'y limiter, les logiciels, la JVM, le système d'exploitation ou le matériel) pour lesquels le Produit est pris en charge, sauf i) Le produit et la plateforme tierce sous-jacente, et (ii) les deux versions immédiatement précédentes du produit et du système d'exploitation pour une période de six (6) mois après sa première annulation. Le Concédant se réserve le droit de suspendre l'exécution des Services de Support si le Licencié ne paie pas le montant qui est payable au Concédant en vertu de la Convention dans les trente (30) jours suivant l'échéance de ce montant. 6. GARANTIE a. Le Concédant garantit que le Logiciel sera capable d'exécuter à tous égards importants conformément aux spécifications fonctionnelles énoncées dans la documentation applicable pendant une période de 90 jours après la date d'installation du Logiciel. En cas de violation de cette garantie, le Concédant doit, à son gré, corriger le Logiciel ou le remplacer gratuitement. Ce qui précède constitue votre seul et unique recours et la seule responsabilité du Licencié est la violation de ces garanties. Les garanties énoncées ci-dessus ne sont faites qu'à votre profit. Les garanties ne s'appliqueront que si (a) le Logiciel a été correctement installé et utilisé en tout temps et conformément aux instructions d'utilisation (c) les dernières mises à jour ont été appliquées au logiciel et (c) aucune modification, modification ou ajout A été faite au Logiciel par des personnes autres que le Concédant ou le représentant autorisé du Concédant. 7. EXCLUSION DE LA LIMITATION DE RESPONSABILITÉ, À L'EXCEPTION DES DISPOSITIONS DE L'ARTICLE 6 (a), LE CONCÉDANT DÉCLINE EXPRESSÉMENT TOUTES LES GARANTIES, EXPRESSES OU IMPLICITES, Y COMPRIS TOUTE GARANTIE IMPLICITE DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET DE NON-INFRACTION ET TOUTE GARANTIE DÉCOULANT DE OU UTILISATION DU COMMERCE. AUCUN CONSEIL OU INFORMATION, QU'ELLE SOIT ORALE OU ÉCRITE, OBTENUE PAR LE CONCÉDANT DE LICENCE OU AILLEURS CRÉE TOUTE GARANTIE NON EXPRESSÉMENT DÉCLARÉE DANS LE PRÉSENT CONTRAT. Le Concédant ne garantit pas que le Logiciel répondra à vos besoins ou fonctionnera selon vos conditions d'utilisation spécifiques. Le Concédant ne garantit pas que le fonctionnement du Logiciel sera sécurisé, sans erreur ou sans interruption. VOUS DEVEZ DÉTERMINER SI LE PRODUIT LOGICIEL RESPECTE VOS EXIGENCES EN MATIÈRE DE SÉCURITÉ ET D'ININTERRUPTABILITÉ. VOUS AVEZ LA RESPONSABILITÉ EXCLUSIVE ET TOUTE RESPONSABILITÉ POUR TOUTE PERTE RÉSULTANT D'UNE DÉFAILLANCE DU PRODUIT LOGICIEL POUR RÉPONDRE À VOS BESOINS. LE CONCÉDANT NE SERA, SOUS TOUTES CIRCONSTANCES, RESPONSABLE DE LA PERTE DE DONNÉES SUR TOUT ORDINATEUR OU DISPOSITIF DE STOCKAGE D'INFORMATIONS. 8. LIMITATION DE RESPONSABILITÉ LA RESPONSABILITÉ TOTALE DE LICENSOR8217S POUR TOUS DE TOUTES LES CAUSES D'ACTION ET SOUS TOUTES LES THEORIES DE RESPONSABILITÉ SERA LIMITÉE ET NE VA PAS EXCÉDER LA TAXE DE LICENCE PAYÉE PAR VOUS AU LICENCIANT DU LOGICIEL. EN AUCUN CAS LE LICENCIANT NE SERA TENU RESPONSABLE DE TOUT DOMMAGE SPÉCIAL, ACCESSOIRE, EXEMPLAIRE, PUNITIF OU CONSÉCUTIF (Y COMPRIS LA PERTE D'UTILISATION, DE DONNÉES, D'AFFAIRES OU DE BÉNÉFICES) OU AU COÛT DE L'ACQUISITION DE PRODUITS SUBSTITUTS DÉCOULANT DE CE ACCORD OU L'UTILISATION OU L'EXÉCUTION DU LOGICIEL, QUE CETTE RESPONSABILITÉ SOIENT SUR TOUTE RÉCLAMATION EN RAISON D'UN CONTRAT, D'UNE GARANTIE, D'UN TORT (Y COMPRIS LA NÉGLIGENCE), DE RESPONSABILITÉ STRICTE OU AUTRE, ET SI LE LICENCIANT A ÉTÉ AVISÉ DE LA POSSIBILITÉ DE TELS PERTES OU DOMMAGE. LES LIMITATIONS PRÉCÉDENTES SURVIENT ET S'APPLIQUENT, MEME SI LES RECOURS LIMITÉS PRÉCIS DANS LE PRÉSENT ACCORD SONT TROUVÉS POUR ÉCHOUER SON OBJET ESSENTIEL. DANS LA MESURE OU LA COMPETENCE APPLICABLE LIMITE LA CAPACITE DE LICENSOR8217S A REJETER TOUTE GARANTIE IMPLICITE, CETTE LIMITATION DE RESPONSABILITE EST EFFECTIVE A LA LIMITE MAXIMALE PERMISE. 9. DISPOSITIONS GÉNÉRALES Si une disposition du présent Contrat est considérée comme non valide ou inapplicable, le reste du présent Contrat restera pleinement en vigueur. Dans la mesure où des restrictions expresses ou implicites ne sont pas permises par les lois applicables, ces restrictions expresses ou implicites restent en vigueur et s'appliquent dans toute la mesure permise par ces lois applicables. Le présent Accord constitue l'accord complet et exclusif entre les parties en ce qui concerne l'objet de la présente, remplaçant et remplaçant tous les accords, communications et ententes antérieurs (écrits et oraux) concernant l'objet de la présente. Les parties au présent Accord sont des entrepreneurs indépendants et n'ont ni le pouvoir de lier l'autre ni d'engager des obligations au nom de l'autre. Aucune défaillance de l'une ou l'autre des parties pour exercer ou faire valoir aucun de ses droits en vertu du présent Accord ne constituera une renonciation à ces droits. Les termes ou conditions contenus dans un bon de commande ou un autre document de commande qui sont incompatibles avec ou en plus des termes et conditions du présent Contrat sont rejetés par le Concédant et seront considérés comme nuls et sans effet. Le présent Accord sera interprété et interprété conformément aux lois de la Suisse, sans égard aux principes de conflit de lois. Les parties consentent par les présentes à la juridiction exclusive et à la juridiction exclusive des tribunaux situés à Zurich (Suisse) pour la résolution de tout litige découlant ou relatif au présent Accord. 10. DÉFINITIONS 8220Évaluation L'utilisation8221 désigne l'utilisation du Logiciel uniquement pour l'évaluation et l'essai de nouvelles applications destinées à votre Production. 8220Production Use8221 signifie utiliser le Logiciel uniquement à des fins commerciales internes. Production L'utilisation n'inclut pas le droit de reproduire le Logiciel pour la sous-licence, la revente ou la distribution, y compris, mais sans s'y limiter, l'exploitation sur le partage ou le partage du Logiciel dans le cadre d'un accord ASP, VAR, OEM, distributeur ou revendeur. 8220Software8221 désigne le logiciel Licensor8217s et tous ses composants, documentation et exemples inclus par le Concédant. 8220Error8221 signifie soit (a) une défaillance du Produit pour se conformer aux spécifications indiquées dans la documentation, résultant dans l'incapacité d'utiliser ou de restriction dans l'utilisation du Produit, ou (b) un problème nécessitant de nouvelles procédures, des clarifications , Des informations supplémentaires et / ou des demandes d'amélioration du produit. 8220Maintenance Release8221 signifie les mises à jour et les mises à jour du produit qui sont mises à la disposition des titulaires de licences conformément aux services d'assistance standard définis à la section 5. 8220Update8221 signifie soit une modification ou un ajout de logiciel qui, lorsqu'il est fait ou ajouté au produit, corrige l'erreur ou Procédure ou routine qui, lorsqu'il est observé dans le fonctionnement normal du Produit, élimine l'effet négatif pratique de l'Erreur sur le Licencié. 8220Upgrade8221 signifie une révision du Produit libérée par le Concédant à ses clients utilisateurs finaux en général, pendant la Période des Services de Support, pour ajouter des fonctions nouvelles et différentes ou pour augmenter la capacité du Produit. Upgrade ne comprend pas la sortie d'un nouveau produit ou des fonctionnalités ajoutées pour lesquelles il peut y avoir une charge distincte. Algorithmic Trading System Architecture Auparavant sur ce blog, j'ai écrit sur l'architecture conceptuelle d'un système de négociation algorithmique intelligente ainsi que le fonctionnement et non Fonctionnelles d'un système de négociation algorithmique de production. Depuis, j'ai conçu une architecture de système qui, je crois, pourrait satisfaire ces exigences architecturales. Dans ce post, je vais décrire l'architecture en suivant les directives de la norme ISOIECIEEE 42010 systèmes et la description de l'architecture d'ingénierie logicielle. Selon cette norme, une description d'architecture doit: Contenir plusieurs vues architecturales normalisées (par exemple, UML) et Maintenir la traçabilité entre les décisions de conception et les exigences architecturales Définition de l'architecture logicielle Il n'y a toujours pas de consensus sur ce qu'est une architecture système. Dans le contexte de cet article, il est défini comme l'infrastructure dans laquelle les composants d'application qui satisfont aux exigences fonctionnelles peuvent être spécifiés, déployés et exécutés. Les exigences fonctionnelles sont les fonctions attendues du système et de ses composantes. Les exigences non fonctionnelles sont des mesures permettant de mesurer la qualité du système. Un système qui satisfait pleinement à ses exigences fonctionnelles peut toujours ne pas répondre aux attentes si les exigences non fonctionnelles ne sont pas satisfaites. Pour illustrer ce concept, considérez le scénario suivant: un système de négociation algorithmique que vous venez d'acheter construit fait d'excellentes décisions commerciales, mais il est complètement inopérant avec les systèmes de gestion des risques et de comptabilité des organisations. Ce système répondrait à vos attentes Architecture conceptuelle Une vue conceptuelle décrit les concepts et les mécanismes de haut niveau qui existent dans le système au plus haut niveau de granularité. A ce niveau, le système de négociation algorithmique suit une architecture événementielle (EDA) décomposée en quatre couches, et deux aspects architecturaux. Pour chaque couche et aspect, les architectures et les modèles de référence sont utilisés. Les modèles architecturaux sont des structures génériques prouvées pour répondre à des exigences spécifiques. Les aspects architecturaux sont des préoccupations transversales qui couvrent plusieurs composantes. Architecture événementielle - une architecture qui produit, détecte, consomme et réagit aux événements. Les événements comprennent des mouvements de marché en temps réel, des événements ou des tendances complexes et des événements commerciaux, par ex. Soumettre une commande. Ce diagramme illustre l'architecture conceptuelle du système de négociation algorithmique Architectures de référence Pour utiliser une analogie, une architecture de référence est semblable aux plans pour un mur porteur. Cette impression bleue peut être réutilisée pour plusieurs constructions indépendamment du bâtiment en construction car elle répond à un ensemble d'exigences courantes. De même, une architecture de référence définit un modèle contenant des structures et des mécanismes génériques qui peuvent être utilisés pour construire une architecture logicielle concrète satisfaisant des exigences spécifiques. L'architecture du système de négociation algorithmique utilise une architecture basée sur l'espace (SBA) et un contrôleur de vue modèle (MVC) comme références. On utilise également de bonnes pratiques telles que le stockage des données opérationnelles (ODS), le modèle de transformation et de chargement des extraits (ETL) et un entrepôt de données (DW). Modèle contrôleur de vue - un modèle qui sépare la représentation de l'information de l'interaction des utilisateurs avec elle. Architecture basée sur l'espace - spécifie une infrastructure où les unités de traitement lâchement couplées interagissent les unes avec les autres à travers une mémoire associative partagée appelée espace (illustrée ci-dessous). Vue structurelle La vue structurelle d'une architecture montre les composants et les sous-composantes du système de négociation algorithmique. Il montre également comment ces composants sont déployés sur l'infrastructure physique. Les diagrammes UML utilisés dans cette vue incluent des diagrammes de composants et des diagrammes de déploiement. Vous trouverez ci-dessous la galerie des diagrammes de déploiement du système global de négociation algorithmique et des unités de traitement dans l'architecture de référence SBA, ainsi que des diagrammes de composants associés pour chacune des couches. Tactique architecturale Selon l'institut de génie logiciel, une tactique architecturale est un moyen de satisfaire une exigence de qualité en manipulant un aspect d'un modèle d'attribut de qualité par des décisions de conception architecturale. Un exemple simple utilisé dans l'architecture de système de négociation algorithmique est la manipulation d'un magasin de données opérationnelles (ODS) avec un composant d'interrogation continue. Cette composante analyserait en continu les SAO pour identifier et extraire des événements complexes. Les tactiques suivantes sont utilisées dans l'architecture: Le modèle de disrupteur dans les files d'attente d'événement et d'ordre Mémoire partagée pour les files d'attente d'événements et d'ordre Langue de requête continue (CQL) sur le ODS Filtrage des données avec le modèle de filtre sur les données entrantes Algorithmes d'évitement de congestion sur tous Des connexions entrantes et sortantes Gestion active des files d'attente (AQM) et notification d'encombrement explicite Ressources de calcul des marchandises avec capacité de mise à niveau (évolutive) Redondance active pour tous les points d'échec individuels Indexation et structures de persistance optimisées dans les ODS ODS Historiques des transactions sur toutes les bases de données Checksums pour tous les ordres de détection des fautes Annoter les événements avec des horodatages pour ignorer les événements obsolètes Règles de validation des ordres Quantités commerciales maximales Les composants commerciaux automatisés utilisent une base de données en mémoire pour l'analyse Authentification en deux étapes pour les interfaces utilisateur se connectant aux AT Encryption sur les interfaces utilisateur et les connexions aux ATs Modèle de conception Observer pour MVC pour gérer les vues La liste ci - Décisions que j'ai identifiées lors de la conception de l'architecture. Ce n'est pas une liste complète de tactiques. Au fur et à mesure que le système est en cours d'élaboration, des tactiques additionnelles doivent être employées à plusieurs niveaux de granularité pour répondre aux exigences fonctionnelles et non fonctionnelles. Vous trouverez ci-dessous trois diagrammes décrivant le motif de conception du disrupteur, le modèle de conception du filtre et le composant d'interrogation continue. Vue comportementale Cette vue d'une architecture montre comment les composants et les couches doivent interagir les uns avec les autres. Ceci est utile lors de la création de scénarios pour tester des conceptions d'architecture et pour comprendre le système de bout en bout. Cette vue est constituée de diagrammes de séquence et de diagrammes d'activité. Les diagrammes d'activité montrant le processus interne des systèmes de négociation algorithmique et la façon dont les opérateurs sont censés interagir avec le système de négociation algorithmique sont présentés ci-dessous. Technologies et cadres La dernière étape dans la conception d'une architecture logicielle est d'identifier les technologies et les cadres qui pourraient être utilisés pour réaliser l'architecture. En règle générale, il est préférable de tirer parti des technologies existantes, à condition qu'elles répondent adéquatement aux exigences tant fonctionnelles que non fonctionnelles. Un cadre est une architecture de référence réalisée, par ex. JBoss est un framework qui réalise l'architecture de référence JEE. Les technologies et les cadres suivants sont intéressants et devraient être pris en compte lors de la mise en œuvre d'un système de négociation algorithmique: CUDA - NVidia a un certain nombre de produits qui soutiennent la modélisation des finances informatiques de haute performance. On peut atteindre jusqu'à 50x améliorations de performance lors de l'exécution de simulations Monte Carlo sur le GPU au lieu du CPU. Apache River - River est un outil-kit utilisé pour développer des systèmes distribués. Il a été utilisé comme un cadre pour la construction d'applications basées sur le modèle SBA Apache Hadoop - dans le cas où l'exploitation forestière omniprésente est une exigence, l'utilisation de Hadoop offre une solution intéressante pour le problème des grandes données. Hadoop peut être déployé dans un environnement clusterisé prenant en charge les technologies CUDA. AlgoTrader - une plateforme de trading algorithmique open source. AlgoTrader pourrait être déployé à la place des composants du trader automatisé. FIX Engine - une application autonome prenant en charge les protocoles FIX (Financial Information Exchange) incluant FIX, FAST et FIXatdl. Bien qu'il ne s'agisse pas d'une technologie ou d'un cadre, les composants doivent être construits avec une interface de programmation d'application (API) pour améliorer l'interopérabilité du système et de ses composants. Conclusion L'architecture proposée a été conçue pour satisfaire aux exigences très génériques identifiées pour les systèmes de négociation algorithmique. D'une manière générale, les systèmes de négociation algorithmique sont compliqués par trois facteurs qui varient selon chaque implémentation: Dépendances des systèmes d'entreprise et d'échange externes Détermination des exigences non fonctionnelles et Évolution des contraintes architecturales L'architecture logicielle proposée devra donc être adaptée au cas par cas Pour satisfaire aux exigences organisationnelles et réglementaires spécifiques, ainsi que pour surmonter les contraintes régionales. L'architecture du système de négociation algorithmique doit être considérée comme un simple point de référence pour les individus et les organisations qui souhaitent concevoir leurs propres systèmes de négociation algorithmique. Pour obtenir une copie complète et les sources utilisées, veuillez télécharger une copie de mon rapport. Nous vous remercions. Architecture de plancher d'affaires Architecture de l'architecture Vue d'ensemble de l'exécutif Une concurrence accrue, un volume de données de marché plus élevé et de nouvelles exigences réglementaires sont quelques-unes des forces motrices derrière les changements de l'industrie. Les entreprises essaient de maintenir leur avantage concurrentiel en changeant constamment leurs stratégies commerciales et en augmentant la vitesse de négociation. Une architecture viable doit inclure les dernières technologies à la fois du réseau et des domaines d'application. Il doit être modulaire pour fournir un chemin gérable pour évoluer chaque composant avec une interruption minimale au système global. Par conséquent, l'architecture proposée dans ce document repose sur un cadre de services. Nous examinons les services tels que la messagerie à ultra-faible latence, la surveillance de latence, la multidiffusion, l'informatique, le stockage, la virtualisation des données et des applications, la résilience commerciale, la mobilité commerciale et le client léger. La solution aux exigences complexes de la plate-forme de négociation de prochaine génération doit être construite avec une mentalité holistique, en franchissant les frontières des silos traditionnels comme les entreprises et la technologie ou les applications et le réseautage. Ce document a pour objectif principal de fournir des lignes directrices pour la construction d'une plateforme de négociation à ultra-faible latence tout en optimisant le débit brut et le taux de messages pour les données de marché et les ordres de négociation FIX. Pour ce faire, nous proposons les technologies de réduction de latence suivantes: Interconnexion haute vitesseInfiniBand ou connectivité 10 Gbps pour le cluster de négociation Bus de messagerie haute vitesse Accélération de l'application via RDMA sans re-code d'application Surveillance de latence en temps réel et re-direction de Négocier le trafic sur le chemin avec une latence minimale Tendances et défis de l'industrie Les architectures commerciales de la prochaine génération doivent répondre à une demande accrue de vitesse, de volume et d'efficacité. Par exemple, le volume des données du marché des options devrait doubler après l'introduction de la négociation des penny options en 2007. Il existe également des exigences réglementaires pour la meilleure exécution, qui exigent des mises à jour des prix de traitement à des taux qui s'approchent de 1 ms msec. Pour les échanges. Ils exigent également la visibilité de la fraîcheur des données et la preuve que le client a obtenu la meilleure exécution possible. À court terme, la rapidité des échanges et de l'innovation sont des facteurs de différenciation essentiels. Un nombre croissant de métiers sont traités par des applications de négociation algorithmique placées aussi près que possible du lieu d'exécution du commerce. Un défi avec ces moteurs de trading quotblack-boxquot est qu'ils composent l'augmentation de volume en émettant des ordres seulement pour les annuler et les soumettre à nouveau. La cause de ce comportement est le manque de visibilité sur le lieu qui offre la meilleure exécution. Le commerçant humain est maintenant un ingénieur quotfinancial, quotquantquot (analyste quantitatif) avec des compétences de programmation, qui peut ajuster les modèles de négociation à la volée. Les entreprises développent de nouveaux instruments financiers comme les dérivés météorologiques ou les métiers de classes d'actifs croisés et ils doivent déployer les nouvelles applications rapidement et de manière évolutive. À long terme, la différenciation concurrentielle devrait provenir de l'analyse, et pas seulement du savoir. Les star traders de demain assument des risques, atteignent la perspicacité du client et battent constamment le marché (source IBM: www-935.ibmservicesusimcpdfge510-6270-trader. pdf). La résilience des entreprises est l'une des principales préoccupations des entreprises commerciales depuis le 11 septembre 2001. Les solutions dans ce domaine vont de centres de données redondants situés dans des zones géographiques différentes et connectés à de multiples sites de négociation à des solutions de commerçants virtuels offrant aux commerçants de pouvoir la plupart des fonctionnalités d'un plancher commercial Dans un endroit éloigné. Le secteur des services financiers est l'un des plus exigeants en termes de besoins informatiques. L'industrie connaît une transformation architecturale vers l'architecture orientée services (SOA), les services Web et la virtualisation des ressources informatiques. SOA profite de l'augmentation de la vitesse du réseau pour permettre la liaison dynamique et la virtualisation des composants logiciels. Cela permet de créer de nouvelles applications sans perdre l'investissement dans les systèmes et infrastructures existants. Le concept a le potentiel de révolutionner la manière dont l'intégration est faite, permettant des réductions significatives de la complexité et du coût d'une telle intégration (gigaspacesdownloadMerrilLynchGigaSpacesWP. pdf). Une autre tendance est la consolidation des serveurs dans les batteries de serveurs de datacenter, tandis que les pupitres de négoce n'ont que des extensions KVM et des clients ultra-légers (par exemple, les solutions SunRay et HP). Les réseaux métropolitains à grande vitesse permettent aux données de marché d'être multidiffusées entre différents emplacements, ce qui permet la virtualisation du marché. Architecture de haut niveau La figure 1 illustre l'architecture de haut niveau d'un environnement commercial. The ticker plant and the algorithmic trading engines are located in the high performance trading cluster in the firms data center or at the exchange. The human traders are located in the end-user applications area. Functionally there are two application components in the enterprise trading environment, publishers and subscribers. The messaging bus provides the communication path between publishers and subscribers. There are two types of traffic specific to a trading environment: Market DataCarries pricing information for financial instruments, news, and other value-added information such as analytics. It is unidirectional and very latency sensitive, typically delivered over UDP multicast. It is measured in updatessec. and in Mbps. Market data flows from one or multiple external feeds, coming from market data providers like stock exchanges, data aggregators, and ECNs. Each provider has their own market data format. The data is received by feed handlers, specialized applications which normalize and clean the data and then send it to data consumers, such as pricing engines, algorithmic trading applications, or human traders. Sell-side firms also send the market data to their clients, buy-side firms such as mutual funds, hedge funds, and other asset managers. Some buy-side firms may opt to receive direct feeds from exchanges, reducing latency. Figure 1 Trading Architecture for a Buy SideSell Side Firm There is no industry standard for market data formats. Each exchange has their proprietary format. Financial content providers such as Reuters and Bloomberg aggregate different sources of market data, normalize it, and add news or analytics. Examples of consolidated feeds are RDF (Reuters Data Feed), RWF (Reuters Wire Format), and Bloomberg Professional Services Data. To deliver lower latency market data, both vendors have released real-time market data feeds which are less processed and have less analytics: Bloomberg B-PipeWith B-Pipe, Bloomberg de-couples their market data feed from their distribution platform because a Bloomberg terminal is not required for get B-Pipe. Wombat and Reuters Feed Handlers have announced support for B-Pipe. A firm may decide to receive feeds directly from an exchange to reduce latency. The gains in transmission speed can be between 150 milliseconds to 500 milliseconds. These feeds are more complex and more expensive and the firm has to build and maintain their own ticker plant (financetechfeaturedshowArticle. jhtmlarticleID60404306 ). Trading OrdersThis type of traffic carries the actual trades. It is bi-directional and very latency sensitive. It is measured in messagessec. and Mbps. The orders originate from a buy side or sell side firm and are sent to trading venues like an Exchange or ECN for execution. The most common format for order transport is FIX (Financial Information eXchangefixprotocol. org ). The applications which handle FIX messages are called FIX engines and they interface with order management systems (OMS). An optimization to FIX is called FAST (Fix Adapted for Streaming), which uses a compression schema to reduce message length and, in effect, reduce latency. FAST is targeted more to the delivery of market data and has the potential to become a standard. FAST can also be used as a compression schema for proprietary market data formats. To reduce latency, firms may opt to establish Direct Market Access (DMA). DMA is the automated process of routing a securities order directly to an execution venue, therefore avoiding the intervention by a third-party (towergroupresearchcontentglossary. jsppage1ampglossaryId383 ). DMA requires a direct connection to the execution venue. The messaging bus is middleware software from vendors such as Tibco, 29West, Reuters RMDS, or an open source platform such as AMQP. The messaging bus uses a reliable mechanism to deliver messages. The transport can be done over TCPIP (TibcoEMS, 29West, RMDS, and AMQP) or UDPmulticast (TibcoRV, 29West, and RMDS). One important concept in message distribution is the quottopic stream, quot which is a subset of market data defined by criteria such as ticker symbol, industry, or a certain basket of financial instruments. Subscribers join topic groups mapped to one or multiple sub-topics in order to receive only the relevant information. In the past, all traders received all market data. At the current volumes of traffic, this would be sub-optimal. The network plays a critical role in the trading environment. Market data is carried to the trading floor where the human traders are located via a Campus or Metro Area high-speed network. High availability and low latency, as well as high throughput, are the most important metrics. The high performance trading environment has most of its components in the Data Center server farm. To minimize latency, the algorithmic trading engines need to be located in the proximity of the feed handlers, FIX engines, and order management systems. An alternate deployment model has the algorithmic trading systems located at an exchange or a service provider with fast connectivity to multiple exchanges. Deployment Models There are two deployment models for a high performance trading platform. Firms may chose to have a mix of the two: Data Center of the trading firm (Figure 2 )This is the traditional model, where a full-fledged trading platform is developed and maintained by the firm with communication links to all the trading venues. Latency varies with the speed of the links and the number of hops between the firm and the venues. Figure 2 Traditional Deployment Model Co-location at the trading venue (exchanges, financial service providers (FSP)) (Figure 3 ) The trading firm deploys its automated trading platform as close as possible to the execution venues to minimize latency. Figure 3 Hosted Deployment Model Services-Oriented Trading Architecture We are proposing a services-oriented framework for building the next-generation trading architecture. This approach provides a conceptual framework and an implementation path based on modularization and minimization of inter-dependencies. This framework provides firms with a methodology to: Evaluate their current state in terms of services Prioritize services based on their value to the business Evolve the trading platform to the desired state using a modular approach The high performance trading architecture relies on the following services, as defined by the services architecture framework represented in Figure 4. Figure 4 Service Architecture Framework for High Performance Trading Ultra-Low Latency Messaging Service This service is provided by the messaging bus, which is a software system that solves the problem of connecting many-to-many applications. The system consists of: A set of pre-defined message schemas A set of common command messages A shared application infrastructure for sending the messages to recipients. The shared infrastructure can be based on a message broker or on a publishsubscribe model. The key requirements for the next-generation messaging bus are (source 29West): Lowest possible latency (e. g. less than 100 microseconds) Stability under heavy load (e. g. more than 1.4 million msgsec.) Control and flexibility (rate control and configurable transports) There are efforts in the industry to standardize the messaging bus. Advanced Message Queueing Protocol (AMQP) is an example of an open standard championed by J. P. Morgan Chase and supported by a group of vendors such as Cisco, Envoy Technologies, Red Hat, TWIST Process Innovations, Iona, 29West, and iMatix. Two of the main goals are to provide a more simple path to inter-operability for applications written on different platforms and modularity so that the middleware can be easily evolved. In very general terms, an AMQP server is analogous to an E-mail server with each exchange acting as a message transfer agent and each message queue as a mailbox. The bindings define the routing tables in each transfer agent. Publishers send messages to individual transfer agents, which then route the messages into mailboxes. Consumers take messages from mailboxes, which creates a powerful and flexible model that is simple (source: amqp. orgtikiwikitiki-index. phppageOpenApproachWhyAMQP ). Latency Monitoring Service The main requirements for this service are: Sub-millisecond granularity of measurements Near-real time visibility without adding latency to the trading traffic Ability to differentiate application processing latency from network transit latency Ability to handle high message rates Provide a programmatic interface for trading applications to receive latency data, thus enabling algorithmic trading engines to adapt to changing conditions Correlate network events with application events for troubleshooting purposes Latency can be defined as the time interval between when a trade order is sent and when the same order is acknowledged and acted upon by the receiving party. Addressing the latency issue is a complex problem, requiring a holistic approach that identifies all sources of latency and applies different technologies at different layers of the system. Figure 5 depicts the variety of components that can introduce latency at each layer of the OSI stack. It also maps each source of latency with a possible solution and a monitoring solution. This layered approach can give firms a more structured way of attacking the latency issue, whereby each component can be thought of as a service and treated consistently across the firm. Maintaining an accurate measure of the dynamic state of this time interval across alternative routes and destinations can be of great assistance in tactical trading decisions. The ability to identify the exact location of delays, whether in the customers edge network, the central processing hub, or the transaction application level, significantly determines the ability of service providers to meet their trading service-level agreements (SLAs). For buy-side and sell-side forms, as well as for market-data syndicators, the quick identification and removal of bottlenecks translates directly into enhanced trade opportunities and revenue. Figure 5 Latency Management Architecture Cisco Low-Latency Monitoring Tools Traditional network monitoring tools operate with minutes or seconds granularity. Next-generation trading platforms, especially those supporting algorithmic trading, require latencies less than 5 ms and extremely low levels of packet loss. On a Gigabit LAN, a 100 ms microburst can cause 10,000 transactions to be lost or excessively delayed. Cisco offers its customers a choice of tools to measure latency in a trading environment: Bandwidth Quality Manager (BQM) (OEM from Corvil) Cisco AON-based Financial Services Latency Monitoring Solution (FSMS) Bandwidth Quality Manager Bandwidth Quality Manager (BQM) 4.0 is a next-generation network application performance management product that enables customers to monitor and provision their network for controlled levels of latency and loss performance. While BQM is not exclusively targeted at trading networks, its microsecond visibility combined with intelligent bandwidth provisioning features make it ideal for these demanding environments. Cisco BQM 4.0 implements a broad set of patented and patent-pending traffic measurement and network analysis technologies that give the user unprecedented visibility and understanding of how to optimize the network for maximum application performance. Cisco BQM is now supported on the product family of Cisco Application Deployment Engine (ADE). The Cisco ADE product family is the platform of choice for Cisco network management applications. BQM Benefits Cisco BQM micro-visibility is the ability to detect, measure, and analyze latency, jitter, and loss inducing traffic events down to microsecond levels of granularity with per packet resolution. This enables Cisco BQM to detect and determine the impact of traffic events on network latency, jitter, and loss. Critical for trading environments is that BQM can support latency, loss, and jitter measurements one-way for both TCP and UDP (multicast) traffic. This means it reports seamlessly for both trading traffic and market data feeds. BQM allows the user to specify a comprehensive set of thresholds (against microburst activity, latency, loss, jitter, utilization, etc.) on all interfaces. BQM then operates a background rolling packet capture. Whenever a threshold violation or other potential performance degradation event occurs, it triggers Cisco BQM to store the packet capture to disk for later analysis. This allows the user to examine in full detail both the application traffic that was affected by performance degradation (quotthe victimsquot) and the traffic that caused the performance degradation (quotthe culpritsquot). This can significantly reduce the time spent diagnosing and resolving network performance issues. BQM is also able to provide detailed bandwidth and quality of service (QoS) policy provisioning recommendations, which the user can directly apply to achieve desired network performance. BQM Measurements Illustrated To understand the difference between some of the more conventional measurement techniques and the visibility provided by BQM, we can look at some comparison graphs. In the first set of graphs (Figure 6 and Figure 7 ), we see the difference between the latency measured by BQMs Passive Network Quality Monitor (PNQM) and the latency measured by injecting ping packets every 1 second into the traffic stream. In Figure 6. we see the latency reported by 1-second ICMP ping packets for real network traffic (it is divided by 2 to give an estimate for the one-way delay). It shows the delay comfortably below about 5ms for almost all of the time. Figure 6 Latency Reported by 1-Second ICMP Ping Packets for Real Network Traffic In Figure 7. we see the latency reported by PNQM for the same traffic at the same time. Here we see that by measuring the one-way latency of the actual application packets, we get a radically different picture. Here the latency is seen to be hovering around 20 ms, with occasional bursts far higher. The explanation is that because ping is sending packets only every second, it is completely missing most of the application traffic latency. In fact, ping results typically only indicate round trip propagation delay rather than realistic application latency across the network. 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