Scub Foundation v3.0

Transcription

Scub Foundation v3.0
Scub Foundation
Socle technique Java Open Source
http://www.scub-foundation.org
Présentation de Scub
Présentation de Scub
Scub 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 applications
Ce qu'offre notre socle technique
Infrastructure
Notre 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.
Scrum
• Le développement doit etre industrialisé
pour gérer la complexité.
Scub Foundation
Qu'est ce qu'un socle technique ?
Définition
Un 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é Service
L'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ées
Gè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èle
Repré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ées
Abstrait 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 service
Contient 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 sousjacentes.
Source couche service
Source couche service
Source couche service
Source couche service
Source couche service
Exécution des tests
Exécution des tests
Noyau
Nous 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 clientes
Les 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éfinition
Un 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 - Introduction
Maven 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
Eclipse
Une 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 - Eclemma
Eclemma 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
Mantis
Mantis 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
Artifactory
Artifcatory 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
Continuum
Continuum 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.
Formation
Nous 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.
Adaptation
Nous 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.
Renforts
Nous 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.
Conseil
Nous 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 suivante
http://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.net
• Notre blog : http://www.scub.net/notre-blog
• Twitter : http://twitter.com/scub_france