Slideshare.net (beta)

 

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 0 (more)

SQLI at SpringOne08

From mederic, 1 month ago

627 views  |  0 comments  |  0 favorites  |  13 downloads  |  4 embeds (Stats)
 
 
 

Groups / Events

 

 
Embed
options

More Info

This slideshow is Public
Total Views: 627
on Slideshare: 442
from embeds: 185

Slideshow transcript

Slide 1: Spring One 11 & 12 juin 2008 Anvers, Belgique Version 1.0 Date 13/06/2008 Auteur Arnaud Cogoluègnes

Slide 2: Historique des révisions du document Version Date Modifications Auteur 1.0 13/06/2008 Création du document A. Cogoluègnes                                                 Spring One 2008 2

Slide 3: Plan Actualités récentes sur Spring & SpringSource La conférence Restitution des sessions Conclusion Spring One 2008 Spring One 2008 3

Slide 4: Plan Actualités récentes sur Spring & SpringSource La conférence Restitution des sessions Conclusion Spring One 2008 Spring One 2008 4

Slide 5: Actualités Quelques rappels Novembre 2007 : Interface21 devient SpringSource Novembre 2007 : Sortie de Spring 2.5 Janvier 2008 : SpringSource rachète Covalent Covalent : contributeur et support pour Tomcat et Apache HTTPD Avril 2008 : sortie beta de Spring Source Application Platform Serveur d’applications Modulaire dans son infrastructure et pour les applications Basé sur OSGi Spring One 2008 Spring One 2008 5

Slide 6: Plan Actualités récentes sur Spring & SpringSource La conférence Restitution des sessions Conclusion Spring One 2008 Spring One 2008 6

Slide 7: La conférence Présentation 3ème édition 11 & 12 juin 2008 à Anvers, Belgique Organisée par BeJUG Belgian Java User Group Quelques Chiffres 400 participants de 25 pays 30 sessions, 2 keynotes 27 intervenants (22 de SpringSource) Partenaires : Oracle, JetBrains, CapGemini Belgique Spring One 2008 Spring One 2008 7

Slide 8: La conférence Les sessions Spring One 2008 Spring One 2008 8

Slide 9: Plan Actualités récentes sur Spring & SpringSource La conférence Restitution des sessions Conclusion Spring One 2008 Spring One 2008 9

Slide 10: La conférence Les sessions Spring One 2008 Spring One 2008 10

Slide 11: Welcome Par Stephan Janssen Fondateur BeJUG Fondateur Parleys Organisateur JaVoxx (ex-JavaPolis) JaVoxx JavaPolis devient JaVoxx 8-12 décembre 2008 Inscription à partir de juillet Spring One 2008 Spring One 2008 11

Slide 12: Welcome Parleys.com Site de publication de vidéos SpringOne, JavaPolis, JavaZone… Présentation du business model Espace payant, gratuit Démo : Client Flex et GWT Mode autonome Publications Début de la publication de SpringOne 2008 : en septembre Spring One 2008 Spring One 2008 12

Slide 13: La conférence Les sessions Spring One 2008 Spring One 2008 13

Slide 14: Keynote Jour 1 Par Rod Johnson Directeur Général SpringSource Créateur de Spring Auteur • Expert One-on-One J2EE Design and Development (Programmer to Programmer) • Expert One-on-One J2EE Development without EJB • Professional Java Development with the Spring Framework Spring est devenu un standard de facto Suprématie de Spring Certification Spring par SpringSource Spring One 2008 Spring One 2008 14

Slide 15: Keynote Jour 1 Spring 2.5 Les “nouveautés” de Spring 2.5 Injection de dépendances avec annotations @Autowired + @Qualifier @Resource + @PostConstruct + @PreDestroy @Component • Plus-value pour l’AOP, la sémantique, le rôle et le component-scanning JMX => Une partie plutôt technique (contrairement au début) Spring One 2008 Spring One 2008 15

Slide 16: Keynote Jour 1 Portfolio (Misc.) Spring Security Sortie le mois dernier Rappel sur Acegi et sa verbosité Plus-value de Spring Securité (AOP, namespace…) Spring Integration Les Enterprise Integration Pattern à la Spring Tests d’intégration Nouveaux supports pour JUnit 4.4 et TestNG Support moins intrusif Plutôt inclus dans Spring Core que dans le portfolio Spring One 2008 Spring One 2008 16

Slide 17: Keynote Jour 1 Portfolio (Web) Par Keith Donald Fondateur SpringSource Créateur de Spring Web Flow Leader sur les projets Web du portfolio Objectifs de Spring Web (2.5 et à venir) Modèle de programmation plus simple Support JSF Support JavaScript Spring One 2008 Spring One 2008 17

Slide 18: Keynote Jour 1 Portfolio (Web) Spring MVC Support pour les annotations Volonté de sortir du modèle d’héritage (pour les contrôleurs) Typage fort Convention plutôt que configuration => l’ancien modèle pourrait être abandonné dans Spring 3.0 Spring Web Flow 2 Sortie mai 2008 Plus facile à utiliser que la v.1 Configuration allégée (moins verbeuse) Fonctionnement asynchrone Mise à jour partielle de page (“view scope”) Spring One 2008 Spring One 2008 18

Slide 19: Keynote Jour 1 Portfolio (Web) Spring JavaScript API pour les pages web Basé sur DOJO Intégration avec Spring MVC et Spring Web Flow Spring Faces Utilisation de JSF pour la partie vue Dans un environnement managé par Spring => Enrichissement et ouverture de la partie web de Spring Spring One 2008 Spring One 2008 19

Slide 20: Keynote Jour 1 Middleware Rod Johnson a souligné la différence entre : Notre modèle de programmation • Applications Spring • Injection de dépendances • Modulaire L’environnement d’exécution • Archive monolithique (WAR) Les applications web ont supplanté les autres éléments de la pile J2EE / JEE D’où l’absence des EAR dans la comparaison précédente Spring One 2008 Spring One 2008 20

Slide 21: Keynote Jour 1 Présentation de SpringSource Enterprise Contrat à souscrire Spring Enterprise Edition Garantie de correction de bugs, de patch Version instrumentalisée de Spring SpringSource Performance Suite Tool Suite (outils Eclipse) Application Management Suite • Console (application Spring) • Debug, management, stats Advanced Pack For Oracle • Performances, extension Spring Source Support Spring One 2008 Spring One 2008 21

Slide 22: Keynote Jour 1 SpringSource Enterprise SpringSource Tool Suite Plugins Eclipse Distribution Eclipse Personal Use License Démo par Christian Dupuis Lead de Spring IDE Responsable des outils Spring Fonctionnalités Dashboard TaskForce Tutorial Intégration de S2AP (vue Server de WTP) Diagnostic d’erreurs Content assist (ex. : version d’un bundle OSGi) Spring One 2008 Spring One 2008 22

Slide 23: Keynote Jour 1 Actualités Rachat de Covalent SpringSource leader pour le support et la contribution Tomcat Peter Cooper-Ellis chez SpringSource Ancien directeur technique de WebLogic Chez SpringSource : Engineering & Product Management Prédictions de Rod Johnson : Compétition sur le marché des serveurs d’applications Fin du serveur d’applications monolithique -> modulaire Fusion serveur d’applications – ESB ? Spring One 2008 Spring One 2008 23

Slide 24: Keynote Jour 1 Conclusion Rappel de l’actualité autour de Spring et surtout de SpringSource Opération de promotion Les outils La plateforme Les produits et l’expertise Une période clé pour Spring et pour SpringSource Spring One 2008 Spring One 2008 24

Slide 25: La conférence Les sessions Spring One 2008 Spring One 2008 25

Slide 26: Spring 2.5 on the way to 3.0 Juergen Holler Co-fondateur de Spring Contributeur le plus actif sur Spring Core Co-auteur de “J2EE development without EJB” Agenda : Etat de l’art de Spring 2.5 Introduction à Spring 3.0 Spring One 2008 Spring One 2008 26

Slide 27: Spring 2.5 on the way to 3.0 Spring 2.5 Rappels sur Spring 2.5 Support Java 1.6 (JDBC 4.0, JMX) Compatible 1.5 & 1.4 Plus compatible 1.3 Noyau de Spring 2.5 Extensions pour bénéficier de 1.5 Mais reste fondamentalement 1.4 Intégration AspectJ Load time weaving Déjà dans Spring 2.0 Spring One 2008 Spring One 2008 27

Slide 28: Spring 2.5 on the way to 3.0 Spring 2.5 Support API JEE 5 JPA, EJB Servlet 2.5, JSP 2.1, JSF 1.2 Support pour EclipseLink et WebSphere JPA Annotations JSR 250 (@Resource, @PostConstruct, @PreDestroy) @TransactionAttribute (EJB), @PersistenceContext, @PersistenceUnit @Autowired + @Qualifier @Component + component scanning @Configurable & AspectJ Pour Spring MVC Tests unitaires JUnit 4.4, TestNG Spring One 2008 Spring One 2008 28

Slide 29: Spring 2.5 on the way to 3.0 Recommandations pour Spring 2.5 Option 1 : XML pour chaque composant (bean) Complété par des annotations => Adaptée pour la couche métier Option 2 : Classes annotées Component scanning => Adaptée pour les contrôleurs web Spring One 2008 Spring One 2008 29

Slide 30: Spring 2.5 on the way to 3.0 Recommandations pour Spring 2.5 Option 1 : Externalisée • Centralisée mais code supplémentaire à maintenir Possibilitée de changer sans recompilation Option 2 : Embarqué Nécessite généralement des conventions Peut nécessiter une recompilation => Savoir combiner les deux judicieusement Spring One 2008 Spring One 2008 30

Slide 31: Spring 2.5 on the way to 3.0 Spring 3.0 Planning : 2.5.6 en juillet 3.0 M1 en août (REST, EL) 3.0 GA pour Q4 2008 Nouveau noyau Java 5 Transparent pour l’utilisateur Compatible J2EE 1.4 Nouvelles fonctionnalités du conteneur et EL++ Spring One 2008 Spring One 2008 31

Slide 32: Spring 2.5 on the way to 3.0 Spring 3.0 Web Portlet 2.0 Servlet 3.0 REST support Gestion de conversation Spring One 2008 Spring One 2008 32

Slide 33: Spring 2.5 on the way to 3.0 @deprecated & suppression ? Support pour Commons Attributes Support pour TopLink Hiérarchie des contrôleurs MVC Hiérarchie des tests JUnit 3.8 Spring One 2008 Spring One 2008 33

Slide 34: Spring 2.5 on the way to 3.0 Conclusion Des similarités avec la keynote Nouveautés pas vraiment nouvelles Plongeon intéressant dans Le noyau Spring 2.5 Spring 3.0 Spring One 2008 Spring One 2008 34

Slide 35: La conférence Les sessions Spring One 2008 Spring One 2008 35

Slide 36: OSGi programming model Adrian Colyer Directeur technique de SpringSource Lead de AspectJ Co-auteur “Eclipse AspectJ” Fondateur AJDT (outils Eclipse pour AspectJ) Impliqué dans S2AP Fondateur Spring Dynamic Modules Spring One 2008 Spring One 2008 36

Slide 37: OSGi programming model OSGi ? Dynamic Module System for Java Module Division d’un système en modules Règles de visibilité Processus de résolution Versionning Dynamique Opérations possibles à l’exécution (install, start, stop, uninstall, update) Orienté service Publication de service Service registry Spring One 2008 Spring One 2008 37

Slide 38: OSGi programming model Historique Origine : OSGi Alliance 1999 : Java embarqué et network devices 2003 : support pour 4 composants mobiles 2004 : adoption dans l’Open Source (ex. : Eclipse) 2006 : premières utilisations coté serveur Implémentations (Open Source) Eclipse Equinox Apache Felix Knopflerfish (Makewave) Spring One 2008 Spring One 2008 38

Slide 39: OSGi programming model Concepts Il faut un conteneur : OSGi Service Platform Compendium Services Des services optionnels Ex. : console d’admin, HTTP (ajout de servlet) Unité de déploiement (“bundle”) JAR Manifest (MET-INF/MANIFEST.MF) • SymbolicName, Version, Name… Spring One 2008 Spring One 2008 39

Slide 40: OSGi programming model Concepts Dépendances Import-Package A Les classes du bundle B sont visibles pour A Classloading géré par le conteneur A peut faire des imports des classes de B B Fournir des classes aux autres bundles Export-Package Service Registry Publication et consommation de services Spring One 2008 Spring One 2008 40

Slide 41: OSGi programming model Bénéfices Modularité forte (module = black box) Gestion du cycle de vie app Versionning lib A lib B Démos avec Equinox, sous Eclipse Console Versionning concurrent lib C v1 lib C v2 Spring One 2008 Spring One 2008 41

Slide 42: OSGi programming model Pour l’entreprise Mettre OSGi coté serveur ? Plusieurs architectures possibles Autonome dans une application web Base d’un serveur d’applications (modulaire) => Ne permet pas de systématiser les applications OSGi powered Spring One 2008 Spring One 2008 42

Slide 43: OSGi programming model Challenges pour OSGi coté serveur Gestion de l’aspect dynamique Une application doit s’attendre à voir ses modules disparaître, réapparaître… Activation asynchrone Faire attendre les clients Difficulté pour tester Concurrence, gestion des threads Problème de classloading Ex. : le bundle Hibernate ne sait pas ce qu’il doit importer Gestion des dépendances (pas de distribution sous forme de bundle) Spring One 2008 Spring One 2008 43

Slide 44: OSGi programming model Dépôt OSGi de SpringSource Bundle OSGi d’environ 300 bibliothèques Open Source http://www.springsource.com/repository/app/ Spring One 2008 Spring One 2008 44

Slide 45: OSGi programming model Dépôt OSGi de SpringSource Spring One 2008 Spring One 2008 45

Slide 46: OSGi programming model Conclusion Les bases pour comprendre L’intérêt de OSGi Les problématiques d’un middleware OSGi à destination des applications Le fonctionnement de S2AP Questions : OSGi adapté pour les applications ? Problématique technique ? Changement d’habitudes (modèle de programmation, de packaging) ? Spring One 2008 Spring One 2008 46

Slide 47: La conférence Les sessions Spring One 2008 Spring One 2008 47

Slide 48: Spring Dynamic Modules Costin Leau Lead Spring Modules Contributeur/lead Spring Dynamic Modules Spring Dynamic Modules aka Spring DM ex-Spring OSGi Objectif : utiliser OSGi sans code/préoccupation spécifique Le projet : Licence Apache Dirigé par SpringSource Contributeurs : BEA, Oracle Spring One 2008 Spring One 2008 48

Slide 49: Spring Dynamic Modules Problèmes adressés Spring DM Configure les bundles • Création, décoration Injection de service • Inter-bundle => POJO dans OSGi Spring One 2008 Spring One 2008 49

Slide 50: Spring Dynamic Modules Fonctionnalités Bundle = Application Context Création automatique À partir de META-INF/spring/*.xml Aucune dépendance vers OSGi Contexte Spring OSGi ConfigurableOsgiBundleApplicationContext Spring One 2008 Spring One 2008 50

Slide 51: Spring Dynamic Modules Services Les services (OSGi) sont des beans Spring Exposition dans le registry via namespace Spring DM <osgi:service id="simpleServiceOsgi" ref="simpleService" interface="org.xyz.MyService" /> Référence à un service <osgi:reference interface="org.xyz.MyService" /> Spring One 2008 Spring One 2008 51

Slide 52: Spring Dynamic Modules Misc. Cardinalités Apposer des cardinalités sur des beans récupérés du registry (obligatoire, optionnel…). Le bundle (contexte) se charge en conséquence Notions de List/Set de services Listener : écouter les événements des services Register/unregister Tests unitaires Framework de tests unitaires Simulation de déploiement Multi-plateformes OSGi (Equinox, Felix, Knopflerfish) Spring One 2008 Spring One 2008 52

Slide 53: Spring Dynamic Modules Web Challenges Class et resource loading JSP, taglib Les solutions existantes pas satisfaisantes HTTP Service Equinox Extension Registry Spring DM s’intégre avec le conteneur Web Solution pour Tomcat 5.5/6.0, Jetty 6.1, Jasper 2 Spring DM 1.1 (version GA pour l’instant : 1.0.2) Spring One 2008 Spring One 2008 53

Slide 54: Spring Dynamic Modules Conclusion Adresse les problématiques de OSGi concernant le développement d’applications d’entreprises Doit permettre de garder… Ses habitudes Son modèle POJO … tout en devenant OSGi-powered Spring One 2008 Spring One 2008 54

Slide 55: La conférence Les sessions Spring One 2008 Spring One 2008 55

Slide 56: Spring Transaction Choices for Transaction Juergen Holler Objectifs : Distinguer les différents types de transactions Démythifier certaines idées reçues Bonnes pratiques concernant les transactions Spring One 2008 Spring One 2008 56

Slide 57: Spring Transaction Choices for Transaction Types de transactions Natives : une base de données, JDBC Mapping objet-relationnel : transaction et problématiques liées à l’outil Message Broker : orienté message Transaction XA : ressources multiples Spring One 2008 Spring One 2008 57

Slide 58: Spring Transaction Choices for Transaction Mythes XA est obligatoire pour toute application critique XA est obligatoire avec le mapping objet-relationnel XA est obligatoire pour JDBC + JMS Les gestionnaires de transaction JTA sont capables d’effectuer des optimisations intelligentes => toujours effectuer un choix approprié => toujours des concessions à faire Spring One 2008 Spring One 2008 58

Slide 59: Spring Transaction Choices for Transaction Misc. L’attribut transactionnel read-only permet des optimisations Ex. : Hibernate, JDBC en cluster Privilégier les transactions natives L’ORM nécessite une intégration spécifique Ex. : commit/rollback mais aussi flush, cache pour Hibernate Scope (un contexte de persistance par transaction) JTA Utilisation du protocole XA Gestionnaire de transactions avec un serveur d’applications ou en standalone Spring One 2008 Spring One 2008 59

Slide 60: Spring Transaction Choices for Transaction Misc. L’attribut transactionnel read-only permet des optimisations Ex. : Hibernate, JDBC en cluster Privilégier les transactions natives L’ORM nécessite une intégration spécifique Ex. : commit/rollback mais aussi flush, cache pour Hibernate Scope (un contexte de persistance par transaction) JTA Utilisation du protocole XA Gestionnaire de transactions avec un serveur d’applications ou en standalone Spring One 2008 Spring One 2008 60

Slide 61: Spring Transaction Choices for Transaction Misc. XA complexe à paramétrer “lent” par nature à cause du recovery log Mais avec des garanties très fortes Etude de cas avec JMS Use case : réception d’un message, opération BD, aknowledgment Avec XA : “Exactly once semantics” Si erreur dans opération BD => le message peut être relancé => duplication du traitement Solution “manuelle” : détection de message dupliqué (“at least one semantics”) La solution manuelle peut avoir un débit deux fois supérieur à la solution XA Spring One 2008 Spring One 2008 61

Slide 62: La conférence Les sessions Spring One 2008 Spring One 2008 62

Slide 63: Enterprise Integration Patterns with Spring Mark Fisher Lead Spring Integration Commiter Spring Core Rappel : EIP dans Spring Core Spring Remoting JMS support Scheduling Spring One 2008 Spring One 2008 63

Slide 64: Enterprise Integration Patterns with Spring EIP Rappel sur les EIP Pipe & Filter Message Translator Message Router Spring One 2008 Spring One 2008 64

Slide 65: Enterprise Integration Patterns with Spring Objectifs Fournir une API simple pour les EIP Avec une base Spring DI, AOP, Remoting, Sécurité, méta-données, annotations Principes Couplage lache Separation of concerns Spring One 2008 Spring One 2008 65

Slide 66: Enterprise Integration Patterns with Spring Quoi ? Présentation de l’API Interfaces : Source, Target… Exemples de configuration : Namespace XML Annotations Message Bus : “Extension” de l’Application Context Wiring des éléments (ex. : canaux) Gère le scheduling Démos Tirées de la distribution Spring One 2008 Spring One 2008 66

Slide 67: Enterprise Integration Patterns with Spring Conclusion Projet récent (décembre 2007) API pas encore figée Implémentation “légère” (à la Spring) Beaucoup de concepts Tous les EIP Intégration prévue à la S2AP Spring One 2008 Spring One 2008 67

Slide 68: La conférence Les sessions Spring One 2008 Spring One 2008 68

Slide 69: Keynote Jour 2 Adrian Colyer Rob Harrop Co-auteur Pro Spring (notamment) Contributeur S2AP Rappel sur ce qu’a apporté Spring Approche composant Configuration Spring One 2008 Spring One 2008 69

Slide 70: Keynote Jour 2 Les limites du modèle actuel Modularité Ok pour tout ce qui est design (ex. : programmation par interfaces) Des limites pour le déploiement (monolithique) Pas de gestion de visibilité Versionning Permet la gestion des contrats Mais problèmes : • Souvent géré à la main (“deploy and pray”) • Concurrence entre plusieurs versions d’une même bibliothèque Nécessite des mécaniques complexes au niveau du classloading Exécution Limitation des serveurs d’applications et du mode de déploiement Embarquer une plateforme (ex. : OSGi) ne résoud pas tous les problèmes Spring One 2008 Spring One 2008 70

Slide 71: Keynote Jour 2 Démos & conclusion Démos Spring Tool Suite PetClinic sur S2AP Conclusion Mise en évidence de limites et de problématiques Des démos intéressantes Amener le public à suivre les différentes sessions sur S2AP Spring One 2008 Spring One 2008 71

Slide 72: La conférence Les sessions Spring One 2008 Spring One 2008 72

Slide 73: Introduction to SpringSource Application Platform Andy Wilkinson Membre de l’équipe S2AP Objectifs de la session : utiliser rapidement la plateforme Démo : installation Décompression de l’archive Explication de l’arborescence Noyau de la plateforme dans /lib Dépendances dans /repository Les “librairies” dans /librairies => packaging spécial (extension OSGi) • Permet de simplifier la gestion des dépendances Spring One 2008 Spring One 2008 73

Slide 74: Introduction to SpringSource Application Platform Démos Lancement de la plateforme Explication de la journalisation Peu verbeuse Ne dit que ce qu’il faut Lancement “simple” avec JMX Évite la syntaxe complexe Monitoring avec JConsole Démarrage en mode debug Spring One 2008 Spring One 2008 74

Slide 75: Introduction to SpringSource Application Platform Console de la plateforme Spring One 2008 Spring One 2008 75

Slide 76: Introduction to SpringSource Application Platform Démos Configuration : fichiers JSON Simple, structuré et lisible “serviceability” : distinction log et trace Exemple de déploiement d’une application web Via la console Via un répertoire scanné La plateforme convertit les manifest Gestion de header non-OSGi Spring One 2008 Spring One 2008 76

Slide 77: La conférence Les sessions Spring One 2008 Spring One 2008 77

Slide 78: Building Web Applications with the S2AP Sam Brannen Commiter Spring Core Objectifs : montrer les différentes options de déploiement de S2AP Passage d’un WAR standard à une application modulaire Spring One 2008 Spring One 2008 78

Slide 79: Building Web Applications with the S2AP Introduction Spring DM se charge du cycle de vie des contextes Simplification de OSGi SpringSource Application Platform Kernel Spring DM Serviceability • Trace : description détaillée de l’exécution • Log : message important pour l’utilisateur Notion de “personnalités” • Pour l’instant, personnalité web (ie. Support pour le web) • À venir, personnalité batch Conteneur OSGi (“small footprint”) Spring One 2008 Spring One 2008 79

Slide 80: Building Web Applications with the S2AP Les différentes options de déploiement WAR standard Support du conteneur Comportement identique à Tomcat Pur OSGi Bundle OSGi Pour les bibliothèques autonomes, les services globaux, de petites applications web Shared Lib WAR WAR ayant besoin de bundle(s) déployé(s) sur la plateforme Shared Lib WAR WAR mettant à disposition des classes / des services PAR (Platform Archive) Pour tous les modules d’une application Spring One 2008 Similaire à un EAR Spring One 2008 80

Slide 81: Building Web Applications with the S2AP Démos des différentes possibilités Particularités Les projets Eclipse peuvent être déployés dans la vue “Server” Shared Lib WAR : l’archive voit sa taille diminuer Shared Services WAR : utilisation d’un application contexte OSGi dans web.xml Des comportements par défaut pour Spring MVC • Plus de web.xml ! Génération d’un PAR à partir d’Eclipse Des traces pour chaque application La console d’admin fait apparaître les différents modes Spring One 2008 Spring One 2008 81

Slide 82: Building Web Applications with the S2AP Conclusion Bonne vue des différentes alternatives de déploiement Outillage Eclipse bien intégré et semble stable Les avantages de OSGi mis en évidence pour le web Questions : Gestion des mécaniques pas trop lourd ? Possibilité d’intégration continue, de déploiement automatique ? Les versions GA des produits prêtes ? Peu de documentation encore Spring One 2008 Spring One 2008 82

Slide 83: La conférence Les sessions Spring One 2008 Spring One 2008 83

Slide 84: Inside the SpringSource Application Platform Rob Harrop Objectifs : Architecture de la plateforme Les difficultés techniques Anecdotes / historique Le développement de la plateforme a commencé ces derniers mois Spring One 2008 Spring One 2008 84

Slide 85: Inside the SpringSource Application Platform Spring One 2008 Spring One 2008 85

Slide 86: Inside the SpringSource Application Platform Architecture Equinox : conteneur OSGi Eclipse SpringSource Dynamic Kernel Gestion de la concurrence, des IO Extension de Equinox : • Gestion des threads • Load class weaving Chargement à la demande des bundles • “small footprint” • Possibilité de récupérer les bundles depuis un dépôt Spring One 2008 Spring One 2008 86

Slide 87: Inside the SpringSource Application Platform Connexion à la console OSGi de la plateforme Spring One 2008 Spring One 2008 87

Slide 88: Inside the SpringSource Application Platform Démonstration de diagnostic d’erreur Effort particulier pour le diagnostic d’erreur Démo ClassNotFoundException (bean d’un contexte) Indique le bundle Indique le nom du bean Démo ClassNotFoundException (dans un manifeste) Propose une correction Spring One 2008 Spring One 2008 88

Slide 89: Inside the SpringSource Application Platform Gestion de la concurrence Une des points les plus difficiles Equinox pas threadsafe Solution Utilisation de Spring DM Utilisation des API de concurrence du JDK (java.util.concurrent) Spring One 2008 Spring One 2008 89

Slide 90: Inside the SpringSource Application Platform Misc. Modification de AspectJ pour les performances Possibilité de faire des dumps Snapshot de l’état du système Détection de deadlock Extension de Equinox pour le load time weaving Support de ClassFileTransformer (agent) Spring One 2008 Spring One 2008 90

Slide 91: Inside the SpringSource Application Platform Conclusion Plongeon intéressant dans la plateforme Retour expérience intéressant Naissance de la plateforme La plateforme est dans un état avancé Beta 6 Pas tout à fait prêt pour la production Stabilité générale Encore un peu pour les “hacker” Spring One 2008 Spring One 2008 91

Slide 92: La conférence Les sessions Spring One 2008 Spring One 2008 92

Slide 93: Classloading in OSGi Frederik Santens Lead architect à Ebit Objectifs Expliquer le système de classloading de OSGi Retour d’expérience sur le load time weaving sur une plateforme OSGi Spring One 2008 Spring One 2008 93

Slide 94: Classloading in OSGi Classloading Rappel sur le classloading “classique” À l’exécution, une classe est identifiée par Son nom complet Son classloader Le système de classloading par défaut est linéaire System, extension puis bootstrap classloaders Spring One 2008 Spring One 2008 94

Slide 95: Classloading in OSGi Classloading avec OSGi OSGi casse le modèle linéaire OSGi utilise un système de délégation en réseau Ce système permet le versionning Utilisation de plusieurs versions d’une même classe OSGi propose des règles de délégation Ex. : java.* est chargé par le classloader parent C’est ce type de classloading qui permet Une visibilité limitée des classes Et donc une meilleure encapsulation Spring One 2008 Spring One 2008 95

Slide 96: Classloading in OSGi Retour d’expérience et conclusion Retour d’expérience sur la mise en oeuvre du load time weaving en environnement OSGi But : faire du domaine driven design (injection de services dans les entités) Surmonter un ensemble de problème (limites de Spring DM) Conclusion Une session très technique et très pointue Technique de classloading intéressante OSGi présente encore des difficultés techniques ! Spring One 2008 Spring One 2008 96

Slide 97: Plan Actualités récentes sur Spring & SpringSource La conférence Restitution des sessions Conclusion Spring One 2008 Spring One 2008 97

Slide 98: Conclusion L’actualité de Spring et de SpringSource tourne autour de la plateforme SpringSource jette un pavé dans la mare ! Comme avec Spring en 2003-2004 SpringSource sort du sentier battu des standards JEE Cible de la “fronde” : le modèle de déploiement et les serveurs d’applications Spring One 2008 Spring One 2008 98

Slide 99: Conclusion Le modèle S2AP est intéressant de par ses cotés Modulaire Dynamique Sans oublier le versionning Le modèle reste encore jeune Mais devrait évoluer très rapidement (dans les mois qui viennent) Les autres serveurs d’applications et les standards vont-ils suivre ? Spring One 2008 Spring One 2008 99

Slide 100: Conclusion Les grands oubliés de cette restitution L’AOP Le Web La tools suite management Spring est toujours actif dans ces domaines Spring MVC et consorts Développement d’un projet JavaScript Spring attaque les Rich Internet Applications Mais l’actualité de l’année concernait le middleware ! Spring One 2008 Spring One 2008 100