Maintenance évolutive autour du composant cœur VistaMart de la VFK InfoVista
Développement autour du module VistaMart de la solution InfoVista dédiée à la gestion des performances des systèmes d'information. VistaMart est le composant cœur d'une plateforme multi-tiers de composants distribués (Java/J2EE 5). En charge de la gestion de l'accès aux données critiques de la plateforme mais aussi de la production de calculs à haute valeur ajoutée, son développement et ses évolutions offrent les défis de développement inhérents à la manipulation de données volumineuse dans des intervalles de temps les plus courts possibles.
Analyse, conception, et implémentation (IntelliJ + MagicDraw UML) des nouvelles évolutions liées à l'accès aux données à travers des APIS de type Web service.
Analyse, conception de modules d'exports massifs et temps réels des données collectées auprès des ressources des systèmes d'information. Exposition de ces modules à travers des API de type Web Services (WSDL, JAXB, JAX-WS).
Refactoring des APIs de communication avec des systèmes propriétaires par échange de messages asynchrones JMS (Active MQ)
Tuning et amélioration de la procédure de mise à jour (appelé provisioning) du référentiel VistaMart Oracle 11g. Cette procédure implique l'identification des goulots d'étranglement qu’il s’agisse de limitations inhérentes au système de gestion de base de données ou de l ;a couche applicative (serveur d’application J2EE).
Choix des implémentations de solutions appropriées (Java Concurrent API, multithreading, parallélisme des algorithmes) visant à maintenir le niveau d'un taux d’insertion/ lecture de plusieurs millions de données lors des mises à jour.
Enfin profilage du code afin de réduire l’empreinte mémoire de la couche Java pouvant requérir l’utilisation de système offrant jusqu’à 64Go de mémoire.
Refactoring et optimisation des chargements et temps d'accès aux caches mémoires des services Web ouvrant les APIs du coeur aux applications clientes
Etude de l’intégration du composant VistaMart dans le serveur d’application Glassfish V3.1 (J2EE 6.0)
Isolation et intégration du framework Lucene dans une structure de machine à états finis.
Maintenance évolutive autour de l'éditeur tactique militaire STARS
S'appuyant sur une architecture multi tiers Java/J2EE 5 (EJB 3.0 sous JBOSS) l'éditeur STARS permet la saisie, la collecte et l’import d'informations tactiques depuis des sources d'observations stratégiques (radar, postes d’observations automatiques, données observateur etc.) vers un système de base de données ORACLE. Ces données sont ensuite accédées depuis un Middleware propriétaire et rejouées dans le cadre de simulations militaires stratégiques (SIG).
Analyse, conception et développement des composants (Eclipse + Enterprise Architect) du nouveau socle STARS dans le cadre de migrations vers les serveurs d'application JBOSS 5.0 (Tomcat + Hibernate) et technologies EJB 3.1.
Analyse, conception et développement des nouveaux composants OSGi afin de proposer des versions de produits facilement modulables en fonction des profils de client
Analyse, conception et développement de modules de collecte et d’imports de données externes au système STARS dans le respect et la mise en application des méthodologies UP (conception UML, RDD, DDD, et TDD).
o Création de la gestion des imports manuels et semi automatiques au format CSV et XML depuis l’éditeur tactique
o Création de l’import de données automatiques (services de surveillance de type Watch Dog et import de données vers des services EJB 3.0).
o Création de services J2EE implémentant un DSL java pour la formulation de requêtes EJBQL depuis l’éditeur tactique
o Traduction et intégration des données collectées auprès des sources externes au domaine de travail de l’éditeur tactique militaire
Reprise d’existant sur un module d’échange de sources d’informations (images, documents etc..) s’appuyant sur les technologies EJB, JBOSS Remoting etc.
Mise en place de la politique de sécurité par à travers un mécanisme de type LoginModule sous JBOSS s’appuyant dur les API JAAS. Le contrôle des accès est effectuée à travers la gestion des rôles J2EE sous JBOSS, et un mécanisme de jeton assure la singularité des connections.
Analyse, conception et développement du harnais de test associé à l’éditeur tactique en s'appuyant sur les techniques, TDD, BDD. Intégration des Framework JUnit, UISpec4J, JDave avec mise au point de micros DSL adaptés aux domaines couverts.
Mise en place de la politique d’intégration continue sous serveur CI HUDSON s’appuyant sur l’outil de gestion de projet Maven 2.
Activité de Refactoring sur l'existant afin de rendre le code testable (passage de simple « legacy code » à code testable puis testé) en vue de le rendre conforme aux contraintes de validation fonctionnelle des clients.
Expert Technique BNP Arbitrage Avril 2007 - Décembre 2007
Expert Java Senior et Architecte Logiciel Intégration dans l'équipe PRISM
Cette équipe prend en charge la maintenance et le développement évolutif du logiciel de GRID dédié à la simulation tarifaire des opérations liées aux dérivées actions. Intégration du groupe d'architectes de BNP Arbitrage
Suivi et maintenance du projet PRISM
Conception, modélisation (Visio) du nouveau container de plugin favorisant un chargement “à chaud” des plugins (Pattern Generic Factory)
Suivi et amélioration des modules de connexion et de répartition en place (intégration du serveur de GRID LSF).
Evolution du site d'administration en environnement Servlet 2.4/ JSPX 2.0,
Aide à la refonte de la base de données technique sous-jacente à l'applicatif (Oracle 10i) et participation à la conception et au développement du Framework d'accès à la base
Analyse et paramétrage système des machines virtuelles en environnement sous forte contrainte (serveurs Linux RedHat AMD64 avec tailles de Heap > 4Go)
o Choix des algorithmes de collecte, des tailles de génération
o analyse des taux de sortie
o Ecriture et mise en place de scripts de collectes des traces GC et analyse de ces traces
o Monitoring avec Sysload et JConsole
Conception, développement et mise au point des nouveaux modules du projet PRiSALiD
Le projet PRiSALiD est un nouveau middleware de type Event Driven Architecture. Il a pour objectif de mettre en corrélation les performances mesurées de l'application et les ressources disponibles afin de fournir les meilleures performances, ceci de façon auto adaptative. Il permet :
la gestion des requêtes selon des protocoles différents (JMS/HTTP/RMI/Raw IO)
une instrumentation continue de l’état des serveurs PRISM selon un mode push/pull levées des alertes ou déclenchement des actions selon des règles métiers (monitoring)
gestion des priorités de l'exécution des calculs selon leur criticité (scheduling)
Sa réalisation s'est effectué à travers la concrétisation de chantiers tels que :
Modélisation, conception (StarUML) et implémentation logicielle d'un module frontal favorisant le Schedule des requêtes vers les réseaux de calculs. Dans ce cadre, mise en place d'un système de démultiplexeur/dispatcher permettant un control adaptatif des volumes de requêtes multithread envoyées vers les serveurs PRISM. La conception s'appuie sur une mécanique de dispatch de type réactif/proactif en environnement multithread ainsi que sur la mise en place d'activités de scheduling/monitoring pour la gestion du flux de taches (designs patterns Reactor, Proactor, active objet...).
Modélisation, conception (StarUML) et implémentation d'un système distribué d'agents de monitoring locaux (Local Monitoring Agent) et distribués (Domain Monitoring Agent). L'implémentation s'appuie aussi sur les technologies de composition et de suivi d'évènements supportés par une sous couche JMX.
Modélisation, conception (StarUML) et implémentation d'un système de monitoring orienté vers la gestion d'évènements composites ayant pour objectif la composition et le suivi d'évènements détectables selon la mise en place de règles métiers.
Modélisation, conception (StarUML) et implémentation d'un système de scheduling. Notre objectif est de le spécialiser dans la prise de décisions auto adaptatives en réponse aux performances monitorées et/ou aux événements simples/composites détectés.
Intégration sous l'environnement BEA WebLogic avec migration et standardisation de composants métiers en composants service de type EJB. Mise en place d'une méthode de conception et développement basée sur mon expertise
Conception, développement et mise au point des connections de type sleepn' retry avec contrôle du failover sur échec métier/applicatif
Aide à la création d'une Jeune Pousse Innovante (Aide à la création d'une jeune entreprise d'édition de logiciel d'aide à la saisie en ligne)
Le logiciel d'aide à la saisie développé s'appuie sur l'utilisation des technologies Java/J2EE, les composantes de l'application et les données étant hébergées et gérées par l'entreprise, les modules client/professionnel sont chargés et mis à jour par le biais de l'utilisation des technologies Java Web Start.
Tous les modules applicatifs Java/J2EE sont propriétaires. J'en ai assuré la conception, le développement (Eclipse + Poseidon), la mise au point ainsi que le déploiement en environnement Solaris 10. Le serveur d'application est un serveur Jboss 4.0.x. (Tomcat + Hibernate).
Exemples de Module serveur :
Création d'un Framework de persistance propriétaire en conta...