Calypso !

Calypso… non nous n’allons pas aujourd’hui, nous atteler à l’étude du navire océanographique du commandant Cousteau, n’en déplaise aux aventuriers, mais plutôt aller à la découverte du progiciel financier. Cette solution développée par l’entreprise californienne de même nom, affichant un chiffre d’affaire de plus de 200 millions de dollars en 2011, propose à ses clients, une plate-forme multi produits front to back.

Essayons de comprendre un peu plus comment fonctionne la bête…

1. Le fonctionnel

Une des forces de la solution Calypso est d’offrir à ses clients un système complet de trading, de risk-management et de gestion comptable pour tous types de produits : Foreign Exchange, Money Market, Fixed Income, Interest Rate Derivatives, FX Derivatives, Credit Derivatives, Equities and Equity Derivatives, Commodities and Commodity Derivatives. L’implémentation qui en est faite chez les clients est donc spécifique à leur besoin, leur stratégie. En effet, certains déploieront le progiciel en full front-to-back sur différents produits tradés, alors que d’autres se recentreront sur la partie Back Office pour un type de produit bien précis.

Côté Front, voici les principales fonctionnalités couvertes : valorisation, pricing, monitoring du risque, contrôle de liquidité, gestion de collatéral, etc.

Côté Back, nous avons : le règlement/livraison, gestion de position, calcul de P&L, évènements comptables, reporting réglementaire, etc.

2. L’architecture

La principale force de ce « produit logiciel » est son architecture robuste, évolutive et orientée business. Elle se base sur la compréhension des exigences des acteurs des marchés financiers que sont :

–          L’utilisation de technologies standardisées.

–          La contrainte « time-to-market ».

–          Offrir un système extrêmement performant et sécurisé.

–          Capacité de configuration et d’extension.

Face à ces exigences, Calypso dispose des éléments suivants:

–          Technologie 100% Java, temps réel, multi-threadée.

–          Framework extensible.

–          Système fortement configurable.

–          Gestion de caches mémoires.

–          Grid computing capable d’absorber de fortes charges d’activités.

–          Monitoring du système.

Calypso est un système multi-modules  travaillant indépendamment les uns des autres d’un point de vue physique puisqu’ils s’exécutent chacun dans leur propre machine virtuelle java. La colonne vertébrale se compose des 2 modules suivants :

–          Le DataServer : point d’entrée unique vers la base de données, il est au cœur du système.

–          L’EventServer: il assure la diffusion des évènements entre tous les modules. Les principes de souscriptions et de publications permettent le partage des informations entre les différentes JVM.

Les termes de modules ou clients que nous évoquons correspondent en fait:

–          Soit à des moteurs responsables d’une activité bien définie au sein du progiciel, on parle alors d’Engine. Exemple d’engines: TradeSaverEngine, LiquidationEngine, SwiftSenderEngine, InventoryEngine, etc.

–          Soit tout autre module offrant un accès aux données calypso: le GUI (appelée MainEntry), une application java stand-alone, des services proposés à des applications tiers, etc.

La forte valeur ajoutée de cette architecture est la distribution des actions et des traitements du progiciel vers des modules indépendants configurables et optimisables de manière spécifique. Ainsi, les modules sont fortement découplés ce qui diminue le risque d’inter-blocages.

3. La Technique

De ce côté-ci, les technologies Java utilisées sont plutôt basiques mais éprouvées et efficaces dont voici quelques-unes utilisées:

JDBC: rien d’étonnant ici, l’API Java DataBase Connectivity est utilisée pour discuter avec le SGBD (Oracle ou Sybase). Calypso dispose de ses propres classes customisées comme les Connection, PreparedStatement, ResultSet.

RMI (Remote Method Invocation): API permettant la communication entre objets présents sur des JVM distinctes. A partir de la version 12, la communication est sécurisée en SSL.

Cache: la notion de cache est présente dans Calypso, notamment au niveau du DataServer. Il existe différents types de caches mémoire et différentes stratégies possibles pour stocker certaines données comme les taux de changes, le référentiel d’entités légales, des trades, des transfers, etc.

API Calypso ouverte : les packages java fournit par Calypso offre la possibilité aux développeurs d’étendre et/ou configurer à souhait le système en surchargeant certaines méthodes, en étendant certaines classes, etc.

Java Web Start : le moyen utilisé pour déployer Calypso au sein d’une entreprise est la technologie Java Web Start, basée sur un fichier jnlp accessible sur un serveur d’application web via une URL et décrivant l’ensemble des archives java nécessaire à son exécution. Une fois tous les jars téléchargés automatiquement et localement sur son poste, Calypso peut démarrer et proposer son interface.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *