25
Stage effectué Du 01/09/10 au 31/12/10 A NYSE Euronext 39 Rue Cambon 75001 PARIS. Maitre de Stage: Stéphane Bredon Software Engineer. NYSE Euronext : TECHNOLOGIES Rapport de Stage de Première année Programmes de Test de Performance du Moteur de Cotation De La Bourse Noëlie SYLVAIN (login : sylvai_n) Promo 2014 Etudiante à EPITECH 24 rue Pasteur 94270 Le Kremlin Bicêtre

Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

Stage effectué

Du 01/09/10 au 31/12/10

A NYSE Euronext

39 Rue Cambon 75001 PARIS.

Maitre de Stage: Stéphane Bredon Software Engineer.

NYSE Euronext : TECHNOLOGIES

Rapport de Stage de Première année Programmes de Test de Performance du Moteur de Cotation De La Bourse

Noëlie SYLVAIN (login : sylvai_n) Promo 2014

Etudiante à EPITECH 24 rue Pasteur 94270 Le Kremlin Bicêtre

Page 2: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

2 Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

Page 3: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

3 Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

REMERCIEMENTS

J’adresse mes remerciements à Gilles Herfeld pour m’avoir permis d’effectuer mon stage au

sein du service Technologies de NYSE Euronext.

Je remercie l’équipe de NYSE Technologies pour leur accueil chaleureux et pour l’intérêt qu’ils

m’ont porté tout au long de mon stage.

Je tiens à remercier en particulier mon maître de Stage M. Stéphane Bredon pour sa

confiance et son aide qui ont rendu ce stage intéressant. Je le remercie également pour sa patience,

l’amabilité et le soutien technique qu’il m’a apporté.

Page 4: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

4 Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

SOMMAIRE

REMERCIEMENT .................................................................................................................. 3

SOMMAIRE ............................................................................................................................. 4

INTRODUCTION .................................................................................................................... 5

1. PRESENTATION DE L’ENTREPRISE ........................................................................... 6

1.1. NYSE EURONEXT ............................................................................... 6 1.1.1 PRESENTATION GENERALE ........................................................... 6 1.1.2 L’HISTORIQUE ............................................................................. 7 1.1.3 LA GESTION DE NOMBREUX MARCHES .......................................... 8 1.1.4 DE NOMBREUSES ACTIVITES ...................................................... 10 1.2. NYSE EURONEXT : TECHNOLOGIES .................................................. 10 1.2.1 PRESENTATION GENERALE ......................................................... 10 1.2.2 LE PROJET ................................................................................. 12 1.2.3 L’ORGANIGRAMME ..................................................................... 12

2. TRAVAIL EFFECTUE ..................................................................................................... 13

2.1. PRESENTATION DU PROJET : UTP ..................................................... 13 2.2. LES PROGRAMMES DE TRANSMISSION DE MESSAGES ........................ 15 2.3. REALISATION DE PROXYROUTER ET TEST DE LATENCE ...................... 16 2.4. ETUDE ET STATISTIQUE DE PLUSIEURS MEMBRES ............................. 19 2.5. TRANSMISSION : DU TCP A L’UDP ..................................................... 20 2.3.1 PRESENTATION D’UX_DIRECT ET MARKETDATAPUB ..................... 20 2.5.2 PREPARATION ET CONCEPTION ................................................... 21 2.5.3 MECANISME DE RECUPERATION : NACK ....................................... 22

CONCLUSION ....................................................................................................................... 23

GLOSSAIRE ........................................................................................................................... 24

TABLE DES ILLUSTRATIONS .......................................................................................... 25

Page 5: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

5 Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

INTRODUCTION

Afin de valider la première année à Epitech, chaque étudiant doit effectuer un stage de 4 à 6

mois en entreprise. Ayant fait un baccalauréat en économie et étant intéressée par la finance, j’ai

cherché un stage qui regroupait informatique et finance. J’ai eu la chance d’effectuer, du 01

septembre 2010 au 31 décembre 2010, un stage au sein de la société NYSE Euronext, le premier

groupe mondial de places boursières, dans le service Technologies au 39 Rue Cambon à Paris.

Mes débuts dans le service technologies de NYSE ont été effectués sous l’encadrement de

Gilles Herfeld et son équipe, plus particulièrement Stéphane Bredon, mon maître de Stage. La bonne

ambiance qui régnait dans le groupe Technologies m’a apporté la motivation indispensable à

l’aboutissement des différentes tâches qui m’ont été affectées.

Le sujet principal de ce stage était la programmation de divers outils de contrôle de

performance et de test pour leur nouveau moteur de cotation de produits dérivés UTP.

UTP, acronyme signifiant Universal Trading Plateform, est une plateforme d’échange

d’instruments financiers qui sera mise en production fin avril 2011. Le moteur de cotation UTP est

programmé en C, langage acquis en première année d’Epitech, et C++, langage qu’on apprend en

deuxième année.

Ce stage fut une expérience importante du point de vue de ma scolarité mais aussi du point

de vue personnel. Au cours de ce stage de 4 mois j’ai appris à travailler en entreprise et mettre au

profit les connaissances que j’ai acquises durant cette première année à Epitech.

En plus de l’enrichissement de mes connaissances en programmation et conception de code,

ce stage m’a permis, par des cours de formations, d’acquérir de nouvelles connaissances sur le monde

de la finance.

Page 6: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

6 Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

1. PRESENTATION DE L’ENTREPRISE

1. NYSE EURONEXT

PRESENTATION GENERALE

NYSE Euronext est le premier groupe mondial de places boursières né de la fusion entre

NYSE (NEW YORK STOCK EXCHANGE) et le groupe Euronext en 2007. Ce dernier a lui-même

été créé par la fusion de la Bourse de Paris, la Bourse d’Amsterdam et de Bruxelles en

2005. NYSE Euronext est le fournisseur mondial de service de cotation, de négociation et

d’échange, mais aussi de vente de données de marché de logiciels, et de services technologique.

Figure 1: NYSE New York Stock Exchange, « Wall Street ».

Page 7: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

7 Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

HISTORIQUE :

2000: Fusion des bourses d’Amsterdam, de Bruxelles et de Paris.

Création d’Euronext le 22 septembre 2000

2002 : Achat de LIFFE: London International Financial Futures and Options

Exchange Fusion avec la bourse Portugaise BVLP

2006 : Annonce de la fusion : création de la plus importante plate-forme boursière

au monde qui se nommera NYSE Euronext.

2007: Emissions des premières actions du nouvel ensemble NYSE Euronext, née de

la fusion entre Euronext et la Bourse de New York.

Page 8: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

8 Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

LA GESTIONS DE NOMBREUX MARCHÉS

Figure 2 : NYSE Trading Floor.

NYSE Euronext gère au travers de ses filiales de

nombreuses bourses : Des marchés de produits Cash

(actions, obligations), et des marchés de produits Dérivés

(fowards, futures, warrants, options).

Figure 3 : DUNCAN, Directeur de NYSE.

Page 9: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

9 Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

Aux Etats-Unis, NYSE régente :

le New York Stock Exchange (on l’appelle souvent « Wall Street »), le plus grand marché

d’actions à l’échelle mondiale ;

NYSE Arca, un marché d’option, le deuxième plus grand réseau de transmission électronique en

terme de parts commercés ;

NYSE Alter US ;

NYSE Liffe US, un marché de produits dérivés.

En Europe, NYSE administre par le biais de la société-mère Euronext :

La bourse de Paris ;

La bourse d’Amsterdam ;

La Bourse de Bruxelles ;

La Bourse de Lisbonne, « Le Mercado Sem Cotacoes » ;

NYSE Alternext, crée en 2005, c’est un marché aux règles assouplies, pour les petites et

moyennes entreprises internationales désirant bénéficier d’un accès simplifié au marché.

Figure 4 : La Bourse de Paris : Étant donné que tout est informatisé, plus aucune transaction ne se fait au

Palais Brongniart.

Page 10: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

10

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

DE NOMBREUSES ACTIVITÉES

Mais NYSE Euronext n’est pas seulement un marché ou un ensemble de marchés. C’est

aussi une entreprise qui, via ses filiales, organise et assure l’accès au marché et son bon

fonctionnement.

NYSE Euronext :

Etablit des règles du marché qui sont communes à chaque pays concernés.

Gère les systèmes informatiques de cotation

Assure la publicité des négociations et la diffusion des cours du marché

Enregistre les négociations entres les membres

Décide de l’adhésion de ses membres

2. NYSE EURONEXT : TECHNOLOGIES

PRESENTATION GLOBALE

La branche Technologies de NYSE Euronext s’occupe de la programmation et la maintenance

de la plateforme d’échange et de la commercialisation de divers outils permettant l’accès aux marchés

à travers le monde.

NYSE Technologies met à disposition pour ses membres un réseau sécurisé SFTI (Secure

Financial Transaction Infrastructure) pour se connecter aux moteurs de cotation de différents

marchés auquel ils pourront acheter et vendre des produits financiers.

Page 11: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

11

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

Figure 5 : Le Lieu du stage, NYSE EURONEXT 39 Rue Cambon.

Un ensemble de programmes nommés XDP pour Exchange Data Publisher ont été mis en

place pour la vente d’information économique, et la diffusion des cours du marché en temps

réel. Ces informations sont vendues à des data vendor (ex : Bloomberg).

Figure 6 : Bloomberg Terminal, un système informatique qui permet aux professionnels

financiers d’accéder aux données financières vendues par NYSE via XDP.

Page 12: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

12

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

LE PROJET

NYSE Euronext suit les dernières évolutions technologiques pour rivaliser de manière efficace

dans un secteur compétitif et évoluant rapidement. Ces dernières années, le traitement

électronique des négociations s’est développé de manière significative. Afin de rester compétitif, NYSE

Euronext continue d’améliorer la réactivité, la fonctionnalité, l’accès et les caractéristiques de ses

plates-formes, logiciels, systèmes et technologies dédiés à la négociation.

Afin d’améliorer ses services et satisfaire les attentes des clients, NYSE Technologies est en

train de créer un nouveau moteur de cotation pour les produits dérivés : UTP.

L’ORGANIGRAMME

Figure 7 : Organigramme de NYSE Paris.

Page 13: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

13

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

2. TRAVAIL EFFECTUE

UTP, acronyme pour Uniform Trading Platform, est une plateforme de cotation de produit

dérivé, basé sur la plateforme de produit cash déjà existante. Cette nouvelle plateforme d’échange

sera mise en production en avril 2011. Mes principales tâches dans le service Technologies de NYSE,

étaient la réalisation d’un programme de génération de tests, et l’élaboration de divers programmes

de test de performance et de statistique.

1. PRESENTATION DU PROJET : UTP

Il existe déjà des plates-formes de cotation de produit cash très avancées technologiquement.

Mais la plateforme qui gère les produits dérivés (Liffe Connect, Une plateforme anglaise) est dépassée

technologiquement, et ne correspond plus aux besoins qui ont changés et aux règles des produits

dérivés. Ces derniers doivent être traités différemment des produits Cash.

UTP gère les instruments financiers dérivés (Futures, Options, Swap, Foward). Contrairement

aux produits Cash (Action, Obligations), les produits dérivés on une valeur qui fluctue en fonction de

l’évolution du taux ou du prix d’un produit. De plus, le règlement s’effectue à une date future. Ces

particularités font des dérivés un instrument à part, qui devra être géré par un moteur de cotation

différent des produits cash.

Page 14: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

14

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

Figure 8 : Organisation de l’UTP et du CCG

Voici un schéma simplifié de l’organisation de l’UTP. Lorsqu’un membre se connecte pour

envoyer des ordres d’achat ou de vente, il est redirigé dans le réseau sécurisé SFTI qui le connecte à

l’un des CCG (Common Customer Gateway). La Gateway traite les messages dans un programme

nommé ux_direct, et transmet les messages à UTP via un programme router « ux_router ».

Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent.

File2Utp est un programme de test qui permet de remplacer le CCG : il prend en paramètre un

fichier généré et transmet au Moteur des messages d’ordre de vente et d’achat à un débit choisi par le

testeur. Ainsi, avec un seul programme on peut simuler le cas de plusieurs centaines de membres

connectés à l’UTP, envoyant des centaines d’ordres à la seconde.

Qté Prix Qté Prix

5 120.0 8 123.2

7 120.5 100 123.6

20 121.0 60 125.5

Figure 9 : Représentation d’un carnet d’ordre.

ACHAT VENTE

Page 15: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

15

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

Dans le cas du carnet d’ordre représenté figure 9. Prenons cet exemple : J’envoie un ordre

d’achat de 9 unités de ce produit, au prix de 120.9. Lorsqu’ux_trade reçoit cet ordre, il vérifie si des

ordres de vente coïncident. Dans ce cas précis, mon offre d’achat concorde avec des offres. Apres le

trade (l’échange), le carnet d’ordre est modifié :

Qté Prix Qté Prix

NULL NULL 8 123.2

3 120.0 100 123.6

20 121.0 60 125.5

Figure 9 bis : Représentation d’un carnet d’ordre.

2. IMMERSION DANS LES PROGRAMMES DE TRANSMISSION DE

MESSAGES

On m’a tout d’abord donné le code source de plusieurs programmes en cours de création :

file2utp et ux_router. On m’a demandé de mettre à jours les structures et headers des messages

pour que File2Utp, un simulateur CCG pour produit cash, puisse être utilisé pour tester UTP, un

moteur de produits dérivés.

File2Utp est un programme en C++, il prend en paramètre un fichier généré par un

programme tiers. Ensuite, il simule la connexion de X membres envoyant un certain nombre de

messages à un débit précis pour tester les performances à diverses vitesses, et en utilisant un nombre

différent de CCGs.

Ce fut une opportunité pour moi de voir leur organisation de code et avoir une première

approche avec les sockets et multithread, des notions que l’on n’apprend pas en première année à

Epitech. J’ai aussi été amenée à ajouter un timestamp pour les calculs de latence entre ux_router

et ux_trade.

Pour pouvoir utiliser File2Utp pour les tests de performance, j’ai eu accès à une machine

sur laquelle étaient installés tous les composants en cours de production. J’ai appris l’utilitée de

chaque composant essentiel au moteur de cotation UTP, et leur utilisation.

ACHAT VENTE

Page 16: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

16

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

Figure 10 : Une fois File2Utp et Ux_router compatible j’ai travaillé sur la génération du fichier

pour File2utp.

3. REALISATION DE PROXYROUTER ET TEST DE LATENCE

Une fois File2Utp compatible avec ux_router, on m’a présenté un programme en Java

RouterTest qui prend en paramètre un fichier de configuration d’ordres d’achat et de vente, et les

envoie à ux_router. Le problème était que RouterTest ne permettait pas de simuler un CCG

comme file2utp le faisait. En effet, on ne peut pas préciser à RouterTest le débit auquel on veut

envoyer les messages.

RouterTest avait pour but premier, non pas les tests de latence et de débit, mais les tests

de cas d’envois d’ordres particuliers. De plus, avant de renvoyer un paquet de messages,

RouterTest attend une réponse d’ux_router. Ce qui ne sera pas le cas lorsqu’UTP sera mis en

production.

On m’a donc confié la tâche de créer un programme ProxyRouter pour générer des

fichiers de test pour File2utp grâce à RouterTest. N’ayant encore jamais utilisé les sockets

auparavant, j’ai beaucoup appris en créant ProxyRouter.

Page 17: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

17

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

Ayant soif de connaissance, j’ai commencé à coder en C++, créant une classe alors que je ne

connaissais rien aux règles d’encapsulations des attributs. Ce fut une erreur qui m’a conduit à

recommencer le programme en C, langage que je maîtrise.

Mes connaissances en C et ma facilité d’apprentissage en autodidacte m’a permis de finaliser

ProxyRouter aisément.

Figure 11 : Liens de Connections de ProxyRouter avec les composants de UTP.

1. RouterTest prend en paramètre un fichier de configuration.

2. RouterTest se connecte à ProxyRouter et ProxyRouter se connecte à

Ux_Router. Puis, RouterTest envoie un paquet de messages.

3. ProxyRouter modifie les messages pour les rendre compatible File2utp et

génère un fichier qui sera utilisé pour file2utp.

4. ProxyRouter envoie les messages compatibles avec ux_router.

5. Envois de données à ProxyRouter.

6. ProxyRouter attend le paquet de messages suivant de RouterTest.

Page 18: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

18

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

A la fin, le fichier généré peut être utilisé avec file2utp pour injecter à des débits choisis par

le testeur, et ainsi simuler des cas de la vie courante.

Créer ce programme de A à Z a été une chance pour apprendre à utiliser les sockets (côté

client tout comme côté serveur), et d’utiliser mes connaissances acquises en première année à

Epitech. Une fois ProxyRouter fini, j’ai dû générer de nombreux fichiers de test pour file2utp, et

procéder à de nombreux tests de performance.

On m’a demandé de lancer 1 à 10 file2utp à la fois, chacun avec un débit de 500 à 10000

messages par secondes. Ceci ayant pour but de voir les différences de performance entre

plusieurs cas. Par exemple :

Cas 1: il y a 5 CCGs avec un débit de 500 messages par seconde par CCG.

Cas 2: il y a 1 CCG possédant un débit de 25000 messages par seconde.

Ainsi, les développeurs pouvaient avoir une idée d’organisation des messages entre les

différents CCGs.

J’ai noté dans un tableur Excel les résultats en termes de latence. Plus tard, vers la fin de mon

stage, j’ai refait ces tests avec le flux en production (Le flux de messages du Moteur Liffe Connect

était redirigé sur la plateforme de test).

Ces tests avaient pour but l’étude des ressources utilisées dans une journée, de voir à partir

de combien de messages le moteur de test saturait, et ainsi prévoir le nombre de machines

nécessaires pour la mise en production de la plate-forme UTP.

Page 19: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

19

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

4. ETUDES ET STATISTIQUES DE PLUSIEURS MEMBRES

Les Membres (Clients) possèdent un certain nombre de sessions qui leur permettent un

certain débit d’ordres par seconde. Il m’a été demandé de créer un programme de statistique sur

plusieurs membres (Barclays, Citadel, Getco, IMC, Madison, Millenium, Morgan Stanley et Sungard).

J’ai eu accès à l’ensemble du flux de messages envoyés au 12 CCGs du 1er au 3 novembre. Le

but du programme de test était de rassembler de nombreuses statistiques telles que:

Le débit (nombre de messages par seconde), par sessions, par membres et par CCG.

Une liste des plus hauts débits de chaque session, et à quelle heure ils ont eu lieu.

Le nombre de messages envoyés par seconde est impressionnant. Ces statistiques ont été utilisées

par le service commercial, pour proposer aux membres dont le débit de message était proche de

leur limite autorisée, d’acheter des sessions supplémentaires.

Le programme de statistique SessionStats que j’ai programmé en C, calcule les statistiques en

prenant en paramètre les données du flux de la journée sur un CCG, parse (découpe et analyse) les

messages, et produit les calculs que le maître de stage avait précisé. Ensuite, il enregistre les résultats

dans un fichier compatible Excel. Ce Programme a été réutilisé plus tard lors de mon stage pour

l’étude d’autres Membres.

Page 20: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

20

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

5. TRANSMISSION : DU TCP A L’UDP

PRESENTATION D’UX_DIRECT ET MARKET DATAPUB

Figure 12 : Interaction entre le CCG et MarketDataPub.

Ux_direct, le programme principal de CCG est connecté à UTP par ux_router, et à un

autre composant d’UTP : ux_MarketDataPub. Ce dernier lui-même connecté à XDP, le

programme de diffusions des données du marché.

La diffusion des messages de MarketDatapub vers les différents CCG (et donc les

différents ux_direct) se faisait par TCP.

LES MODIFICATIONS A EFFECTUER

Page 21: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

21

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

Il a été décidé que la transmission se ferait dorénavant en utilisant le protocole UDP en

multicast. UDP, User Datagram Protocol, est un protocole de communication qui marche en mode

non-connecté, ayant de nombreux avantages comme la rapidité, face au protocole TCP.

L’inconvénient réside dans le fait qu’il n’assure pas l’ordre des messages à la réception, et ne

procède à aucune vérification de doublons de messages, de perte, ou du bon ordre des messages.

PREPARATION ET CONCEPTION

Ux_router comportait une classe abstraite en C++ qui assurait la réception des messages.

Il existait une classe qui héritait de cette dernière et qui garantissait la réception des messages grâce

à l’utilisation du protocole TCP. On m’a confié la tâche de créer une classe (héritage de la classe

abstraite) et coder les méthodes virtuelles de lecture en utilisant le protocole UDP.

J’ai donc étudié le langage C++ et par la suite j’ai commencé à coder les méthodes de

réceptions de messages.

Le Protocole UDP est certes plus rapide que le Protocole TCP mais il ne garantit par l’ordre

exact des messages. Il peut y avoir des pertes et il faut donc avoir recours à une démarche pour

éviter des incidents.

Figure 13 : A gauche, le système de transmission par protocole TCP.

A droite, Le système à mettre en place (UDP Multicast)

Avec une connexion TCP pour les pertes.

Page 22: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

22

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

MECANISME DE RECUPERATION DES DONNEES MANQUANTES : NACK

Il m’a donc été demandé de faire un mécanisme de substitution des données manquantes en

ajoutant une connexion TCP (Connexion appelée NACK) en plus de l’UDP et de faire une vérification

des séquences des paquets de messages.

Lors de la réception d’un paquet, le programme devait vérifier que le paquet suivant avait le

bon numéro de séquence. Si ce n’était pas le cas il devait envoyer un NACK Message (TCP) précisant

la séquence du paquet de messages qu’Ux_Direct n’aurait pas reçu. En parallèle, Ux _direct reçoit des

messages par UDP qu’il faut donc buffériser jusqu'à la fin de l’émission des messages par TCP. Grâce

à ce système, le suivi des messages est assuré.

Figure 14 : Ux_Direct reçoit les paquets d’ux_marketdatapub par UDP. S’il y a une perte il envoie par

TCP une requête pour qu’ux_marketdatapub lui envoie par TCP le message manquant.

Page 23: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

23

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

CONCLUSION

L’objectif principal de ce stage était la découverte du monde de l’entreprise et dans cette

optique, ce stage a parfaitement répondu à mes attentes. Il convient de souligner un point important

qui m’a permis une adaptation rapide : c’est la confiance que l’on m’a accordé dans le groupe NYSE

Technologies lors de mon arrivée, qui m’a permis d’y trouver facilement ma place.

Tout au long de mon stage j’ai travaillé en autonomie, ce qui s’est avéré être simple grâce à

l’habitude de la pédagogie d’Epitech qui prône l’indépendance. Il m’a fallu apprendre à gérer mon

temps, et j’ai eu l’occasion de réutiliser une partie des enseignements reçus à Epitech.

Ce stage de fin de première année m’a permis de travailler sur un projet intéressant et

concret : un moteur de cotation pour produits dérivés. Ce projet m’a donné la possibilité d’améliorer

mes connaissances en C, de faire de la programmation orientée objet (C++), d’apprendre à utiliser le

protocole TCP et UDP et la gestion du multithread et des mutex.

Pendant le déroulement de mon stage à NYSE Technologies, j’ai eu l’opportunité de travailler

sur différents programmes et de contribuer à certaines modifications de programmes importants qui

seront utilisés dans le monde entier. Je pense avoir participé de manières efficace et constructive au

projet en faisant preuve de professionnalisme et en m’appuyant sur les acquis de ma scolarité. Je

pense que mon travail les a satisfaits puisque qu’ils m’ont proposé de revenir à NYSE Technologies

pour mon stage de 3ème année.

Le travail réalisé s’est avéré très enrichissant pour mon expérience professionnelle aussi bien

en ce qui concerne le domaine technique que l’aspect humain. L’ambiance dans le service était très

agréable et j’en garde de très bons souvenirs. J’ai été très touchée par le pot organisé le jour de mon

départ.

Page 24: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

24

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

GLOSSAIRE

Abréviations Descriptions

LIFFE London International Financial Futures and Options Exchange

NYSE New York Stock Exchange

SFTI Secure Financial Transaction Infrastructure

TCP Transmission Control Protocol

UDP User Datagram Protocol

UTP Universal Trading Platform

XDP Exchange Data Publisher

Page 25: Rapport de Stage de Première année - DoYouBuzz · 2013-04-11 · Ux_trade forme des carnets d’ordre et fait des échanges lorsque des ordres concordent. File2Utp est un programme

25

Rapport de Stage Création de Programmes de test de performance d’un moteur de cotation Noëlie SYLVAIN

TABLE DES ILLUSTRATIONS

Figure 01: NYSE New York Stock Exchange, « Wall Street ».

Figure 02: NYSE Trading Floor.

Figure 03 : DUNCAN, Directeur de NYSE.

Figure 04 : La Bourse de Paris.

Figure 05 : Le Lieu du stage.

Figure 06 : Bloomberg Terminal.

Figure 07 : Organigramme de NYSE Paris.

Figure 08 : Organisation de l’UTP et du CCG.

Figure 09 : Représentation d’un carnet d’ordre.

Figure 10 : File2Utp et Ux_Router.

Figure 11 : Liens de Connections de ProxyRouter avec les composants de UTP.

Figure 12 : Interaction entre le CCG et MarketDataPub.

Figure 13 : Système de transmissions UTP et TCP.

Figure 14 : Ux_marketdatapub et ses clients.