Architecture J2EE et Enterprise Java Beans. L'architecture J2EE L'architecture Enterprise Java Beans Services de base Les Sessions Bean
|
|
|
- Martin Brunet
- il y a 10 ans
- Total affichages :
Transcription
1 Architecture J2EE et Java Beans 5-1 Plan 5-2 L'architecture J2EE L'architecture Services de base Les Sessions Bean Stateless Stateful Les Entity Bean JDBC Persistence gérée par la bean (bean-managed) Persistence gérée par le serveur (container-managed) Considérations de conception Examples Hafedh Mili Tous droits réservés 1
2 Défis du génie logiciel de nos jours 5-3 La réalité d'aujourd'hui (la "globalisation" ) requiert le développement d'applications distribuées et performantes Intégration de systèmes d'information d'une entreprise (qui peut être géographiquement distribuée) Intégration de systèmes d'informations de plusieurs entreprises, à l'occasion de relations d'affaires (B2B) Le développement de ces applications est très complexe, et ce, pour plusieurs raisons: Défis techniques dûs intégralement à l'infrastructure de calcul (réseaux de communication, distribution de charge, robustesse ("fault-tolerance") Difficulté de mise en place de certains services (transaction, sécurité) INTER-OPÉRABILITÉ!!!!! Quatre approches différentes 5-4 Ne rien faire (envoyer des fichiers par ou des hardcopy) Développer vous même et l'infrastructure de déploiement et d'exécution et la logique d'affaires Utiliser l'infrastructure de déploiement et d'exécution d'un fournisseur et vous concentrer sur la logique d'affaire Utiliser la solution propriétaire d'un fournisseur Se mettre d'accord, entre fournisseurs et clients, sur une architecture, permettant à plusieurs fournisseurs de supporter cette architecture, et aux clients de pouvoir choisir sans se préoccuper de l'inter-opérabilité des applications Hafedh Mili Tous droits réservés 2
3 Trois grandes tendances 5-5 Au début (88-93): COM/DCOM: solution propriétaire de MICROSOFT COM marche mieux que DCOM/COM+ CORBA: standard développé par l'omg, un organisme volontaire de l'industrie regroupant clients et fournisseurs de technologie Que faire: COM est plus simple à utiliser dans les environnements Windows Une base d'implantation assez importante CORBA est plus ouvert Produits pas mûrs Pas d'inter-opérabilité Il fallait choisir entre les deux Trois grandes tendances 5-6 Aprés (93 96): MICROSOFT et OMG se rendent compte qu'ils doivent offrir des ponts entre leurs technologies pour que les choix de technologie soient moins pénibles et moins critiques Les outils CORBA murissent, mais le développement d'applications CORBA n'en demeure pas moins relativement compliqué Hier (96/97 00) Les technologies Java rentrent dans le marché d'abord par Java RMI: Infrastructure RMI simple (beaucoup plus simple que CORBA) Exige du Java de bout en bout On parle d'inter-opérabilité avec Microsoft Le grand coup d'éclat avec J2EE, qui offre plus de services que COM et CORBA Hafedh Mili Tous droits réservés 3
4 Trois grandes tendances Ce matin (00 aujourd'hui) Microsoft sort.net et C# pour concurrencer J2EE et Java Une pénétration assez forte de la technologie J2EE dans le marché nord-américain Un "alphabet soup" de technologies provenant de différents vendeurs Plusieurs couches de technologie bâties par dessus (et des fois à côté) des technologies de base 5-7 L'architecture J2EE - Principes 5-8 Hafedh Mili Tous droits réservés 4
5 L'architecture J2EE C'est une architecture trois/quatre tiers: Tiers client: couche assez mince, contenant la logique d'invocation et d'affichage des données Tiers application: reflète la logique d'affaires (orientéeobjet), riche en fonctionnalités, et offrant plusieurs services "architecturaux" Tiers données, offrant la persistence et l'accès centralisé aux données 5-9 Plusieurs scénarios de déploiement 5-10 Hafedh Mili Tous droits réservés 5
6 Un scénario quatre tiers simple 5-11 L'architecture J2EE Sun spécifie des composants au niveau de chacun des tiers, et fournit des outils/classes dans chacun de ces tiers Pour ce faire, elle utilise beaucoup de technologies 5-12 Hafedh Mili Tous droits réservés 6
7 Résumé 5-13 Plan 5-14 L'architecture J2EE L'architecture Services de base Les Sessions Bean Stateless Stateful Les Entity Bean JDBC Persistence gérée par la bean (bean-managed) Persistence gérée par le serveur (container-managed) Considérations de conception Examples Hafedh Mili Tous droits réservés 7
8 5-15 "The architecture is a component architecture for the development and deployment of object-oriented distributed enterpriselevel applications. Applications written using the architecture are scalable, transactional, and multi-user secure. These applications may be written once, and deployed on any server platform that supports the specification" Sun Microsystems's EJB specification, 1998 L'architecture EJB Cette architecture spécifie Les services que doit support un serveur EJB ("EJBcompliant") 5-16 Les interfaces (contrats) que les classes ou composants d'affaire doivent supporter pour pouvoir bénéficier de ces services => Le modèle de composants de EJB Hafedh Mili Tous droits réservés 8
9 Caractéristiques de serveurs EJB Infrastructure d' objets distribués Services de concurrence (accès partagé aux mêmes ressources) Service de transactions (ACID) Distribution de charge 5-17 Gestion (optimale) des ressources Sécurité Distribution d' objets MonApplet getnom() Auteur ma machine ajoutelivre(livre) ma machine MonApplet getnom() ajoutelivre(livre) getlivres() Auteur_proxy Auteur_serv 5-18 Infrastructure RMI paramètres résultats Hafedh Mili Tous droits réservés 9
10 Distribution d'objets (2) "Client" et "serveur" roulent dans deux processus et possiblement machines différentes Un "représentant local" (proxy) prend lieu de l'objet distant du côté du client, et se comporte comme son représentant Le passage de paramètres à travers le réseau se fait par sérialisation et désérialisation de données (objets) 5-19 L'identité d'un objet n'est plus liée à un espace mémoire local, mais devient identifiable à travers le réseau par d'autres caractéristiques Infrastructures "RMI" existantes ORBs, Java RMI, DCOM (et le TP2) offrent toutes l'invocation de méthodes à distance 5-20 Dans chacune de ces technologies là, les outils de déploiement génèrent des "proxies", du côté client, et des "skelettes", du côté serveur, à partir d'une description "abstraite" (interface) de la fonctionnalité de l'objet: CORBA utilise CORBA IDL COM utilise COM IDL Java RMI utilise les interfaces Java Le développeur doit implanter la fonctionnalité d'affaires du côté serveur Hafedh Mili Tous droits réservés 10
11 Infrastructures existantes 5-21 Plusieurs infrastructures offrent (ou dépendent de) un service d'adressage/nommage global: Ce service permet d'attribuer des "noms" à des objets distants, et de les retrouver avec ces noms là Peuvent offrir d'autres services qui accompagnent ces services de base: Transactions (distribuées, two-phase commit) (CORBA et probablement DCOM) Lifecycle (COM/DCOM et CORBA) Relations (CORBA) Sécurité (CORBA, COM/DCOM, etc.) Vue d'ensemble de l'architecture EJB La couche RMI est nécessaire mais largement insuffisante CORBA offre beaucoup de services, mais les développeurs doivent les invoquer, et règler les problèmes d'intéractions de services. La plupart des services EJB sont offerts d'office et configurables au moment du déploiement Concurrency service Transac. service Security service 5-22 RMI layer Hafedh Mili Tous droits réservés 11
12 Variétés de Beans 5-23 Il y a deux (trois) grandes classes de beans: Entity beans: Ces bean représentent les entités du domaine d'affaires; ce sont les objets qui vont survivre au delà d'une intéraction client-serveur, et peuvent être partagés par plusieurs usagers (les serveur EJB gèrent l'accès partagé) Session beans: elles représentent des processus d'affaires; sont transientes. Typiquement, elles implantent des use-cases. Elles sont spécifiques à l'usager/client. Deux sortes Stateless beans: chaque appel de méthode est indépendant de l'appel suivant Stateful beans: les méthodes appelées ont des effets de bord qui sont utilisés pour les appels suivants. Représentent des transactions complexes Type de beans La différence entre EntityBean et SessionBean est importante pour le développeur (différentes conventions, différentes méthodes à implanter) et pour les serveurs La différence entre stateful SessionBean et stateless SessionBean ne fait pas de différence au niveau de la programmation: Elle est spécifiée au moment du déploiement Elle influence la façon dont le serveur traite les beans 5-24 Hafedh Mili Tous droits réservés 12
13 Composants d'une EJB 5-25 L'interface remote (interface): décrit la logique d'affaires. Doit être une extension de l'interface EJBObject L'interface home (interface): représente l'objet qui nous permet de créér et rechercher les objets de la bean. Cette interface doit être une extension de EJBHome La classe bean (class): cette classe doit implements l'interface EntityBean (SessionBean), et doit fournir une implantation pour les méthodes de l'interface remote et celles de l'interface home. Les interfaces EntityBean et SessionBean incluent des méthodes "callback" qui seront appelées par le serveur pour la gestion du cycle de vie et de la persistence des beans. Les classes "bean" doivent implanter ces méthodes Vue globale simplifiée AuteurHome Client AuteurHome_proxy AuteurHome_skele Server create () create create bla bla MonApplet Auteur_proxy Auteur_impl AuteurEJB 5-26 Auteur Hafedh Mili Tous droits réservés 13
14 Example: une session bean qui donne l'heure package quelleheureestil; import javax.ejb.ejbobject; import java.util.calendar; import java.rmi.remoteexception; import javax.ejb.ejbexception; 5-27 /** * Title: Illustration de la plus simple bean */ public interface DonneLHeure extends EJBObject { } public Calendar quelleheureestil() throws RemoteException; public Calendar etenterreneuve() throws RemoteException; Home interface package quelleheureestil; import javax.ejb.ejbhome; import javax.ejb.createexception; import java.util.calendar; import java.rmi.remoteexception; import javax.ejb.ejbexception; 5-28 public interface DonneLHeureHome extends EJBHome { public DonneLHeure create() throws RemoteException, CreateException; } Hafedh Mili Tous droits réservés 14
15 L'implantation public class DonneLHeureEJB implements SessionBean { public DonneLHeureEJB() { System.out.println("Creation d'un donneur de l'heure"); } /** implantation de la methode de la remote interface */ public Calendar quelleheureestil() throws RemoteException { System.out.println("On me demande l'heure"); Calendar heure = GregorianCalendar.getInstance(); return heure; } public Calendar etenterreneuve() throws RemoteException { System.out.println("On me demande l'heure en Terre Neuve"); Calendar heure = GregorianCalendar.getInstance(TimeZone.getTimeZone("GMT-4:30")); return heure; } public void ejbcreate() throws RemoteException, CreateException { } 5-29 public void ejbactivate() throws EJBException, RemoteException {} public void ejbpassivate() throws EJBException, RemoteException {} public void ejbremove() throws EJBException, RemoteException {} public void setsessioncontext(sessioncontext parm1) throws EJBException, RemoteException {} } L'application client public class Principale { public Principale() { } public static void main(string[] args) { try { // obtiens une instance du service de nommage Context instancedenamingservice = new InitialContext(); // obtiens reference au serveur du serveur de temps Object reference = instancedenamingservice.lookup("serveurduserveurdetemps"); // faire un cast sécuritaire à DonneLHeureHome DonneLHeureHome serveurduserveurdetemps = (DonneLHeureHome)PortableRemoteObject.narrow(reference,quelleheureestil.DonneLHeureHome.class); // obtiens un donneur d'heure DonneLHeure serveurdetemps = serveurduserveurdetemps.create(); System.out.println("L'heure chez le serveur est " +serveurdetemps.quelleheureestil()); } catch (Exception exception) { 5-30 exception.printstacktrace(); } } } Hafedh Mili Tous droits réservés 15
16 Plan 5-31 L'architecture J2EE L'architecture Services de base Les Sessions Bean Stateless Stateful Les Entity Bean JDBC Persistence gérée par la bean (bean-managed) Persistence gérée par le serveur (container-managed) Considérations de conception Examples Services de base Gestion des ressources Instance pooling Distribution de charge Services: Concurrence Transactions Persistence Distribution Naming Security 5-32 Hafedh Mili Tous droits réservés 16
17 Les beans 5-33 Une application serveur peut désservir plus milliers de clients en même temps La création de ces beans prend pas mal de place, mais surtout, pas mal de temps (allocation dynamique de mémoire) On peut optimiser l'utilisation des beans de deux façons: Ne pas détruire les objets quand ils ne sont plus utilisés. On les "vide", mais on attend une nouvelle requête pour un autre bean pour pouvoir les réutiliser pour d'autres programmes clients Dans certains cas, on peut utiliser le même objet pour répondre à plusieurs clients (stateless session bean) État d'un bean (entity) )/+ )*+. )-+ )+ "#$%& 5-34! ),+ '( Hafedh Mili Tous droits réservés 17
18 État d'un bean (entity) )/+ )*+ # 1)+ )-+ #01)+ )+ 5-35! ),+ '( Cycle de vie d'un bean )+. $%&. 23)+ 04 " 4#. $%&. $%&5# 04 " 4# Hafedh Mili Tous droits réservés 18
19 Instance swapping Les session bean qui sont stateless peuvent être passées entre clients pendant les pauses entre requêtes d'un client 5-37 Les session beans qui sont stateful sont sérialisées en mémoire secondaire lorsqu'elles ne sont pas utilisées: ejbactivate(): que faire lors d'un chargement de mémoire secondaire ejbpassivate(): que faire lorsqu'on s'apprête à sortir le session bean de la mémoire Cycle de vie des session beans ),+ #'.1)+! )+ 6()+ #)+ )/+ )*+ #'.1! 6()+ )*+ #)+ # 1)+ ),+ )-+ 77 #01)+ 5-38! 6 )+! 6 Hafedh Mili Tous droits réservés 19
20 Gestion des stateful session beans L'activation et la passivation des beans est laissée à la discrétion du "container" Le but est de conserver les ressources L'une des techniques utilisées est celle de la bean "Least Recently Used", i.e. dont l'utilisation remonte au plus longtemps 5-39 Si tout n'est pas sérialisée, il faut veiller à reconstituer l'état de la bean (dans ejbactivate()) Distribution de charge L'architecture J2EE ne spécifie pas de stratégie particulière de distribution de charge, mais Les implantations doivent permettre la distribution de charge entre plusieurs serveurs, de façon transparente par rapport au programme client 5-40 Hafedh Mili Tous droits réservés 20
21 Services 5-41 Services de base Concurrence Transactions Persistence Distribution Naming Security Ces services sont des add-ons, qu'il faut invoquer explicitement dans CORBA Ils sont requis (et transparents) dans EJB Concurrence 5-42 Les session beans ne supportent pas la concurrence: Les stateful beans sont attribuées une par programme client, et donc, pas besoin de les partager Les stateless beans n'ont pas de données à faire partager entre plusieurs programmes clients, et donc, il n'y a pas lieu de les partager: on peut juste en créer d'autres pour répondre aux requêtes des clients Les entity beans: doivent être partagées entre programmes clients EJB interdit l'accès concurrent aux entity beans: chaque programme client verrouille l'entity bean qu'il manipule, durant sa manipulation (invocation de méthode) Hafedh Mili Tous droits réservés 21
22 Concurrence des entity beans Les containers implementent la synchronization automatiquement: toutes les méthodes d'affaires des beans sont considérées comme "synchronized" (sont exécutées à l'intérieur de blocs synchronized sur l'objet) On ne peut pas créer de thread dans les beans (les containers doivent maintenir le contrôle total sur la concurrence dans le système) Les beans ne peuvent pas être réentrantes ;. ),+ )*+ 0* 1* 8 )+ 9 ;. 1: 5-44 < 4 ),+)*+.. 1( Hafedh Mili Tous droits réservés 22
23 Transactions Les container gèrent les transactions automatiquement Durant le déploiement, le développeur spécifie les "attributs transactionnels" de chaque méthode Dans l'un des modes (required), le container exécute les méthodes dans des transactions (si la méthode échoue, les changements partiels effectués à la BD sont rétractés) 5-45 Persistence Les entity bean sont, par définition, persistentes 5-46 La persistence des entity beans peuvent être accomplie de deux façons: Gérée automatiquement par le "container" (container managed persistence) Gérée "à bras" par le développeur (bean-managed persistence) Pour la "container-managed persistence", chaque vendeur choisit un(e) (ensemble de) technologie(s) de persistence adaptée Pour la "bean-managed persistence", le développeur peut faire comme il veut (y compris lire les données d'un fichier) Hafedh Mili Tous droits réservés 23
24 Persistence 5-47 Deux méthodes ("callback") figurent dans l'interface d'une entity bean pour synchronizer la base de données et les entity bean du container: ejbload() est appelée pour initialiser une entity bean connue par sa clé primaire ejbsave() est appelée pour sauvegarder l'état de l'objet dans la BD Pour du container-managed, ces méthodes sont générées Pour du bean-managed, le développeur doit les coder D'autres méthodes seront nécessaires pour les fonctions d'accès aux objets associés Container-managed persistence 5-48 Deux types de technologies: Bases de données relationnelles: Le développeur spécifie une correspondence entre les classes (entity bean) et les tables d'une base de données relationnelle On fait (trés bien) la correspondence entre attributs et navigation simple (relations un à plusieurs) On fait depuis EJB 2.0 le mapping pour les relations plusieurs à plusieurs Bases de données orientées objet Il n'y a quasiment rien à faire. Hafedh Mili Tous droits réservés 24
25 Bean-managed persistence La sauvegarde des données est faite grâce à du code que le développeur devra écrire Du fait sur mesure, permettant une certaine optimisation (lazy initialization) De l'ouvrage 5-49 Distribution Première version de EJB (1.0) spécifique à Java RMI Depuis EJB 1.1, il est en principe, possible d'interfacer un client CORBA avec un serveur EJB, grace au protocole RMI-IIOP, et un client ActiveX grace à DCOM 5'&0 )%1<??< 5'&0335 %1 ' ;5 )01=< >+ ;5 Hafedh Mili Tous droits réservés 25
26 Nommage (naming) 5-51 Java Naming and Directory Interface: API pour enregistrement et dépistage de clients JNDI peut se plugger sur plusieurs services de nommage // obtiens une instance du service de nommage Context instancedenamingservice = new InitialContext(); // obtiens reference au serveur du serveur de temps Object reference = instancedenamingservice.lookup("serveurduserveurdetemps"); // faire un cast sécuritaire à DonneLHeureHome DonneLHeureHome serveurduserveurdetemps = (DonneLHeureHome)PortableRemoteObject.narrow(reference,quelleheureestil.Donne LHeureHome.class); // obtiens un donneur d'heure DonneLHeure serveurdetemps = serveurduserveurdetemps.create(); Sécurité Les serveurs EJB supportent trois types de sécurité: Identification: identifier les usagers du système par code usager et mots de passe Authorizations: restreindre l'accès aux méthodes des EJBs à certains usagers ou certains groupes d'usagers (roles) 5-52 Communication confidentielle: les données transmises sont sécurisées Hafedh Mili Tous droits réservés 26
27 Authorizations: modèle à base de rôles On définit des rôles On définit les permissions pour les méthodes par rapport aux rôles On associe des usagers ou groupes d'usager à des roles (via le deploytool) 5-53 On s'identifie au moment de démarrer l'application Identification de l'usager properties.put(context.security_principal,nomusager); properties.put(context.security_credentials,motdepasse); Context nommage = new InitialContext(properties); Object reference = nommage.lookup("ma Bean"); Hafedh Mili Tous droits réservés 27
28 On peut savoir qui appelle une méthode 5-55 public abstract interface EJBContext { // Methods EJBHome getejbhome(); EJBLocalHome getejblocalhome(); Properties getenvironment(); Identity getcalleridentity(); Principal getcallerprincipal(); boolean iscallerinrole(identity p0); boolean iscallerinrole(string p0); UserTransaction getusertransaction() throws IllegalStateException; void setrollbackonly() throws IllegalStateException; boolean getrollbackonly() throws IllegalStateException; } Plan 5-56 L'architecture J2EE L'architecture Services de base Les Sessions Bean Stateless Stateful Les Entity Bean JDBC Persistence gérée par la bean (bean-managed) Persistence gérée par le serveur (container-managed) Considérations de conception Examples Hafedh Mili Tous droits réservés 28
29 Session beans: rappel Session beans: elles représent des processus d'affaires; sont transientes. Typiquement, elles implantent des usecases. Elles sont spécifiques àl'usager/client. Deux sortes Stateless beans: chaque appel de méthode est indépendant de l'appel suivant Stateful beans: les méthodes appelées ont des effets de bord qui sont utilisés pour les appels suivants. Représentent des transactions complexes 5-57 Cycle de vie des session beans ),+ #'.1)+! )+ 6()+ #)+ )/+ )*+ #'.1)+! 6()+ )*+ #)+ # 1)+ ),+ )-+ 77 #01)+ 5-58! 6 )+! 6 Hafedh Mili Tous droits réservés 29
30 Pour implanter une session bean Il faut définir trois interfaces: remote interface: une interface qui représente les fonctionnalités d'affaire de la "bean" home interface: une interface qui représente un "utilitaire" pour créer, ou chercher des instances de la home interface Classe EJB: classe qui implante la fonctionnalité de la session bean 5-59 L'interface "remote" 5-60 Doit être une extension de EJBObject Chaque méthode doit lancer: RemoteException ou EJBException pour représenter les exceptions d'infrastructure (lien de communication rompue, connexion à des ressources non-disponibles, etc.) Les exceptions spécifiques au domaine d'application, au besoin Les arguments et résultats de retour doivent être acceptables pour RMI-IIOP Ils doivent être sérializables Peuvent représenter des références à des objets "distants" Hafedh Mili Tous droits réservés 30
31 L'interface home 5-61 Cette interface doit hériter de javax.ejb.ejbhome Cette interface contient des méthodes pour: Créer des beans (entity beans ou session beans) Appeler d'autre méthodes utilitaires (non appelable directement sur un objet du domaine) Doit inclure au moins une méthode "create" (peu importe le nombre d'arguments) Peut inclure des méthodes "remove" Les mêmes restrictions pour les types de paramètres et de retour des méthodes La classe "bean" 5-62 Cette classe doit: Implanter l'interface SessionBean Implanter les méthodes incluses dans la remote interface Même signature que dans la remote interface Implanter les méthodes incluses dans la home interface Nom de méthode de la home interface préfixé par ejb. Exemple: si dans home interface la méthode s'appelle "create()", dans la classe Bean, il doit y avoir une méthode correspondente avec le nom ejbcreate, et qui lance les mêmes exceptions Doit avoir un constructeur public sans arguments Hafedh Mili Tous droits réservés 31
32 Création d'une session bean (stateful) Client EJBHome EJB Object sc: Sessi on context instance create(args) new new new sesessioncontext(sc) ejbcreate(args) 5-63 Création d'une session bean (stateless) On crée le EJB object suite à la demande du create() du client La "création" de la bean instance, et son affectation au EJB object est reportée jusqu'au moment où on a besoin de la bean (invocation d'une méthode) 5-64 Hafedh Mili Tous droits réservés 32
33 Interface session bean 5-65 )6((+! $%&$(<'.$( La bean doit emmagasiner le "contexte" dans une variable d'instance. Ce contexte permettra plus tard de savoir qui a appelé (pour des questions de securité) ")+! $%&$(< '.$( Le container appelle cette méthode à la fin de la réactivation de la bean (stateful) )+! $%&$(< '.$( Le container informe la bean qu'elle va se faire passiver )+! $%&$(< '.$( Le container informe la bean qu'elle va se faire effacer Interface Session Bean 5-66 Très souvent, on peut laisser ejbpassivate() et ejbactivate() vides Dans certains cas, on les utilise pour: reconstruire certaines données non-sérialisées relâcher ou réacquérir les ressources qu'on utilise Typiquement, ejbremove() et ejbpassivate() vont se ressembler ejbremove() sera souvent appelée automatiquement par le container, mais à l'occasion par le client (via remove()) Hafedh Mili Tous droits réservés 33
34 Plan 5-67 L'architecture J2EE L'architecture Services de base Les Sessions Bean Stateless Stateful Les Entity Bean JDBC Persistence gérée par la bean (bean-managed) Persistence gérée par le serveur (container-managed) Considérations de conception Examples Pour implanter une entity bean 5-68 Il faut définir: remote interface: une interface qui représente les fonctionnalités d'affaires de la "bean" home interface: une interface qui représente un "utilitaire" pour créer, ou chercher des instances de la home interface Classe EJB: classe qui implante la fonctionnalité de la entity bean Classe clé primaire (optionnelle): une classe qui représente la clé primaire des entity bean. Cette classe peut être String, si on est capable d'identifier uniquement les instances de la bean avec juste une valeur Hafedh Mili Tous droits réservés 34
35 Remote et home interface 5-69 Mêmes restrictions que pour la session bean au niveau des signatures des méthodes La home interface doit inclure la signature <interface remote> findbyprimarykey(<type de clé> arg)throws RemoteException, FinderException; N'est pas obligé d'avoir des méthodes "create( )" La home interface peut inclure d'autres méthodes de fouilles d'entity bean. Les méthodes "finder" doivent: Commencer par le préfix "find" Soit retourner une instance de la bean (interface remote) Soit retourner une collection d'instances de la bean Doivent lancer au moins les exceptions RemoteException et FinderException La bean class 5-70 Cette classe doit: Implanter l'interface EntityBean Implanter les méthodes incluses dans la remote interface Même signature que dans la remote interface Implanter les méthodes incluses dans la home interface Nom de méthode de la home interface préfixé par ejb. Exemple: si dans home interface la méthode s'appelle "create()", dans la classe Bean, il doit y avoir une méthode correspondente avec le nom ejbcreate, et qui lance les mêmes exceptions Doit avoir un constructeur public sans arguments L'implantation des méthodes "finder" doit retourner une clé primaire ou une collection de clés primaires Hafedh Mili Tous droits réservés 35
36 Identité des objets Les objets sont identifiés uniquement par: leur base (leur home) leur clé primaire Pour vérifier l'identité de deux objects, on utilise la méthode isidentical(ejbobject unobject) Il ne faut pas utiliser "==" pour comparer des entity (ou session bean) du coté client 5-71 Cycle de vie d'une entity bean #$ #AB)+ # 1)+ #01) #6)+! ),+ #)+ '( Hafedh Mili Tous droits réservés 36
37 Cycle de vie 5-73 La bean instance est créée par le container avec BeanClass.newInstance(), suivi de setentitycontext(entitycontext ctx) Le contexte contient de l'information sur le container et sur l'objet qui appelle Dans l'état pooled, l'instance de bean n'est pas attribuée à un EJBObject Dans ce temps là, elle peut exécuter n'importe quelle méthode finder (méthodes de la home interface). L'instance ne va pas vers un ready state à la fin d'une finder method (même pas findbyprimarykey( )) Cycle de vie (suite) C'est le container qui sélectionne une bean instance pour l'attribuer à un objet, et donc, la faire passer vers l'état prêt. Deux transitions possibles: Par le biais de ejbcreate( ) et ejbpostcreate( ) (en réponse à un appel sur le home de la part du client) Par le biais d'un ejbactivate(), qui est appelée automatiquement par le container quand il a besoin d'une bean instance pour répondre aux besoins d'un client 5-74 Hafedh Mili Tous droits réservés 37
38 Cycle de vie (suite) 5-75 A l'état prêt, la bean instance est associée à un objet, et le container peut être amené à invoquer ejbload et ejbstore plusieurs fois pour synchroniser l'état de la bean instance A l'état prêt, tout ce que l'on sait c'est que le contexte de la bean instance peut nous donner accès à la clé primaire. La bean instance revient à l'état pooled de deux façons: le container peut appeler ejbpassivate() (gestion de ressources) le client appelle ejbremove() unsetentitycontext() enlèves une bean instance de l'état pooled (la prépare pour la garbage collection) L'interface EntityBean (suite) )$((+! $%&$(<'.$( Il faut sauvegarder le contexte dans une variable d'instance pour pouvoir y référer dans d'autres méthodes (e.g. pour savoir qui appelle). On peut réserver des ressources ici )+! $%&$(< '.$( Le dernier soupir de la bean instance. On y lâche les ressources acquises dans setentitycontext( ) 5-76 Hafedh Mili Tous droits réservés 38
39 L'interface EntityBean (suite) 5-77 %&#)CD+! $(< '.$(<C4(D La bean instance existe, mais n'est pas attribuée à un objet encore Cette méthode valide les arguments (y compris les possibilités de conflict de clé primaire), initialise la bean instance, et insère l'objet dans la BD Retourne la clé primaire # )CD+! $(< '.$(<C4(D La bean instance existe, mais et est attribuée à un objet Si on demander la clé primaire de l'objet (à partir du contexte), on la trouverait Sera très souvent vide Peut servir pour notifier une autre bean de la création de celle ci, en appelant getejbobject() sur le contexte pour avoir la référence à l'objet courant pour "se passer" comme argument L'interface EntityBean (suite) 5-78 ")+! $%&$(< '.$( Cette méthode est appelée quand le container sélectionne la entity bean instance pour l'attribuer à un objet La clé primaire est disponible On peut l'utiliser pour acquérir de nouvelles ressources Ce n'est pas ici qu'on synchronise la bean instance avec la BD (ejbload( ) s'en occupe, et elle sera appelée par le container) )+! $%&$(< '.$( Cette méthode est appelée quand le container décide de dissocier la entity bean instance d'un objet On peut l'utiliser pour relâcher les ressources détenues Ce n'est pas ici qu'on synchronize la bean instance avec la BD (ejbstore( ) s'en occupe, et elle sera appelée par le container) Hafedh Mili Tous droits réservés 39
40 L'interface EntityBean (fin) 5-79 ' )+! $%&$(< '.$( appelée par le container pour synchroniser l'état de la bean instance avec la BD la clé primaire est disponible la clé primaire est la seule garantie de l'identité de l'objet )+! $%&$(< '.$( appelée par le container pour sauvegarder l'état de la bean instance dans la BD Les finders 5-80 Les finders sont exécutés par des bean instance qui sont dans l'état pooled. On ne peut pas supposer que l'instance qui exécute un findbyprimarykey( ) sera la même que le container choisira d'attribuer à l'objet en question Pas la peine de rien initialiser dans cette méthode La home interface retourne des objets (remote interface) ou des collection d'objet), alors que dans la bean entity class, on retourne la clé primaire (ou une collection de clés primaires) Il faut laisser le choix au container de choisir les bean instance qu'il veut! Considérez les comme des méthodes statiques! Hafedh Mili Tous droits réservés 40
41 Plan 5-81 L'architecture J2EE L'architecture Services de base Les Sessions Bean Stateless Stateful Les Entity Bean JDBC Persistence gérée par la bean (bean-managed) Persistence gérée par le serveur (container-managed) Considérations de conception Exemples Considérations de conception Les appels distants coûtent chers Ne "beanez" pas toutes vos classes: Dans une aggrégation, ne beanez que l'objet principal La sauvegarde en BD s'assurera de tout sauvergarder Ce qui n'est accessible que indirectement peut rester sur le serveur Faut il manipuler des objets ou des identificateurs Granularité des méthodes des sessions bean Co-localisation des beans 5-82 Hafedh Mili Tous droits réservés 41
Applications des patrons de conception
MAI NFE103 Année 2013-2014 Applications des patrons de conception F.-Y. Villemin, CNAM! http://deptinfo.cnam.fr/enseignement/cyclespecialisation/mai/index.html Plan! Java Beans*! Patron "Modèle-vue-contrôleur"
RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
RMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plan. Department of Informatics
Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise
Composants logiciels Exemples : Java Beans, Enterprise Java Beans
Composants logiciels Exemples : Java Beans, Enterprise Java Beans Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia Introduction : évolution
Remote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
J2EE. Java2 Enterprise Edition. Pierre Yves Gibello [email protected] Mise à jour : 30 Septembre 2004
J2EE Java2 Enterprise Edition Pierre Yves Gibello [email protected] Mise à jour : 30 Septembre 2004 Ce document est couvert par la licence Creative Commons Attribution ShareAlike. This work
Compte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki
Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/
Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation
Java Naming and Directory Interface
Introduction Java Naming and Directory Interface Gaël Thomas [email protected] Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard
Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués
Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hé[email protected]
Remote Method Invocation en Java (RMI)
Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation
Remote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
Environnements de Développement
Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna [email protected] Développement des systèmes d Information Syllabus
24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.
Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa ([email protected]), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime
Intergiciel - concepts de base
Intergiciel - concepts de base Ada Diaconescu, Laurent Pautet & Bertrand Dupouy ada.diaconescu _at_ telecom-paristech.fr Rappel : système réparti Système constitué de multiples ressources informatiques
Composants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
Refonte front-office / back-office - Architecture & Conception -
Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table
Java pour le Web. Cours Java - F. Michel
Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications
Création d une application JEE
Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document
2 Chapitre 1 Introduction
1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné
Auto-évaluation Aperçu de l architecture Java EE
Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU
NFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
1. Installation d'un serveur d'application JBoss:
EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download
Modèle d Administration des Systèmes Distribués à Base de Composants.
Institut National des Sciences Appliquées de Lyon THESE Pour obtenir le grade de Docteur de l Institut National des Sciences Appliquées de Lyon Préparée au laboratoire : CITI Dans le cadre du projet :
Mise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Programmation par composants (1/3) Programmation par composants (2/3)
Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant
Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
EXA1415 : Annotations JavaEE : @Local, @Stateful
EXA1415 : Annotations JavaEE : @Local, @Stateful Sur une idée de P. Sécheresse sur http://developpez.com (http://tinyurl.com/5gr57j) Diapo 1 Objectif Créer un EJB CalculatriceBean (V1) Contient une opération
Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Projet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont [email protected] 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
[APPLICATON REPARTIE DE VENTE AUX ENCHERES]
2012 Polytech Nice- Sophia El Hajji Khalil Yousfi Hichem SI4 - Log [APPLICATON REPARTIE DE VENTE AUX ENCHERES] Sommaire Architecture de l application... 3 Le Serveur... 3 Le Client... 4 Passage en CORBA...
Calcul Parallèle. Cours 5 - JAVA RMI
Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation
J2EE - Introduction. Développement web - Java. Plan du chapitre
Développement web - Java J2EE - Introduction Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Plan du chapitre J2EE Présentation J2EE
Programmation par les Objets en Java
Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée
Héritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Java DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles
Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce
Généralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Chapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Alfstore workflow framework Spécification technique
Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: [email protected] Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date
Software Engineering and Middleware A Roadmap
Software Engineering and Middleware A Roadmap Ecrit par: Dr. Wolfgang Emmerich Présenté par : Mustapha Boushaba Cours : IFT6251 Wolfgang Emmerich Enseignant à University College London: Distributed Systems
Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java
Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan
Conception de serveurs d'applications ouverts
Conception de serveurs d'applications ouverts Stéphane Frénot 3 Un modèle d'exécution standard Application Stéphane Frénot 4 1 Répartition "horizontale" d'une application Application de Présentation Application
Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Description de la formation
Description de la formation Modalités Ce parcours de formation est un parcours en alternance, d une durée de 2ans, à raison d une semaine de formation par mois, soit 770 heures et de trois semaines de
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 [email protected] 1
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 [email protected] 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection
Gestion distribuée (par sockets) de banque en Java
Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante
MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version 1.0-25 septembre 2006
MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version 1.0-25 septembre 2006 SOMMAIRE 1 AVANT PROPOS...3 2 PRÉSENTATION...4 2.1 Quelques définitions...4 2.2 Besoins d'intégration d'un moteur de workflow...4
Synchro et Threads Java TM
Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre [email protected] Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet
TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur
Introduction à la plateforme J2EE
Introduction à la plateforme J2EE Auteur : Oussama Essefi Directeur technique Expert Consulting [email protected] Copyright 2010 Expert Consulting Page 1 1. Introduction 1.1. Pourquoi
La base de données XML exist. A. Belaïd
La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques
Auto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Introduction aux intergiciels
Introduction aux intergiciels M. Belguidoum Université Mentouri de Constantine Master2 Académique M. Belguidoum (UMC) Introduction aux intergiciels 1 / 39 Plan 1 Historique 2 Pourquoi l'intergiciel? 3
Tutoriel d installation de Hibernate avec Eclipse
Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création
Application web de gestion de comptes en banques
Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion
Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1
Urbanisation des SI Des composants technologiques disponibles Urbanisation des Systèmes d'information Henry Boccon Gibod 1 Plan de l'exposé Technologies à la mode disponibles. Bus de données, ETL et EAI
Java - RMI Remote Method Invocation. Java - RMI
Remote Method Invocation Yann Viémont Université de Versailles St-Quentin Plan 1. Introduction 2. Rappels sur les RPC 3. Le modèle objet de Java-RMI 4. Architecture générale 1. Introduction = Disponible
Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>
Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances
Systèmes répartis. Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Systèmes répartis p.1/49
Systèmes répartis Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis p.1/49 Systèmes répartis Définition très large : un système réparti est système informatique
JOnAS 5. Serveur d application d
JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source
Premiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
INITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Patrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
JOnAS Day 5.1. Clustering
JOnAS Day 5.1 Clustering Solution complète de clustering Répartition de charge & bascule sur échec Application Web avec mod_jk/mod_proxy Connecteur http pour md_proxy Application Ejb avec CMIv2 Réplication
Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.
PERSPECTIVES Le Single Sign-On mobile vers Microsoft Exchange avec OWA et ActiveSync Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des
Programmation Web. Introduction
Programmation Web Introduction 1 Introduction 10 séances 1 h cours + 1h TD Notes : contrôle continu DS 1 TP : note de groupe : rapport + code source + démo TD : note personnelle (=0 si 2 absences non justifiées)
Initiation à JAVA et à la programmation objet. [email protected]
Initiation à JAVA et à la programmation objet [email protected] O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation
Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Java RMI. Arnaud Labourel Courriel: [email protected]. Université de Provence. 8 mars 2011
Java RMI Arnaud Labourel Courriel: [email protected] Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau
Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet [email protected] Université Paul Sabatier
Intergiciels pour la répartition CORBA : Common Object Request Broker Patrice Torguet [email protected] Université Paul Sabatier Plan du cours 2 Introduction à CORBA Architecture de l ORB Implémentation
Urbanisation des Systèmes d'information
Urbanisation des Systèmes d'information Des composants technologiques disponibles Urbanisation des Systèmes d'information - Henry Boccon-Gibod 1 Plan de l'exposé Technologies à la mode disponibles. Bus
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Nouvelles Plateformes Technologiques
Cycle de présentation du développement Nouvelles Plateformes Technologiques Observatoire Technologique, CTI Observatoire Technologique 4 mai 2004 p 1 Plan de la présentation 1. Historique du projet 2.
Diagramme de classes
Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :
Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4
Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.
Architectures n-tiers Intergiciels à objets et services web
Plan pour aujourd hui Architectures n-tiers Intergiciels à objets et services web Clémentine Nebut Nebut LIRMM / Université de Montpellier 2 [email protected] Introduction Architectures classiques
J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation
J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread
Logiciel Enterprise Guide Version 1.3 Windows
Configuration requise Logiciel Enterprise Guide Version 1.3 Windows Ce document indique la configuration requise pour l'installation et l'exécution du logiciel Enterprise Guide. Vous devez mettre votre
Ingénierie des Modèles. Méta-modélisation
Ingénierie des Modèles Méta-modélisation Eric Cariou Master Technologies de l'internet 2 ème année Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique [email protected]
WEBSERVICES. Michael Fortier. Master Informatique 2ème année. [email protected] A308, Université de Paris 13
WEBSERVICES Michael Fortier Master Informatique 2ème année [email protected] A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels
OpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Qu'est-ce que le BPM?
Qu'est-ce que le BPM? Le BPM (Business Process Management) n'est pas seulement une technologie mais, dans les grandes lignes, une discipline de gestion d'entreprise qui s'occupe des procédures contribuant
Shibboleth. David Verdin - JOSY "Authentification centralisée pour les applications web" - Paris - 4 février 2010. 5 mai 2010 1
Shibboleth David Verdin - JOSY "Authentification centralisée pour les applications web" - Paris - 4 février 2010 5 mai 2010 1 Plan de l'exposé Position du problème L'architecture de Shibboleth Shibboleth
Architectures en couches pour applications web Rappel : Architecture en couches
Rappel : Architecture en couches Une architecture en couches aide à gérer la complexité : 7 Application 6 Presentation 5 Session Application Les couches hautes dépendent des couches basses 4 Transport
Threads. Threads. USTL http://www.lifl.fr/ routier 1
Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un
Architecture Orientée Service, JSON et API REST
UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API
TD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Java Aspect Components (JAC) http://jac.objectweb.org
Java Aspect Components (JAC) JAC http://jac.objectweb.org 2 Lionel Seinturier [email protected] Université Pierre & Marie Curie 23/2/06 Un framework de programmation par aspect pour Java Projet
Le modèle client-serveur
Le modèle client-serveur Olivier Aubert 1/24 Sources http://www.info.uqam.ca/~obaid/inf4481/a01/plan.htm 2/24 Historique architecture centralisée terminaux passifs (un seul OS, systèmes propriétaires)
Chapitre 10. Architectures des systèmes de gestion de bases de données
Chapitre 10 Architectures des systèmes de gestion de bases de données Introduction Les technologies des dernières années ont amené la notion d environnement distribué (dispersions des données). Pour reliér
EJB. Karim Bouzoubaa Issam Kabbaj
EJB Karim Bouzoubaa Issam Kabbaj Problématique html jsp Objets java jdbc table Pour accéder aux données : Établir une connexion avec la BD Envoyer une requête Traiter la requête Assurer l'intégrité Or
et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7
Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,
Sage CRM. 7.2 Guide de Portail Client
Sage CRM 7.2 Guide de Portail Client Copyright 2013 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,
