2007-2008 m2pgi srr - gicom 1 & 2 mp2gi sle – pm2m
DESCRIPTION
2007-2008 M2PGI SRR - GICOM 1 & 2 MP2GI SLE – PM2M. Sara Bouchenak (GICOM 1) Didier Donsez & Johann Bourcier (GICOM 2 – PM2M) Université Joseph Fourier (Grenoble 1) [email protected]. Sommaire. Objectifs fonctionnels Objectifs pédagogiques Architecture globale Organisation et planning - PowerPoint PPT PresentationTRANSCRIPT
2007-2008 M2PGI SRR - GICOM 1 & 2MP2GI SLE – PM2M
Sara Bouchenak (GICOM 1)Didier Donsez & Johann Bourcier (GICOM 2 –
PM2M)
Université Joseph Fourier (Grenoble 1)[email protected]
Sommaire Objectifs fonctionnels Objectifs pédagogiques Architecture globale Organisation et planning Résultats attendus
Objectifs pédagogiques Intégration des plusieurs applications
en utilisant plusieurs technologies Toucher du doigt les mécanismes internes
des intergiciels Utiliser des outils de développement Organiser vos déploiements
GICOM
Le point de départ : eCOM (JavaEE)
EJB ServerWeb Server
Servlet/JSPServlet/JSPRMI
EntityBean
EntityBean
WML/WMLC/iMode
WAP/UMTS
HTML/XML
HTTPDidier
Donsez
WebBrowser
SOAP EngineSOAP Engine
RDBMS
DataSourceJDBC
DidierDonsez
SOAP
HTTP/SMTP
EIS
ERP
DataSourceJCASessionBean
SessionBean
MsgDrivenBean
MsgDrivenBean
JMSJMS MOM
MessageRepository
JMS
JavaApps
RMIDidier
Donsez
Javaapp
ECOM
WebBrowser
StandaloneApplication
MobilePhone
Serveur J2EE eCOM Serveur WSFournisseur 1
Serveur WSFournisseur N
JSP/Servlets
EJB BDR
Serveur WSParité Devise
Annuaire UDDIFournisseurs
Serveur CORBABanque B1
Annuaire CORBAdes Banques
Serveur CORBAAgence A1 de B1Serveur CORBA
Agence A11 de B1
Serveur CORBABanque B2
Serveur CORBAAgence A1 de B2Serveur CORBA
Agence A21 de B2
IIOP
IIOP
SOAPHTTP
SOAPHTTP
HTMLHTTP
cHTMLHTTP
WMLWAP
SOAPJMS
Architecture globale de GICOM
Architecture globale de GICOMWeb
Browser
StandaloneApplication
MobilePhone
Serveur J2EE eCOM Serveur WSFournisseur 1
Serveur WSFournisseur N
JSP/Servlets
EJB BDR
Serveur WSParité Devise
Annuaire UDDIFournisseurs
Serveur CORBABanque B1
Annuaire CORBAdes Banques
Serveur CORBAAgence A1 de B1Serveur CORBA
Agence A11 de B1
Serveur CORBABanque B2
Serveur CORBAAgence A1 de B2Serveur CORBA
Agence A21 de B2
IIOP
IIOP
SOAPHTTP
SOAPHTTP
HTMLHTTP
cHTMLHTTP
WMLWAP
SOAPJMS
ConsoleJMX
Les étapes de GICOM1. Sous système bancaire2. Sous système bancaire persistant3. Sous système bancaire persistant et fiabilisé4. eCOM étendu
et intégration du sous-système bancaire
5. Sécurisation des communications6. Sous système fournisseur7. Déploiement des servants8. Administration et supervision des serveurs
Etape 1 : eCOM étenduBut: voir des techniques avancées J2EE1. Préliminaires
Order comporte la devise utilisée et la parité avec l’Euro MailerBean (dans les exemples de JOnAS) doit être
installé
2. Intégration du sous-système bancaire Account disparaît pour être remplacer par un bean
FundTransfer
3. Initialisation des parités des devises utilisés via un vrai WebService public Rafraîchissement de façon périodique (EB Timer)
4. Sécuriser l’interface Web avec SSL (étape 5) Certificat X509 pour le serveur
5. Fiabiliser MailerBean (non traité en 07-08) javax.ejb.SessionSynchronization pour le Stateful Session
Etape 1 : eCOM étendu(non traité en 07-08)
But: voir des technologies liées à l’informatique mobile
WAP, iMODE, J2ME
5. Prise en compte des terminaux mobiles Par les servlets et les JSP MIDLet consultant le catalogue
MobilePhone
Etape 2 : Sous système bancaire Techniques CORBA
Modèle de programmation des servants par héritage (non traité) par délégation (implémentation fournie)
Serveur Générique (celui du TP SAR) À compléter (configurations .properties, .xml, .json au choix)
Fonctionnalités du sous système bancaire gestion des comptes bancaires distribuées sur plusieurs
serveurs 1 IDL commun : Interopérabilité entre trinome Plusieurs banques (implémentations différentes : 1 par
trinome) 2 types de User-Agent:
C# versus Java TUI versus GUI
Site clientSite client
Site Service de NommageSite Service de Nommage
Serveur applicatifServeur applicatif
Objet NamingContext
Objeto1
AppletApplicationServlet/SB
1 : bind("nomSymbolique",o1)
2 : resolve("nomSymbolique")
2 : o2=o1.m1()
Objeto2
3 : res=o2.m2(o1)
Etape 2 (i) : Rappel CORBA
User-Agent (Java,C#)User-Agent (Java,C#) Site Service de NommageSite Service de Nommage
Site d’un BanqueSite d’un Banque
Site d’une AgenceSite d’une Agence
ObjetNamingContext
ObjetBranch
ObjetBranch
ObjetsAccount
ObjetBranch
ObjetsCustomer
ObjetBank
ApplicationApplet
Servlet/SB
1 : bind(bankName,bank)
3 : resolve(bankName)
4 : getBranch(brn)
5 : getCustomer(custName)
6 : getAccount(acn)
2 : registerBranch(brn,b)
Notationopérations effectuées au redémarrage des serveurs
opérations effectuées pour le compte de l’UA
Etape 2 (ii) : Sous système bancaire
Etape 3 : Sous système bancaire persistant
Objectif Rendre les objets persistants
aux arrêts (shutdown,crash) des serveurs Techniques CORBA
Objets persistants 2 méthodes load(), save()
PPOA (PersistentPOA) POM (Persistent Object Manager)
Affectation des ID Activation/Passivation des objets
Externalisation des objets (1 par fichier) Ecriture atomique (par fichier ombre)
A intégrer au serveur générique
Etape 3 : Sous système bancaire persistantActivation d’un objet avec le PPOA et le POM
orb
RootPOA PersistentPOA
POATie
PersistentObject
Activator
POM
PersistentState
AOMidref
request
<host,port>
<poa>
<id>
AOMidref
XXPOATie
ObjectXX
id.ser
Object YYhéritant
d’unYYPOA
Etape 4 : Sous système bancaire persistant et fiabilisé
Objectif Rendre ACID plusieurs opérations sur les objets
Account Techniques
Objets recoverables Retour à la valeur précédente en cas d’abandon
Moniteur transactionnel pilotant la validation à 2 phases 1 GTM global et 1 LTM pour chaque serveur
Contrôle de concurrence par estampillage Intégration à eCOM
Par FundTransfer javax.ejb.SessionSynchronization Stateful Session
Etape 4 : Sous système bancaire persistant et fiabilisé
Architecture
SiteTM globale
Site Agence
TMLocal
ObjReco
Site Agence
ObjReco
Site Agence
ObjReco
Journal
TMLocal
Journal
TMLocal
Journal
TMGlobal
Journal
Site Initiateur(bean FundTransfer)
serveurcommerce
serveurtransaction
agenceclient
agencefournisseur
begin()
enroll(trs,…)
enroll(trs, …)
debit(trs,a)
credit(trs,a)
trs
ok
void
void
okcpt+=a
cpt-=a
Etape 4 : Sous système bancaire persistant et fiabilisé
Initialisation
serveurcommerce
serveurtransaction
agenceclient
agencefournisseur
commit()
prepare()
prepare()
votecommit
votecommit
commit()
commit()
void
void
ok
Etape 4 : Sous système bancaire persistant et fiabilisé
Terminaison
serveurcommerce
serveurtransaction
agenceclient
agencefournisseur
commit()
prepare()
prepare()
votecommit
voterollback
rollback()
rollback()
void
void
ko
Etape 4 : Sous système bancaire persistant et fiabilisé
Terminaison avec échec
Etape 5 : Sécurisation des communications (en option)
Objectifs Sécuriser les communications entre eCOM et les
browsers Authentification du serveur / Authentification du client
administrateur Sécuriser les communications entre les serveurs
CORBA (non traité en 07-08) Techniques
Certificats HTTP / SSL IIOP / SSL
Etape 6 : Sous système fournisseur
Objectifs Prise de commande auprès des fournisseurs
ServeurFournisseur F1
JORAMMessaging server
Serveur eCOM
SBMsgProducer
Message Queue F1
Message Queue F2
MessageDrivenBean
EntityBean
DB1
ServeurFournisseur F2
MessageDrivenBean
EntityBean
DB2
Etape 6a : Sous-Système Fournisseur en mode MOM
En option : prévoir des messages FournisseureCOM pour notifier de la progression de la préparation/expédition de la commande.Le serveur eCOM est abonné à une MessageQueue «ShippingStatus»
XAConnection(transactionnel)
Message Queue SS
Web Service Fournisseur 1
JOnAS Server
WebService
DB1
JDBCEB3
EB3
EB3
WebService
Serveur GICOMWSDL
Description
BusinessObject
SOAP over HTTP
generatedstub
BusinessObject
Web Service Fournisseur 2
Etape 6b : Sous-Système Fournisseur en mode Web Service
Pb de l’indisponibilité
temporaire du WS d’un fournisseur
Modèlisez le WebService
Etape 7a : Conditionnement et déploiement des objets CORBA
OSGi Conditionnement et déploiement d’applications
Java Objectifs
Conditionner et déployer les servants CORBA Travail
Porter le GenericServer sur une plate-forme OSGi
Etape 7b : Administration et supervision des serveurs
JMX Standard Java pour l’administration d’applications Java
Objectifs Superviser les principaux éléments des serveurs CORBA
POA, POM (nb objets crées, nb objets courants, nb objets actifs),Portable Interceptors (nb requêtes reçus, nb requêtes échec), …
Déployer automatiquement les objets CORBA via un MBean d’administration du framework OSGi
Travail Enrichir l’OSGiGenericServer d’un MBeanServer (JMXAgent)
pourvu de connecteurs RMI et d’adapteurs HTTP
Scripts ANT (Tache ANT JMX)générés à partir d’une description
d’architecture Construire un repository OBR (tache ANT) Ajout d’un plugin (Tabs) à la JConsole (JavaSE 6.0)
Planning de GICOM GICOM1 Sara
1. Sous système bancaire2. Sous système bancaire persistant3. Sous système bancaire persistant et fiabilisé
GICOM2 Johann
4. eCOM étenduet intégration du sous système bancaire
5. Conditionnement et déploiement Corba6. Sous système fournisseur7. Administration et supervision des serveurs
Planning GICOM
S1Cours Introduction à
l’application bancaire (étape 2)
GICOM1
Cours OSGi
GICOM2
S2 TD Etape 2 TP OSGi
S3 Cours PPOA (étape 3) Libre (ou séminaire RTSJ avec les SLE)
S4 TD Etape 3
S5Cours Moniteur transactionnel
(étape 4)
Cours MOM/JMS et WebServices
S6 TD Etape 4
Fournisseurs eCOM (étape 6)
S7 TD Etape 4
Cours/Tutorial JMX (étape 7b)
S8 ??
Monitoring /Déploiement JMX
S9 ?? Permanence
S10 Soutenance
Permanence
Séminaire LDAP
Environnements/intergiciels Supports
JavaSE 6.0 de SUN Serveur J2EE JOnAS 4.x (EJB3.0+WS Metadata)
http://jonas.objectweb.org intègre Jakarta Tomcat Intègre Apache AXIS pour les Web Services (SOAP & WSDL)
Apache JAMES pour le serveur de mails (SMTP/POP) ORB JacORB (http://www.jacorb.org) ou Sun ORB Browser Web (MS IE, Firefox, Safari) J2ME Wireless Toolkit (2.x) Emulateur DoJa (DoCoMo iappli) SDK .NET Framework (C#)
Qualité du logiciel produit MetaWare
Eclipse + Plugins (XML Buddy, Lomboz, JOPE, …) Apache Ant Apache Maven Versionnement des sources (CVS,SVN) Test unitaire (Cactus) JavaNCSS http://www.kclee.com/clemens/java/javancss/
Vous devrez produire un rapport de métriques sur le source
Apache JMeter Vous devrez produire un rapport sur les performances
mesurées du site eCOM+application bancaire+ …
Modalité pédagogique (i) Organisation
Groupe de 3 (ou 2) Elire un chef de projet identifié du début à la fin Attribuer des rôles/spécialités Auto-formation Gestion des risques
Modalité pédagogique (ii) Planning
3+3 séances de cours (18 Heures) Explication du contenu d’une étape en salle TD
~10 séances encadrées en salle machine (30 Heures)
Encadrement direct en salle machine Accès aux salles machine sur créneau réservé Travail personnel en dehors des cours Mail
Modalités d'évaluation (résultat)Documents à rendreDémonstration finale (sur 8 à 10 PCs)
Expliquer les principaux choix de conception Montrer l’aspect multi-utilisateurs du logiciel Montrer les performances du logiciel Montrer l’administration du logiciel (observation,
déploiement multi-sites) serveur eCOM, serveurs CORBA et BD répartis … reprise après arrêt, …
NB la partie eCOM a déjà été évaluée : inutile de la
présenter
Documents à rendre Gestion de projet « allégé »
membre de l‘équipe rôle (chef de projet, expert techno, …)
Découpage en taches des étapes et affectations aux membres
Temps passée sur les taches Dossier qualité
Rapport JavaNCCS (commenté) Dossier d‘évaluation Système
Rapport sur les performances (scénario du benchmark, configuration matérielle, nombre de transactions, …)
Distribution des sources prêt à installer (ant install) avec 1 page de manuel d’installation et avec un jeu de données (CORBA, EJB)
Liens Vers le sujet
http://www-adele.imag.fr/users/Didier.Donsez/ujf/GICOM/GICOM_ENS
Bon ! Faut s’organiser Trinome M2PGI SRR Thème eCOM Banques
Crédit Agricole, Crédit Lyonnais
BNP-Paribas, Banque Directe Crédit du Nord, Société
Générale La Poste, Banque Rothschild Caixa, Caisse d’Epargne