Contenu 1 Introduction... 2 2 Description de l infrastructure et de l architecture... 2 2.1 ESB... 2 2.2 Erasme... 3 3 Case Study... 3 3.1 Critères d évaluation... 3 3.2 Architecture... 4 3) Gestion des erreurs dans une architecture SOA/REST... 4 4) Sécurisation des services sur un ESB... 4 3.3 Technique... 4 5) Gestion des dépendances avec ServiceMix... 4 6) Installation et maintenance de ServiceMix... 4 7) Monitoring de ServiceMix... 4 8) Integration Erasme.... 4 9) Tuxedo... 5 10) Control-M & SQR... 5 11) SolR/Lucene... 5 Version du 17/02/15 Page 1 sur 8 pages Dossier DMP1402084/HTNMMN/EAI
1 Introduction L étude de cas est découpée en plusieurs exercices techniques. Ceux-ci ont comme objectif l évaluation de la compétence technique pointue du candidat sur des éléments précis et critiques du Système d Informations de l Office. Il est découpé en deux volets : - Architecture : o SOA/REST ; o Sécurité ; - Technique : o ServiceMix : Intégration d un ESB dans l infrastructure du Système d Information du forem ; o SolR/Lucene : Intégration d un moteur de recherche ; o NatStar/Tuxedo/SQR : Migration et maintenance de l application Erasme ; 2 Description de l infrastructure et de l architecture Cette section est un complément d information du document Annexe 2 : standards techniques DSI Forem 2.1 ESB L'architecture SOA mise en place au Forem utilise le paradigme «RESTful web service» pour les flux entre les front-ends et les back-ends. L'orchestration des flux est faite par l'esb ServiceMix (Version 4.5). Les flux sont définis par une route Camel, qui sont regroupées logiquement et physiquement en bundles OSGi «business» ou «technique». Chacun de ceux-ci concernent une entité business distincte (demandeurs emploi, offres emploi,...) ou répondent à des problématique techniques (connecteurs vers les systèmes de l Office utilisant différents protocoles). La gestion des versions pour ces bundles "business" et "techniques" utilisent la convention de nommage OSGi, et ceux-ci sont déployés dans le répertoire d'auto-déploiement de ServiceMix. Un serveur d application Java EE déploie séquentiellement des WAR «monolithiques» contenant chacun les JARS utilisés par chaque application. Au contraire, lors du démarrage de ServiceMix, tous les JAR et les WARS sont démarrés en parallèle par le framework OSGi, ce qui est très rapide, mais nécessite de spécifier explicitement les dépendances pour que l'ordre de démarrage soit correct et ne génère pas d'erreurs dues à un mauvais séquencement entre les opérations. La maîtrise de ces mécanismes OSGi est donc nécessaire pour que chaque installation, redéploiement ou redémarrage de ServiceMix se termine avec succès, afin de garantir la stabilité des différents environnements du Forem. Version du 17/02/15 Page 2 sur 8 pages Dossier DMP1402084/HTNMMN/EAI
souhaite une parfaite intégration avec son infrastructure existante et un excellent niveau de monitoring pour les messages passant dans l'esb. Il souhaite également pouvoir facilement identifier les erreurs et permettre certaines actions simples pour corriger ces erreurs de façon semiautomatique. 2.2 Erasme Erasme est une application développée en Natstar, version 3.3. L environnement NatStar utilise le moniteur transactionnel Tuxedo (version 6.3) pour centraliser ses communications à la base de données. L ensemble des données sont traitées par des batch SQR en journée et principalement en soirée. Ces batch sont contrôlés par l environnement Control-M. 3 Case Study 3.1 Critères d évaluation Les critères d évaluations sont les suivants : 1) Architecture 40 % 1) Gestion des erreurs dans une architecture SOA/REST 20 % 2) Sécurisation des services sur un ESB 20 % 2) Technique 60 % 3) Gestion des dépendances avec ServiceMix 4) Installation et maintenance de ServiceMix 5) Monitoring de ServiceMix 6) Intégration Erasme 7) Tuxedo 8) CONTROL-M & SQR 9) SolR/Lucene 10 % 10 % 5 % 10 % 5 % 5 % 15 % 100 % Version du 17/02/15 Page 3 sur 8 pages Dossier DMP1402084/HTNMMN/EAI
3.2 Architecture 3) GESTION DES ERREURS DANS UNE ARCHITECTURE SOA/REST Expliquez les différents types d erreurs dans une architecture SOA avec REST, comment proposez-vous de les traiter? 4) SÉCURISATION DES SERVICES SUR UN ESB Proposez une architecture pour la sécurisation des services exposés par l'esb. Cette architecture doit respecter l'infrastructure du Forem ainsi que les besoins de sécurité : authentification, autorisation et logging. 3.3 Technique 5) GESTION DES DÉPENDANCES AVEC SERVICEMIX Afin de contrôler l'ordre de chargement des dépendances dans ServiceMix, à la fois pour l'installation, le démarrage et les déploiements (à chaud ou à froid), expliquez les mécanismes à mettre en place. Détaillez pour chacun d eux leurs avantages et inconvénients respectifs. 6) INSTALLATION ET MAINTENANCE DE SERVICEMIX Quelle(s) solution(s) technique(s) proposez-vous pour faciliter l'installation ou la mise-à-jour de l'esb et de ses services en mode cluster? La ou les solutions proposées doit prendre en compte de n avoir aucune interruption de service? 7) MONITORING DE SERVICEMIX Quelle solution proposez-vous pour gérer le monitoring des processus au sein de ServiceMix et le monitoring de ServiceMix lui-même? Argumentez votre réponse. 8) INTEGRATION ERASME. Version du 17/02/15 Page 4 sur 8 pages Dossier DMP1402084/HTNMMN/EAI
désire intégrer l'application Erasme à son infrastructure SOA. Quels sont les 5 éléments techniques les plus importants à considérer pour mener à bien cette intégration? Argumentez votre réponse. 9) TUXEDO Il vous est demandé d implémenter une simple mise à jour de données d un objet basique ne contenant que des variables simples (aucun setof ou refto) ainsi qu'un ajout et une suppression de données avec, pour ces différents cas, une gestion d un commit/rollback en fonction du succès ou non de la transaction. Quelles sont les commandes que vous allez utiliser? Justifiez votre réponse. 10) CONTROL-M & SQR. Il vous est demandé de créer un nouveau batch de traitement des données modifiées pendant la journée. Celui-ci sera exécuté en dehors des heures ouvrables du client. Il vous est également demandé de réaliser les opérations suivantes en collaboration avec l équipe en charge de Control-M : - Préparer l environnement Control-M à l environnement SQR. - Exécuter votre batch en générant un fichier de log, un fichier de résultat à destination du Business ainsi qu un fichier d erreur s il devait se produire un cas non géré par le batch. - Archiver les fichiers sur l entrepôt de stockage de l entreprise et également fournir le fichier à destination du Business directement à ceux-ci. Comment partagez-vous les traitements à réaliser entre Control-M et le batch SQR? Justifiez votre réponse. 11) SOLR/LUCENE Soit le modèle de données suivant, dans une notation informelle de type relationnel : Demandeurs Emploi (DE) - identifiant - nom - prénom - catégorie Version du 17/02/15 Page 5 sur 8 pages Dossier DMP1402084/HTNMMN/EAI
Expériences - code métier REM - code secteur - date début - date fin - mots-clés - description (texte libre) - identifiant Demandeur Emploi Etudes - code nomenclature - niveau - date début - date fin - statut (terminé etc) - identifiant Demandeur Emploi Connaissance Langues - code ISO langue - niveau de connaissance (1 à 4) - identifiant Demandeur Emploi Localisation DE - adresse - coordonnées latitude/longitude - identifiant Demandeur Emploi Offres Version du 17/02/15 Page 6 sur 8 pages Dossier DMP1402084/HTNMMN/EAI
- identifiant - code métier - durée expérience requise - description (texte libre) - identifiant Entreprise Entreprises - identifiant - nom - adresse Lieux de travail Offre - adresse - coordonnées latitude/longitude - identifiant Offre Langues requises - code ISO langue - niveau de connaissance (1 à 4) - identifiant Offre On souhaite mettre en œuvre le moteur de recherche Solr afin d'indexer les demandeurs d'emploi et les offres, ainsi que les informations associées (expériences, études, etc.), et d'y effectuer des recherches selon plusieurs modalités : rechercher les demandeurs d'emploi correspondant aux critères requis par une offre; a contrario, rechercher les offres susceptibles de correspondre au profil d'un demandeur d'emploi particulier; effectuer un "matching" entre un sous-ensemble d'offres présentant certaines caractéristiques et un sous-ensemble de demandeurs d'emploi en présentant d'autres. En particulier, on souhaite permettre le développement d'une interface de navigation "par facettes" montrant la ventilation des demandeurs d'emploi selon leurs propriétés, telles que leur niveau Version du 17/02/15 Page 7 sur 8 pages Dossier DMP1402084/HTNMMN/EAI
d'étude, leur expérience sur un code métier REM ou un code secteur - qui est cumulative -, leur localisation, etc. On souhaite également indexer les descriptions en texte libre afin de permettre d'y effectuer des recherches par mots ou combinaisons de mots. Comment est-il opportun de modéliser les données à l'aide d'un ou plusieurs schémas Solr afin de rencontrer ces besoins? Version du 17/02/15 Page 8 sur 8 pages Dossier DMP1402084/HTNMMN/EAI