SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
09/12/2010




EJB avancés
   Objectif : Etudier la configuration du contexte
    d’exécution
       Sa mise en œuvre implicite
       Et explicite


   Transactions
   Sécurité
   Timer
   Récapitulatif
   Performances




Les transactions
   Concept fondamental dans les applications distribuées
   Indispensables pour une exécution sûre des services
   Difficiles à mettre en œuvre
   Problèmes de performances




                                                                    1
09/12/2010




Atomicité
   Garantir une exécution tout ou rien
   Difficile sur un système centralisé
   Encore plus dans une architecture distribuée
       Nombreuses possibilités d'erreurs




Concurrence d'accès
   Cause de nombreux problèmes
   Comment garantir des exécutions correctes ?
   Et des performances acceptables ?




                                                           2
09/12/2010




Les propriétés ACID
   Atomicité
   Consistence
   Isolation
   Durabilité




Les modèles de transactions
   Flat
   Nested
   Flexible
   Distributed
   ...




                                      3
09/12/2010




Flat Transactions




Nested Transaction




                             4
09/12/2010




Distributed Transaction




Java Transaction Service
   Fournit l'interface avec des moniteurs transactionnels
       Communication avec les moniteurs (XAResource)
       Communication avec les serveurs d'application
        (TransactionManager)
       Communication avec les clients (UserTransaction)




                                                                     5
09/12/2010




Transactions et EJB
   Container Managed
       Le container se charge de tout
       Approche déclarative
   Bean Managed
       Transaction gérée par programme dans les beans
   Client Controlled
       Transaction programmée du coté client




Bean Managed




                                                                 6
09/12/2010




Container Managed




Client Controlled




                            7
09/12/2010




Gérer la visibilité des transactions ?




Les attributs de transaction (Container
managed)




                                                  8
09/12/2010




Exemple




Transactions et types de beans




                                         9
09/12/2010




L'interface UserTransaction




Statut des transactions




                                     10
09/12/2010




Utilisation dans un client

                                                     Encore de l'injection




L'isolation
   Garantir la cohérence des accès concurrent
       Sérialisabilité (les exécutions concurrentes sont équivalentes à
        des exécutions en série)
   Problèmes classiques
       Lecture impropre
       Perte de mise à jour
   Utilisations de verrous mais
       Deadlock
       Pénalités sur les performances




                                                                                    11
09/12/2010




Les niveaux d'isolation
   READ UNCOMMITED
       Pas d'isolation – on voit tout – on ne tient pas compte des
        verrous en lecture
   READ COMMITED
       On ne lit que des résultats commités – mais lectures non
        répétables
   REPEATABLE READ
       Les lectures sont répétables mais lecture fantomes (nouvelles
        données en cours de transaction)
   SERIALIZABLE
   Mise en oeuvre dépendante des serveurs d'application et
    des base de données




Container Managed Concurrency




                                                                               12
09/12/2010




Concurrent access + Timeout




Bean Managed Concurrency




                                     13
09/12/2010




Contrôle optimiste ou pessimiste
   Pessimiste : on évite les problèmes à priori
       Problèmes de performance
   Optimiste : on vérifie a posteriori qu'il n'y en a pas eu
       Meilleure performance
       Risque de perdre du travail




Conclusion
   Les transactions sont faciles à mettre en oeuvre
   Mais difficile à contrôler
       Quelles garanties on veut avoir ?
       Quels scénarios sont les plus probables ?
       Quels compromis entre performances et sureté de l'exécution
        sont acceptables ?




                                                                             14
09/12/2010




La sécurité
   Aspect fondamental des applications distribuées
   Quels sont les risques ? Quels sont les parties critiques
    de l'application




Les fonctions
   Authentification
       Est-tu bien celui que tu prétends être ?
   Autorisation
       As-tu bien le droit de faire ça ?
   Intégrité des données
       Les données peuvent elles être modifiées
   Confidentialité des données
       As-tu le droit de lire ces données ?




                                                                       15
09/12/2010




Sécurité des applications Web
   Premier point d'interactions avec les utilisateurs
   Dépend des specs servlet et J2EE
   3 modes d'authentification
       HTTP Basic and Digest
       Form Based
       HTTPS Client authentification (certificat)




                                                                16
09/12/2010




Autorisation dans les applications Web
   Déclarative
       Règles de sécurité dans le descripteur
   Programmée
       Contrôles de sécurité dans les servlets
       Contexte de sécurité




Confidentialité/Intégrité
   Basé sur un transport sécurisé (HTTPS)
   Contraintes dans le descripteur de déploiement
    (CONFIDENTIAL, INTEGRAL, NONE)




                                                            17
09/12/2010




Sécurité dans les EJB
   Authentification basée sur JAAS
       Java Authentication and autorisation Service




Subject
   Container pour principal et credentials
                               The Subject in Detail

                                     Principal
                                      Principal
                                        Principal


                                                  Public
                                                   Public
                                                Credential
                           Subject                   Public
                                                 Credential
                                                   Credential


                                      Private
                                        Private
                                     Credential
                                          Private
                                      Credential
                                        Credential




                                                                       18
09/12/2010




Principal
   Identifie un Subject
   Un Subject = plusieurs principals


1. package java.security;
2. public interface Principal {
3.     ...
4.     public String getName();
5. }




Role, User, Group




                                               19
09/12/2010




Différents login modules

                     Pluggable Authentication

                             Application


                            Login Context


                            Login Modules
                NTLogin       UnixLogin      MyLogin
                Module         Module        Module

                JndiLogin    Krb5Login       DbLogin
                 Module       Module         Module


                NT              Unix           Biometric
           Authentication   Authentication   Authentication

                              Kerberos
           LDAP Server                          RDBMS
                            Authentication




Le fonctionnement de JAAS




                                                                     20
09/12/2010




Login Configuration




Exemple de login




                             21
09/12/2010




Le CallBackHandler




Les autorisations
   Autorisations programmées
       Codées dans les Beans
   Autorisations déclarées
       Le container prend en charge le contrôle des autorisations




                                                                            22
09/12/2010




Les roles
   Un rôle = une collection d'identités
       Employé
       Etudiant
       Administrateurs
       ...




La déclaration de la sécurité
                                             Les roles utilisés


                                             Le rôle par défaut




                                              Le rôle autorisé




                                           Tout le monde peut
                                                  le faire




                                                                         23
09/12/2010




Les annotations
   @RolesAllowed
   @PermitAll
   @DenyAll
   La définition au niveau de la méthode surcharge la
    définition au niveau de la classe




Progagation de la sécurité
   @RunAs(''admin'')
       Surcharge le rôle du contexte de l'appelant
       La méthode va s'exécuter avec le rôle admin




                                                                24
09/12/2010




La propagation de la sécurité
   L'identité et les rôles sont transmis par le contexte



                                         L'identité de l'appelant




                                       Vérification de son rôle




Autre exemple (from Oracle)




                                                                           25
09/12/2010




Description par fichier de configuration




Declaratif ou programmée
   Déclaratif :
       Découplage du code métier et de la définition de la sécurité
       Mais .... c'est insuffisant
   Programmée
       Complique le code
       Mais permet un contrôle au niveau des instances




                                                                              26
09/12/2010




Sécurité et WebServices
   Comment sécuriser des appels de Web Services de bout
    en bout




XML Signature et XML Encryption
   Permettent le transfert de documents XML entre des
    noeuds inconnus
   Les parties cryptées ne seront lisibles que par les noeuds
    qui connaissent les clés.
   Tout le message n'a pas besoin d'être crypté/signé




                                                                        27
09/12/2010




SAML
   Security Assertion Markup Language
   Assertion = Security token
   Utilisées par les PEP (Policy Enforcement Point)
   SAML Authority : emets les token
       Token = le sujet est authentifié par moi ou j'autorise le sujet à
        faire A et B ou le sujet a le rôle X
   Le PEP doit faire confiance à l'autorité




WS-Security
   The security context is in the message




                                                                                   28
09/12/2010




Conclusion sur la sécurité
   Encore difficile à mettre en oeuvre
   Encore plus dans un environnement distribué
   Nombreux standards
       Ça progresse dans le domaine des Web Services




EJB Timer
   Comment déclencher des actions à des instants
    particuliers
       Opérations de maintenance
       Batch processing
       Deadline dans des workflows
   Comment permettre d'appeler des services à des
    instants donnés




                                                               29
09/12/2010




Timer Service API
   javax.ejb.TimedObject
   javax.ejb.Timer
   javax.ejb.TimerHandle
   javax.ejb.TimerService




TimerService
   Permet de créer un Timer




                                      30
09/12/2010




Interactions avec les EJB




Création automatique de Timers




                                        31
09/12/2010




EJB et Timer
   Portable
   Facile à mettre en oeuvre
   Granularité des services
   Limitations dans la définition des timers




L’exemple Duke Bank




                                                       32
09/12/2010




La structure de l’application




Les Session Beans
   AccountController
   CustomerController
   TxController

       Implantation des méthodes métiers de l’application
       Facade pour les clients
       Masquent la représentation du modèle




                                                                    33
09/12/2010




       34
09/12/2010




Les Entity Classes




Entity Account




                            35
09/12/2010




Les requêtes




La table




                      36
09/12/2010




Application d’administration




Application Web




                                      37
09/12/2010




EJB et Web
   CustomerBean
       Composant représentant le client dans la vue




Performance
   http://java.sun.com/developer/technicalArticles/ebeans/ej
    b_30/
   Conception des applications
       Un appel par cas d’utilisation
       Stateful vs Stateless
       Gestion de la persistence
       Gestion des différents niveaux de cache
       Consistence vs availability




                                                                       38
09/12/2010




                         That’s all folks




http://www.youtube.com/watch?v=gBzJGckMYO4




                                                    39

Weitere ähnliche Inhalte

Andere mochten auch

Holger Zechmann Vortrag Aktiencamp Berlin
Holger Zechmann Vortrag Aktiencamp BerlinHolger Zechmann Vortrag Aktiencamp Berlin
Holger Zechmann Vortrag Aktiencamp Berlinmystocks
 
Presentación1
Presentación1Presentación1
Presentación1ISREAEL123
 
Das Wunder Von Bern
Das Wunder Von BernDas Wunder Von Bern
Das Wunder Von Bernguestbea553
 
Actualités unsa hebdo - 12 mars 2012
Actualités   unsa hebdo - 12 mars 2012Actualités   unsa hebdo - 12 mars 2012
Actualités unsa hebdo - 12 mars 2012Miguel Iglesias
 
Einschulung
EinschulungEinschulung
Einschulungtiny999
 
personnes handicapées et l'emploi : le bilan 2010 de l'Agefiph
personnes handicapées et l'emploi  : le bilan 2010 de l'Agefiphpersonnes handicapées et l'emploi  : le bilan 2010 de l'Agefiph
personnes handicapées et l'emploi : le bilan 2010 de l'AgefiphChristophe Lemesre
 
L’indice Jones Lang LaSalle de la logistique
L’indice Jones Lang LaSalle de la logistiqueL’indice Jones Lang LaSalle de la logistique
L’indice Jones Lang LaSalle de la logistiqueJLL France
 
Islam i Europa - en trussel mod det europæiske demokrati?
Islam i Europa - en trussel mod det europæiske demokrati?Islam i Europa - en trussel mod det europæiske demokrati?
Islam i Europa - en trussel mod det europæiske demokrati?Rasmus Aage
 
Best of bowers & wilkins - février
Best of    bowers & wilkins - févrierBest of    bowers & wilkins - février
Best of bowers & wilkins - févrierB&W Group France
 
Der Technologieradar des Vereins Zukunftswerkstatt Kultur- und Wissensvermitt...
Der Technologieradar des Vereins Zukunftswerkstatt Kultur- und Wissensvermitt...Der Technologieradar des Vereins Zukunftswerkstatt Kultur- und Wissensvermitt...
Der Technologieradar des Vereins Zukunftswerkstatt Kultur- und Wissensvermitt...Christoph Deeg
 
Opendata - – warum eine freie Gesellschaft offene Daten braucht
Opendata - – warum eine freie Gesellschaft offene Daten brauchtOpendata - – warum eine freie Gesellschaft offene Daten braucht
Opendata - – warum eine freie Gesellschaft offene Daten brauchtOpen Knowledge Foundation
 
Dresdner zwinger
Dresdner zwingerDresdner zwinger
Dresdner zwingerLagimer
 
Mobile Applikationen im Tourismus
Mobile Applikationen im TourismusMobile Applikationen im Tourismus
Mobile Applikationen im TourismusRealizing Progress
 

Andere mochten auch (16)

Holger Zechmann Vortrag Aktiencamp Berlin
Holger Zechmann Vortrag Aktiencamp BerlinHolger Zechmann Vortrag Aktiencamp Berlin
Holger Zechmann Vortrag Aktiencamp Berlin
 
Presentación1
Presentación1Presentación1
Presentación1
 
Das Wunder Von Bern
Das Wunder Von BernDas Wunder Von Bern
Das Wunder Von Bern
 
Actualités unsa hebdo - 12 mars 2012
Actualités   unsa hebdo - 12 mars 2012Actualités   unsa hebdo - 12 mars 2012
Actualités unsa hebdo - 12 mars 2012
 
Einschulung
EinschulungEinschulung
Einschulung
 
personnes handicapées et l'emploi : le bilan 2010 de l'Agefiph
personnes handicapées et l'emploi  : le bilan 2010 de l'Agefiphpersonnes handicapées et l'emploi  : le bilan 2010 de l'Agefiph
personnes handicapées et l'emploi : le bilan 2010 de l'Agefiph
 
Compte rendu job tour
Compte rendu job tourCompte rendu job tour
Compte rendu job tour
 
Français ii bi partiel 2
Français ii bi partiel 2Français ii bi partiel 2
Français ii bi partiel 2
 
L’indice Jones Lang LaSalle de la logistique
L’indice Jones Lang LaSalle de la logistiqueL’indice Jones Lang LaSalle de la logistique
L’indice Jones Lang LaSalle de la logistique
 
Islam i Europa - en trussel mod det europæiske demokrati?
Islam i Europa - en trussel mod det europæiske demokrati?Islam i Europa - en trussel mod det europæiske demokrati?
Islam i Europa - en trussel mod det europæiske demokrati?
 
Best of bowers & wilkins - février
Best of    bowers & wilkins - févrierBest of    bowers & wilkins - février
Best of bowers & wilkins - février
 
Der Technologieradar des Vereins Zukunftswerkstatt Kultur- und Wissensvermitt...
Der Technologieradar des Vereins Zukunftswerkstatt Kultur- und Wissensvermitt...Der Technologieradar des Vereins Zukunftswerkstatt Kultur- und Wissensvermitt...
Der Technologieradar des Vereins Zukunftswerkstatt Kultur- und Wissensvermitt...
 
Opendata - – warum eine freie Gesellschaft offene Daten braucht
Opendata - – warum eine freie Gesellschaft offene Daten brauchtOpendata - – warum eine freie Gesellschaft offene Daten braucht
Opendata - – warum eine freie Gesellschaft offene Daten braucht
 
Dresdner zwinger
Dresdner zwingerDresdner zwinger
Dresdner zwinger
 
Mobile Applikationen im Tourismus
Mobile Applikationen im TourismusMobile Applikationen im Tourismus
Mobile Applikationen im Tourismus
 
Bismut2
Bismut2Bismut2
Bismut2
 

Ähnlich wie Ejb advanced2010

SQL Server et SharePoint le couple de l'année 2012
SQL Server et SharePoint le couple de l'année 2012SQL Server et SharePoint le couple de l'année 2012
SQL Server et SharePoint le couple de l'année 2012Patrick Guimonet
 
2011-12-14 ASIP Santé JNI "Point d’étape sur la DMP Compatibilité"
2011-12-14 ASIP Santé JNI "Point d’étape sur la DMP Compatibilité"2011-12-14 ASIP Santé JNI "Point d’étape sur la DMP Compatibilité"
2011-12-14 ASIP Santé JNI "Point d’étape sur la DMP Compatibilité"ASIP Santé
 
Comment utiliser les réseaux sociaux?
Comment utiliser les réseaux sociaux? Comment utiliser les réseaux sociaux?
Comment utiliser les réseaux sociaux? Minnovarc
 
Communauté urbaine de Strasbourg_Sandrine André_Services mobiles sans contact
Communauté urbaine de Strasbourg_Sandrine André_Services mobiles sans contact Communauté urbaine de Strasbourg_Sandrine André_Services mobiles sans contact
Communauté urbaine de Strasbourg_Sandrine André_Services mobiles sans contact Metro'num 2011
 
Flash Intel Te28 F160 C3 Bd70
Flash Intel Te28 F160 C3 Bd70Flash Intel Te28 F160 C3 Bd70
Flash Intel Te28 F160 C3 Bd70Sais Abdelkrim
 
Témoignage : ALCI - La place du robot dans l'agroalimentaire
Témoignage : ALCI - La place du robot dans l'agroalimentaire Témoignage : ALCI - La place du robot dans l'agroalimentaire
Témoignage : ALCI - La place du robot dans l'agroalimentaire Qualiméditerranée
 
Spécificité de l'innovation pour les PME agroalimentaires et outil d'évaluati...
Spécificité de l'innovation pour les PME agroalimentaires et outil d'évaluati...Spécificité de l'innovation pour les PME agroalimentaires et outil d'évaluati...
Spécificité de l'innovation pour les PME agroalimentaires et outil d'évaluati...Qualiméditerranée
 
Accueil numérique médoc océan bacalab 141211
Accueil numérique médoc océan   bacalab 141211Accueil numérique médoc océan   bacalab 141211
Accueil numérique médoc océan bacalab 141211MONA
 
Luxury in Europe in 2011 / Le luxe en Europe en 2011
Luxury in Europe in 2011 / Le luxe en Europe en 2011Luxury in Europe in 2011 / Le luxe en Europe en 2011
Luxury in Europe in 2011 / Le luxe en Europe en 2011CHRISCAIS
 
Réussir des exercices de prospective : méthodes et conseils
Réussir des exercices de prospective : méthodes et conseilsRéussir des exercices de prospective : méthodes et conseils
Réussir des exercices de prospective : méthodes et conseilsQualiméditerranée
 
Flasher Une Dreambox 7020
Flasher Une Dreambox 7020Flasher Une Dreambox 7020
Flasher Une Dreambox 7020Sais Abdelkrim
 
Accueil numérique ot val de garonne bacalab 141211
Accueil numérique ot val de garonne   bacalab 141211Accueil numérique ot val de garonne   bacalab 141211
Accueil numérique ot val de garonne bacalab 141211MONA
 
Lyonnaise des Eaux_Laurent Vacher Bruel_Compteurs intelligents
Lyonnaise des Eaux_Laurent Vacher Bruel_Compteurs intelligentsLyonnaise des Eaux_Laurent Vacher Bruel_Compteurs intelligents
Lyonnaise des Eaux_Laurent Vacher Bruel_Compteurs intelligentsMetro'num 2011
 
Grand Lyon jean coldefy Intermodalité, le voyage sans couture
Grand Lyon jean coldefy Intermodalité, le voyage sans couture Grand Lyon jean coldefy Intermodalité, le voyage sans couture
Grand Lyon jean coldefy Intermodalité, le voyage sans couture Metro'num 2011
 
2011-12-14 ASIP Santé JNI "Retour sur la revue de projet DMP et bilan du dépl...
2011-12-14 ASIP Santé JNI "Retour sur la revue de projet DMP et bilan du dépl...2011-12-14 ASIP Santé JNI "Retour sur la revue de projet DMP et bilan du dépl...
2011-12-14 ASIP Santé JNI "Retour sur la revue de projet DMP et bilan du dépl...ASIP Santé
 
Accueil numérique ot biscarosse bacalab 141211
Accueil numérique ot biscarosse   bacalab 141211Accueil numérique ot biscarosse   bacalab 141211
Accueil numérique ot biscarosse bacalab 141211MONA
 
Conference intelligence
Conference intelligenceConference intelligence
Conference intelligenceFing
 

Ähnlich wie Ejb advanced2010 (20)

SQL Server et SharePoint le couple de l'année 2012
SQL Server et SharePoint le couple de l'année 2012SQL Server et SharePoint le couple de l'année 2012
SQL Server et SharePoint le couple de l'année 2012
 
2011-12-14 ASIP Santé JNI "Point d’étape sur la DMP Compatibilité"
2011-12-14 ASIP Santé JNI "Point d’étape sur la DMP Compatibilité"2011-12-14 ASIP Santé JNI "Point d’étape sur la DMP Compatibilité"
2011-12-14 ASIP Santé JNI "Point d’étape sur la DMP Compatibilité"
 
Comment utiliser les réseaux sociaux?
Comment utiliser les réseaux sociaux? Comment utiliser les réseaux sociaux?
Comment utiliser les réseaux sociaux?
 
Communauté urbaine de Strasbourg_Sandrine André_Services mobiles sans contact
Communauté urbaine de Strasbourg_Sandrine André_Services mobiles sans contact Communauté urbaine de Strasbourg_Sandrine André_Services mobiles sans contact
Communauté urbaine de Strasbourg_Sandrine André_Services mobiles sans contact
 
Flash Intel Te28 F160 C3 Bd70
Flash Intel Te28 F160 C3 Bd70Flash Intel Te28 F160 C3 Bd70
Flash Intel Te28 F160 C3 Bd70
 
Témoignage : ALCI - La place du robot dans l'agroalimentaire
Témoignage : ALCI - La place du robot dans l'agroalimentaire Témoignage : ALCI - La place du robot dans l'agroalimentaire
Témoignage : ALCI - La place du robot dans l'agroalimentaire
 
Spécificité de l'innovation pour les PME agroalimentaires et outil d'évaluati...
Spécificité de l'innovation pour les PME agroalimentaires et outil d'évaluati...Spécificité de l'innovation pour les PME agroalimentaires et outil d'évaluati...
Spécificité de l'innovation pour les PME agroalimentaires et outil d'évaluati...
 
Accueil numérique médoc océan bacalab 141211
Accueil numérique médoc océan   bacalab 141211Accueil numérique médoc océan   bacalab 141211
Accueil numérique médoc océan bacalab 141211
 
Luxury in Europe in 2011 / Le luxe en Europe en 2011
Luxury in Europe in 2011 / Le luxe en Europe en 2011Luxury in Europe in 2011 / Le luxe en Europe en 2011
Luxury in Europe in 2011 / Le luxe en Europe en 2011
 
Réussir des exercices de prospective : méthodes et conseils
Réussir des exercices de prospective : méthodes et conseilsRéussir des exercices de prospective : méthodes et conseils
Réussir des exercices de prospective : méthodes et conseils
 
Flasher Une Dreambox 7020
Flasher Une Dreambox 7020Flasher Une Dreambox 7020
Flasher Une Dreambox 7020
 
Accueil numérique ot val de garonne bacalab 141211
Accueil numérique ot val de garonne   bacalab 141211Accueil numérique ot val de garonne   bacalab 141211
Accueil numérique ot val de garonne bacalab 141211
 
Lyonnaise des Eaux_Laurent Vacher Bruel_Compteurs intelligents
Lyonnaise des Eaux_Laurent Vacher Bruel_Compteurs intelligentsLyonnaise des Eaux_Laurent Vacher Bruel_Compteurs intelligents
Lyonnaise des Eaux_Laurent Vacher Bruel_Compteurs intelligents
 
Introduction au cloud computing Parisfx 2011
Introduction au cloud computing Parisfx 2011Introduction au cloud computing Parisfx 2011
Introduction au cloud computing Parisfx 2011
 
Grand Lyon jean coldefy Intermodalité, le voyage sans couture
Grand Lyon jean coldefy Intermodalité, le voyage sans couture Grand Lyon jean coldefy Intermodalité, le voyage sans couture
Grand Lyon jean coldefy Intermodalité, le voyage sans couture
 
Titanium
Titanium Titanium
Titanium
 
2011-12-14 ASIP Santé JNI "Retour sur la revue de projet DMP et bilan du dépl...
2011-12-14 ASIP Santé JNI "Retour sur la revue de projet DMP et bilan du dépl...2011-12-14 ASIP Santé JNI "Retour sur la revue de projet DMP et bilan du dépl...
2011-12-14 ASIP Santé JNI "Retour sur la revue de projet DMP et bilan du dépl...
 
Accueil numérique ot biscarosse bacalab 141211
Accueil numérique ot biscarosse   bacalab 141211Accueil numérique ot biscarosse   bacalab 141211
Accueil numérique ot biscarosse bacalab 141211
 
Conference intelligence
Conference intelligenceConference intelligence
Conference intelligence
 
50e des cast codeurs
50e des cast codeurs50e des cast codeurs
50e des cast codeurs
 

Ejb advanced2010

  • 1. 09/12/2010 EJB avancés  Objectif : Etudier la configuration du contexte d’exécution  Sa mise en œuvre implicite  Et explicite  Transactions  Sécurité  Timer  Récapitulatif  Performances Les transactions  Concept fondamental dans les applications distribuées  Indispensables pour une exécution sûre des services  Difficiles à mettre en œuvre  Problèmes de performances 1
  • 2. 09/12/2010 Atomicité  Garantir une exécution tout ou rien  Difficile sur un système centralisé  Encore plus dans une architecture distribuée  Nombreuses possibilités d'erreurs Concurrence d'accès  Cause de nombreux problèmes  Comment garantir des exécutions correctes ?  Et des performances acceptables ? 2
  • 3. 09/12/2010 Les propriétés ACID  Atomicité  Consistence  Isolation  Durabilité Les modèles de transactions  Flat  Nested  Flexible  Distributed  ... 3
  • 5. 09/12/2010 Distributed Transaction Java Transaction Service  Fournit l'interface avec des moniteurs transactionnels  Communication avec les moniteurs (XAResource)  Communication avec les serveurs d'application (TransactionManager)  Communication avec les clients (UserTransaction) 5
  • 6. 09/12/2010 Transactions et EJB  Container Managed  Le container se charge de tout  Approche déclarative  Bean Managed  Transaction gérée par programme dans les beans  Client Controlled  Transaction programmée du coté client Bean Managed 6
  • 8. 09/12/2010 Gérer la visibilité des transactions ? Les attributs de transaction (Container managed) 8
  • 11. 09/12/2010 Utilisation dans un client Encore de l'injection L'isolation  Garantir la cohérence des accès concurrent  Sérialisabilité (les exécutions concurrentes sont équivalentes à des exécutions en série)  Problèmes classiques  Lecture impropre  Perte de mise à jour  Utilisations de verrous mais  Deadlock  Pénalités sur les performances 11
  • 12. 09/12/2010 Les niveaux d'isolation  READ UNCOMMITED  Pas d'isolation – on voit tout – on ne tient pas compte des verrous en lecture  READ COMMITED  On ne lit que des résultats commités – mais lectures non répétables  REPEATABLE READ  Les lectures sont répétables mais lecture fantomes (nouvelles données en cours de transaction)  SERIALIZABLE  Mise en oeuvre dépendante des serveurs d'application et des base de données Container Managed Concurrency 12
  • 13. 09/12/2010 Concurrent access + Timeout Bean Managed Concurrency 13
  • 14. 09/12/2010 Contrôle optimiste ou pessimiste  Pessimiste : on évite les problèmes à priori  Problèmes de performance  Optimiste : on vérifie a posteriori qu'il n'y en a pas eu  Meilleure performance  Risque de perdre du travail Conclusion  Les transactions sont faciles à mettre en oeuvre  Mais difficile à contrôler  Quelles garanties on veut avoir ?  Quels scénarios sont les plus probables ?  Quels compromis entre performances et sureté de l'exécution sont acceptables ? 14
  • 15. 09/12/2010 La sécurité  Aspect fondamental des applications distribuées  Quels sont les risques ? Quels sont les parties critiques de l'application Les fonctions  Authentification  Est-tu bien celui que tu prétends être ?  Autorisation  As-tu bien le droit de faire ça ?  Intégrité des données  Les données peuvent elles être modifiées  Confidentialité des données  As-tu le droit de lire ces données ? 15
  • 16. 09/12/2010 Sécurité des applications Web  Premier point d'interactions avec les utilisateurs  Dépend des specs servlet et J2EE  3 modes d'authentification  HTTP Basic and Digest  Form Based  HTTPS Client authentification (certificat) 16
  • 17. 09/12/2010 Autorisation dans les applications Web  Déclarative  Règles de sécurité dans le descripteur  Programmée  Contrôles de sécurité dans les servlets  Contexte de sécurité Confidentialité/Intégrité  Basé sur un transport sécurisé (HTTPS)  Contraintes dans le descripteur de déploiement (CONFIDENTIAL, INTEGRAL, NONE) 17
  • 18. 09/12/2010 Sécurité dans les EJB  Authentification basée sur JAAS  Java Authentication and autorisation Service Subject  Container pour principal et credentials The Subject in Detail Principal Principal Principal Public Public Credential Subject Public Credential Credential Private Private Credential Private Credential Credential 18
  • 19. 09/12/2010 Principal  Identifie un Subject  Un Subject = plusieurs principals 1. package java.security; 2. public interface Principal { 3. ... 4. public String getName(); 5. } Role, User, Group 19
  • 20. 09/12/2010 Différents login modules Pluggable Authentication Application Login Context Login Modules NTLogin UnixLogin MyLogin Module Module Module JndiLogin Krb5Login DbLogin Module Module Module NT Unix Biometric Authentication Authentication Authentication Kerberos LDAP Server RDBMS Authentication Le fonctionnement de JAAS 20
  • 22. 09/12/2010 Le CallBackHandler Les autorisations  Autorisations programmées  Codées dans les Beans  Autorisations déclarées  Le container prend en charge le contrôle des autorisations 22
  • 23. 09/12/2010 Les roles  Un rôle = une collection d'identités  Employé  Etudiant  Administrateurs  ... La déclaration de la sécurité Les roles utilisés Le rôle par défaut Le rôle autorisé Tout le monde peut le faire 23
  • 24. 09/12/2010 Les annotations  @RolesAllowed  @PermitAll  @DenyAll  La définition au niveau de la méthode surcharge la définition au niveau de la classe Progagation de la sécurité  @RunAs(''admin'')  Surcharge le rôle du contexte de l'appelant  La méthode va s'exécuter avec le rôle admin 24
  • 25. 09/12/2010 La propagation de la sécurité  L'identité et les rôles sont transmis par le contexte L'identité de l'appelant Vérification de son rôle Autre exemple (from Oracle) 25
  • 26. 09/12/2010 Description par fichier de configuration Declaratif ou programmée  Déclaratif :  Découplage du code métier et de la définition de la sécurité  Mais .... c'est insuffisant  Programmée  Complique le code  Mais permet un contrôle au niveau des instances 26
  • 27. 09/12/2010 Sécurité et WebServices  Comment sécuriser des appels de Web Services de bout en bout XML Signature et XML Encryption  Permettent le transfert de documents XML entre des noeuds inconnus  Les parties cryptées ne seront lisibles que par les noeuds qui connaissent les clés.  Tout le message n'a pas besoin d'être crypté/signé 27
  • 28. 09/12/2010 SAML  Security Assertion Markup Language  Assertion = Security token  Utilisées par les PEP (Policy Enforcement Point)  SAML Authority : emets les token  Token = le sujet est authentifié par moi ou j'autorise le sujet à faire A et B ou le sujet a le rôle X  Le PEP doit faire confiance à l'autorité WS-Security  The security context is in the message 28
  • 29. 09/12/2010 Conclusion sur la sécurité  Encore difficile à mettre en oeuvre  Encore plus dans un environnement distribué  Nombreux standards  Ça progresse dans le domaine des Web Services EJB Timer  Comment déclencher des actions à des instants particuliers  Opérations de maintenance  Batch processing  Deadline dans des workflows  Comment permettre d'appeler des services à des instants donnés 29
  • 30. 09/12/2010 Timer Service API  javax.ejb.TimedObject  javax.ejb.Timer  javax.ejb.TimerHandle  javax.ejb.TimerService TimerService  Permet de créer un Timer 30
  • 31. 09/12/2010 Interactions avec les EJB Création automatique de Timers 31
  • 32. 09/12/2010 EJB et Timer  Portable  Facile à mettre en oeuvre  Granularité des services  Limitations dans la définition des timers L’exemple Duke Bank 32
  • 33. 09/12/2010 La structure de l’application Les Session Beans  AccountController  CustomerController  TxController  Implantation des méthodes métiers de l’application  Facade pour les clients  Masquent la représentation du modèle 33
  • 38. 09/12/2010 EJB et Web  CustomerBean  Composant représentant le client dans la vue Performance  http://java.sun.com/developer/technicalArticles/ebeans/ej b_30/  Conception des applications  Un appel par cas d’utilisation  Stateful vs Stateless  Gestion de la persistence  Gestion des différents niveaux de cache  Consistence vs availability 38
  • 39. 09/12/2010 That’s all folks http://www.youtube.com/watch?v=gBzJGckMYO4 39