Scub Foundation v3 - 11es RMLL du 6 au 11 juillet...

75
Scub Foundation Socle technique Java Open Source http://www.scub-foundation.org

Transcript of Scub Foundation v3 - 11es RMLL du 6 au 11 juillet...

Scub Foundation

Socle technique Java Open Sourcehttp://www.scub-foundation.org

Présentation de Scub

Présentation de ScubScub est une société de service en informatique qui a pour but de fournir du conseil et de développer des applications spécifiques afin de résoudre les problèmes les plus importants et les plus pressants de ses clients.

Présentation de Scub

••••Nos services sont centrés sur :

Le conseil.Le développement d'applications.L'intégration de systèmes.Le décisionnel.

Nous sommes spécialisé dans l'open source, les technologies Java et les architectures orientées services (SOA).

Présentation de Scub

••••• Crée en 2003.

Basée à Angouleme.Une équipe de neuf personnes passionnées.Forte croissance / 0 turnover.Membre du groupe Arrow Financial Consulting (60 personnes / Paris / Londres / Tunis).

Plan de la présentation

Plan de la présentation

••••• Qu'est ce qu'un socle technique ?

Architecture des applicationsCe qu'offre notre socle techniqueInfrastructureNotre offre de service

Avant-propos...

Un problème réccurent à gérer...Le changement.

Il faut partir du principe que le changement est quelque chose de normal.

Le changement peut survenir au niveau des besoins utilisateurs, des technologies, des règles métiers ou des organisations.

Comment gérer le changement ?

• Le développement doit etre incrémental pour gérer les incertitudes.

ScrumLe développement doit etre industrialisé pour gérer la complexité.

Scub Foundation

Qu'est ce qu'un socle technique ?

DéfinitionUn socle technique est un ensemble de frameworks, de conventions, d'outils et de procédures qui structurent les développeurs et leurs développements.

Pour simplifier, c'est une plateforme qui permet l'industrialisation des projets de développement informatique.

Objectifs

••

••••

• Ne pas réinventer la roue ! On intègre les meilleurs produits

Avoir des modèles de projets.Avoir des taches automatisées.Gérer automatiquent des librairies.Gérer les différents environnements (Test / Développement / Pré prod / Production·).Développement SOA.Une documentation complète.

Architecture des applications

Architecture Orienté ServiceL'architecture logicielle que nous avons choisi a pour but de produire des ilots de services indépendants et pouvant etre utilisés par n'importe quelle technologie.

Vers la SOA

Couche base de données

Couche base de donnéesGère le stockage des données.(select, update, insert et delete seulement)

HSQLdb en développement.PostgreSQL (ou autre) en production.

Indépendance totale vis à vis de la base de données.

Couche modèle

Couche modèleReprésente les données persistantes de l'application avec des objets Java simples.

Utilisation d'Hibernate pour gérer le mapping Objet / Relationnel.

Non intrusif / Indépendance.

Source couche modèle

Couche d'accès aux données

Couche d'accès aux donnéesAbstrait et encapsule l'accès aux données.

Utilisation d'Hibernate et Spring.

Découplage entre interfaces et implémentations mais aussi séparation du code métier et du code technique.

Source couche d'accès aux données

Source couche d'accès aux données

Source couche d'accès aux données

Couche service

Couche serviceContient la logique métier de l'application.

Elle utilise la couche DAO pour accéder aux données. Elle est testée grace à JUnit et Eclemma.

Couche indépendante des technologies sous-jacentes.

Source couche service

Source couche service

Source couche service

Source couche service

Source couche service

Exécution des tests

Exécution des tests

NoyauNous venons de réaliser un ilot de service.

A l'aide des taches du socle, nous pouvons déployer de manière autonome ces services sous la forme d'un war.

Avantages d'un noyau service

•••• Centralisation de la logique métier.

Réutilisation du code.Qualité plus facile a gérer.Simplification de la programmation pour les développeurs d'interfaces utilisateurs.Interfaces Java + DTO = Indépendance des technologies.

Applications clientes

Applications clientesLes services sont utilisables par toutes applications clients.

Nos modèles de projet permettent de développer facilement des applications GWT, Struts, Spring MVC, Service.

Bien entendu, n'importe quelle technologie peut etre utilisée.

Ce qu'offre notre socle technique

DéfinitionUn socle technique est un ensemble de frameworks, de conventions, d'outils et de procédures qui structurent les développeurs et leurs développements.

Pour simplifier, c'est une plateforme qui permet l'industrialisation des projets de développement informatique.

Schéma général

Services offerts par le socle

•• Des modèles de projet.

Des taches (compilation, test, packaging, deploiement...).Une gestion automatique des librairies et des dépendances.L'intégration automatique des frameworks les plus populaires.La gestion des environnements (dev, test, pre prod, prod....).

Maven - IntroductionMaven est un outil pour la gestion et l'automatisation de la production des projets logiciels.

L'objectif de Maven est de simplifier le processus de fabrication d'un logiciel.

Schéma général

Maven - Fonctionnalités

• Permet de définir la configuration d'un projet dans un fichier XML qui peut lui meme hériter d'un autre fichier.Permet d'obliger les développeurs à utiliser une structure de projet et des taches communes.Permet de gérer les dépendances vers des projets externe (comme JUnit) ou interne.

Maven - Fichier projet

Maven - Structure de projets

Maven - Taches

•••••

Le socle propose un ensemble de taches pour, par exemple :

La compilation.Le lancement des tests.Le packaging.Le déploiement.L'initialisation de la base de données.

Maven - Référentiel

••

Le but du référentiel est de rendre disponible les plugins, les librairies et les projets.

Il existe généralement trois référentiels : Un sur le poste du développeur.Un sur Internet qui contient l'ensemble des librairies (maintenu par les équipes Maven).Un troisième référentiel au niveau de l'entreprise pour gérer sa configuration.

Maven - Schéma référentiel

EclipseUne seule version d'Eclipse est utilisée par l'ensemble des développeurs.

Cette version est installée automatiquement sur chaque poste avec tous les plugins.

note : Eclipse n'est pas obligatoire, nous avons aussi intégré d'autres IDE comme JDev.

Eclipse - Checkstyle

••••

Ce plugin permet de vérifier certaines règles lors de l'écriture du code.

Par exemple, on peut vérifier : Que chaque méthode est commentée.Que l'on ne déclare pas de HashMap.Que l'on utilise pas "System.out.println"....

Exemple checkstyle

Eclipse - EclemmaEclemma est un plugin qui permet de voir quel code métier est couvert par les tests unitaires.

Le principe est simple : lors de l'exécution des tests unitaires, Eclemma vérifie quelles portions de code sont exécutées et quelles portions ne le sont pas.

Exemple eclemma

Infrastructure

Schéma général

MantisMantis est un système de suivi des bugs et demandes.

Il permet aux développeurs et aux utilisateurs d'améliorer la qualité en assignant à chaque demande un numéro.

Chaque demande peut ainsi etre tracée.

Exemple mantis

ArtifactoryArtifcatory est un référentiel Maven qui permet de gérer les plugins, librairies et projets.

Exemple artifcatory

Subversion

••

SVN est un système de gestion de version.

Il supporte les fonctionnalités de CVS avec en plus :

Gestion des répertoires et des renommages.Commits atomiques.

Exemple subversion

ContinuumContinuum est un outil d'intégration continue, il vérifie de manière automatique que les modifications de code source n'ont pas générées de régressions de l'application.

Pour schématiser, tous les soirs, Continuum va récupérer les sources et va lancer les taches Maven pour constuire et tester le projet.

Exemple continuum

Notre offre de service

Scub Foundation

•••••

Scub Foundation est utilisable tout de suite comme tout autre projet libre.

Nous fournissons : Toutes les applications.Tous les modèles de projet.Toute la documentation et les tutoriaux.Tous les projets exemples.Un serveur Artifactory en ligne.

FormationNous pouvons former vos équipes à l'utilisation du socle ainsi qu'aux diverses technologies que nous avons sélectionnées.

Nous pouvons aussi former vos équipes pour qu'elles soient en mesure de modifier le socle technique.

AdaptationNous pouvons paramétrer le socle afin qu'il réponde à vos besoins.

Que ce soit pour intégrer des technologies (EJB3, JSF...), intégrer des outils (JDev...), intégrer des serveurs d'applications (Weblogic...) ou créer des modèles de projets particuliers.

RenfortsNous disposons d'équipes de développement et de chefs de projet qui peuvent participer a la realisation de vos projets ou de ceux de vos clients.

Nos équipes peuvent intervenir à toutes les étapes du projet.

ConseilNous pouvons vous aider à améliorer vos processus et vos méthodes grace à nos équipes de spécialistes.

Pour finir...

Pourquoi ne pas essayer ?Vous pouvez bien entendu accéder a l'ensemble des éléments a l'adresse suivantehttp://www.scub-foundation.org

Mais vous pouvez aussi nous commander une journée de présentation pendant laquelle notre directeur technique vous montrera l'ensemble du socle.

note : remboursement possible par votre OPCA

Questions ?

•••

Questions ?

Notre site web : http://www.scub.netNotre blog : http://www.scub.net/notre-blogTwitter : http://twitter.com/scub_france