Chapitre 4: Entreprise Java Bean (EJB)

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Quelle annotation est utilisée pour une interface qui permet des méthodes accessibles de manière distante ?

  • @Local
  • @Singleton
  • @Stateless
  • @Remote (correct)

Quel type d'EJB crée une instance unique peu importe le nombre de connexions ?

  • Stateful
  • Stateless
  • Local
  • Singleton (correct)

Quel attribut de l'annotation JNDI spécifie le nom associé à l'EJB dans l'annuaire ?

  • interface
  • type
  • name (correct)
  • reference

Quel type d'EJB est instancié pour chaque connexion ?

<p>Stateful (D)</p> Signup and view all the answers

Que se passe-t-il par défaut pour le nom associé à un EJB dans JNDI ?

<p>Il correspond au nom de la classe (D)</p> Signup and view all the answers

Quel est le format du nom JNDI complet pour un EJB Stateless ?

<p>Nom_Projet_EAR/Nom_Projet_EJB/Name!Package.NomInterface (D)</p> Signup and view all the answers

Quel ajout est nécessaire pour le nom JNDI d'un EJB Stateful ?

<p>Un suffixe indiquant son type (C)</p> Signup and view all the answers

Lors du déploiement d'un projet sur Jboss 7, où doit-on vérifier la présence du fichier .jar ?

<p>Dans le dossier Standalone + deployments (D)</p> Signup and view all the answers

Que doit-on faire après avoir exécuté le client Java pour vérifier l'intégrité des données ?

<p>Vérifier l'ajout des clients dans la table CLIENT (A)</p> Signup and view all the answers

Quelle opération est nécessaire pour créer un client Java efficace ?

<p>Créer un projet Java standard (B)</p> Signup and view all the answers

Quel est le but principal des EJB ?

<p>Faciliter la création des applications distribuées pour des entreprises. (B)</p> Signup and view all the answers

Quelle fonctionnalité n'est pas assurée par le conteneur EJB ?

<p>Interface utilisateur des EJB. (D)</p> Signup and view all the answers

Quels types d'EJB permettent de gérer les transactions ?

<p>Session Beans. (D)</p> Signup and view all the answers

Qu'est-ce qui libère le développeur de la gestion des services lorsqu'il communique avec un EJB ?

<p>Le conteneur EJB. (D)</p> Signup and view all the answers

Quel type d'EJB est utilisé pour assurer la persistance des données ?

<p>Entity Beans. (B)</p> Signup and view all the answers

Quel est le rôle d'un client dans l'architecture EJB ?

<p>Accéder aux EJB via le conteneur. (B)</p> Signup and view all the answers

Quel protocole utilisent généralement les clients développés avec des langages comme .Net, PHP et C++ pour communiquer avec les composants Web Services?

<p>SOAP (C)</p> Signup and view all the answers

Quel est un avantage d'utiliser des serveurs EJB commerciaux ?

<p>Ils offrent des fonctionnalités supplémentaires. (D)</p> Signup and view all the answers

Quelle affirmation est vraie concernant les types d'EJB ?

<p>Tous les types d'EJB doivent être déployés dans un conteneur EJB. (D)</p> Signup and view all the answers

Quelle est la première étape du processus suivi par la couche application lors de la gestion d'une requête?

<p>Recevoir les requêtes http clientes (B)</p> Signup and view all the answers

Pourquoi est-il important de séparer la couche DAO et la couche Métier?

<p>Pour ajouter un niveau d'abstraction sur l'accès aux données. (C)</p> Signup and view all the answers

Quel est le rôle de la couche Metier dans une application Java EE?

<p>Récupérer les données pour traiter les logiques métiers. (A)</p> Signup and view all the answers

Quel est un des avantages de l'utilisation des EJB?

<p>Ils respectent des spécifications standardisées. (B)</p> Signup and view all the answers

Le processus de traitement métier en plusieurs étapes est géré par:

<p>La couche logique métier (C)</p> Signup and view all the answers

Quelle affirmation est correcte concernant les clients mobiles?

<p>Ils peuvent communiquer via HTTP ou SOAP. (A)</p> Signup and view all the answers

Quel aspect est mis en avant par la séparation entre la couche Métier et la couche DAO?

<p>Permettre une meilleure modularité et indépendance des unités de stockage. (D)</p> Signup and view all the answers

Quelle annotation est utilisée pour spécifier la clé primaire d'une entité dans JPA?

<p>@Id (B)</p> Signup and view all the answers

Quel est le rôle de l'annotation @OneToMany dans la gestion des entités en JPA?

<p>Elle définit une relation où une entité peut correspondre à plusieurs autres entités. (C)</p> Signup and view all the answers

Quel est le rôle d'un employé dans le cadre d'une opération ?

<p>Exécuter chaque opération (A)</p> Signup and view all the answers

Quel champ d'un compte courant est particulier par rapport à un compte épargne?

<p>Le découvert (D)</p> Signup and view all the answers

Quelle annotation permet d'indiquer que le champ ne doit pas être pris en compte lors du mapping?

<p>@Transient (B)</p> Signup and view all the answers

Quelle entité représente les opérations dans la base de données ?

<p>T_OPERATIONS (B)</p> Signup and view all the answers

Quel type d'objet est nécessaire pour représenter une clé primaire dans une entité JPA?

<p>Tant des types primitifs que des types objet (D)</p> Signup and view all the answers

Quel fichier nécessite une configuration spécifique pour l'unité de persistance ?

<p>persistence.xml (C)</p> Signup and view all the answers

Quel type d'EJB permet de créer une instance pour plusieurs connexions clientes ?

<p>Stateless (A)</p> Signup and view all the answers

Lors de l'utilisation de JPA, quelle annotation est utilisée pour spécifier le nom de la table dans la base de données?

<p>@Table (D)</p> Signup and view all the answers

Qu'est-ce qu'un POJO dans le contexte des entités JPA?

<p>Une entité Java simple représentant un objet (A)</p> Signup and view all the answers

Quel est un des premiers étapes dans la création d'une application EJB ?

<p>Créer les entités avec les annotations adéquates (B)</p> Signup and view all the answers

Pourquoi est-il nécessaire de déclarer une clé primaire dans une entité JPA?

<p>Pour permettre l'identification unique des enregistrements (D)</p> Signup and view all the answers

Dans quelle table sont stockées les informations de l'employé et de son supérieur ?

<p>T_EMPLOYES (A)</p> Signup and view all the answers

Quel est le but du fichier Standalone.xml dans une application EJB ?

<p>Configurer le DataSource (B)</p> Signup and view all the answers

Quel est le champ qui identifie de manière unique un client dans la base de données ?

<p>CODE_CLI (C)</p> Signup and view all the answers

Flashcards

Clients Non-Java

Un client.Net, PHP, C++, etc., développé avec un langage autre que Java, communique avec les composants Web Services du serveur d'application en utilisant généralement le protocole SOAP (HTTP+XML).

Clients Mobiles

Les clients mobiles (Androïde, iPhone, Tablette) communiquent avec les composants Web Services en utilisant généralement le protocole HTTP ou SOAP.

Couche Application

La couche Application est un médiateur entre la couche présentation et la couche métier. Elle gère les requêtes HTTP, les sessions, les autorisations, la validation des données, appelle les composants métier et génère des vues pour la présentation.

Couche Métier

La couche Métier représente le cœur de l'application. Elle récupère les données nécessaires, gère les traitements métier et assure la gestion du workflow.

Signup and view all the flashcards

Séparation entre la couche DAO et la couche Métier

La Couche DAO (Data Access Object) gère l'accès aux données, tandis que la Couche Métier gère la logique métier. Cette séparation est essentielle pour la modularité, la maintenance et l'indépendance vis-à-vis des systèmes de stockage.

Signup and view all the flashcards

EJB (Entreprise Java Bean)

Les EJB (Entreprise Java Bean) sont des composants serveurs qui respectent les spécifications d'un standard édité par Sun. Ces spécifications définissent une architecture, un environnement d'exécution et un ensemble d'API.

Signup and view all the flashcards

Qu'est-ce que les EJB?

Les EJB (Enterprise Java Beans) sont des composants logiciels qui facilitent le développement d'applications distribuées pour les entreprises. Ils permettent aux développeurs de se concentrer sur la logique métier, car les EJB gèrent des aspects techniques comme la gestion des transactions et la persistance des données.

Signup and view all the flashcards

De quoi est composé un EJB?

Un EJB est composé d'interfaces, de classes et de descripteurs de déploiement (fichiers XML). Ces composants fonctionnent ensemble pour définir le comportement et la configuration de l'EJB.

Signup and view all the flashcards

Quel est le rôle d'un serveur d'application pour les EJB?

Un serveur d'application est un environnement d'exécution qui fournit des services nécessaires au fonctionnement des EJB. Il héberge les conteneurs EJB et gère des fonctionnalités clés pour les applications.

Signup and view all the flashcards

Quel est le rôle du conteneur EJB?

Le conteneur EJB est l'environnement d'exécution direct des EJB. Il offre des services essentiels pour la gestion des EJB, tels que le cycle de vie, l'accès, la sécurité et les transactions.

Signup and view all the flashcards

Comment les clients interagissent-ils avec les EJB?

Les clients ne communiquent pas directement avec le serveur d'applications. Au lieu de cela, ils interagissent avec les EJB via le conteneur EJB, qui assure une communication sécurisée et gère les services.

Signup and view all the flashcards

Quel est le rôle des Entity Beans?

Les Entity Beans sont responsables de la persistance des données, c'est-à-dire de stocker et de récupérer des informations de manière durable.

Signup and view all the flashcards

Quel est le rôle des Session Beans?

Les Session Beans gèrent les transactions, l'accès aux données et d'autres opérations logicielles. Ils sont des composants temporaires, contrairement aux Entity Beans.

Signup and view all the flashcards

Quel est le rôle des Message Driven Beans?

Les Message Driven Beans (MDB) sont des composants qui traitent des messages de manière asynchrone, c'est-à-dire que les tâches ne se produisent pas immédiatement.

Signup and view all the flashcards

Interface Remote

Une interface Java annotée avec l'annotation @Remote, utilisée pour la communication entre applications à distance.

Signup and view all the flashcards

Interface Local

Une interface Java annotée avec l'annotation @Local, utilisée pour la communication au sein du même serveur d'application.

Signup and view all the flashcards

EJB Session

Un type d'EJB qui implémente les interfaces Remote et Local, permettant de gérer les opérations métier et les accès aux données. Son comportement dépend de l'annotation utilisée (@Stateless, @Stateful, @Singleton).

Signup and view all the flashcards

EJB Session @Stateless

Un EJB Session avec un pool d'instances partagé, chaque nouvelle connexion utilisant une instance existante. Il s'agit du type le plus courant.

Signup and view all the flashcards

EJB Session @Stateful

Un EJB Session avec une instance dédiée par connexion, maintenant l'état de la connexion entre les appels. Gardez à l'esprit que cet EJB consomme plus de ressources.

Signup and view all the flashcards

EJB Entity

Un EJB Entity représente une table dans une base de données relationnelle.

Signup and view all the flashcards

Annotations EJB

Les annotations sont utilisées pour définir le mappage entre les attributs d'une classe EJB Entity et les colonnes d'une table de base de données.

Signup and view all the flashcards

DataSource

Un DataSource est un point d'accès aux bases de données. Il définit les paramètres de connexion à la base de données.

Signup and view all the flashcards

Fichier persistence.xml

Le fichier persistence.xml configure l'unité de persistance dans une application Java EE. Il définit le mappage entre les classes EJB et la base de données.

Signup and view all the flashcards

Interface EJB

Une interface EJB est un contrat qui définit les méthodes accessibles aux clients.

Signup and view all the flashcards

Interface IBanqueLocal

L'interface IBanqueLocal est une interface EJB accessible uniquement au sein de la même application Java EE que l'EJB.

Signup and view all the flashcards

Interface IBanqueRemote

L'interface IBanqueRemote est une interface EJB accessible par des clients distants.

Signup and view all the flashcards

Clé primaire

Une propriété qui permet d'identifier un enregistrement unique dans la base de données.

Signup and view all the flashcards

Mapping Objet-Relationnel

L'API (JPA) est utilisée pour mapper les objets Java (Beans) vers les tables de la base de données. En d'autres termes, cela permet la synchronisation entre les deux mondes.

Signup and view all the flashcards

Annotation @Entity

Une annotation qui indique que la classe correspond à une table dans la base de données.

Signup and view all the flashcards

Annotation @Table

Annotation qui permet de spécifier le nom de la table dans la base de données à laquelle la classe est associée.

Signup and view all the flashcards

Annotation @Column

Annotation qui associe une propriété d'une classe à une colonne de la table.

Signup and view all the flashcards

Annotation @Id

Annotation qui marque une propriété comme étant la clé primaire de la table.

Signup and view all the flashcards

Annotation @GeneratedValue

Annotation qui permet de générer automatiquement la clé primaire. Utile si vous ne souhaitez pas gérer les ID manuellement.

Signup and view all the flashcards

Annotation @Basic

Indique que la propriété doit être persistée dans la base de données.

Signup and view all the flashcards

Annotation @Transient

Annotation qui indique à JPA d'ignorer cette propriété lors de la persistance.

Signup and view all the flashcards

Annotation @OneToMany

Annotation qui permet de gérer les relations « un-à-plusieurs » entre les entités.

Signup and view all the flashcards

Annotation @ManyToOne

Annotation qui permet de gérer les relations « plusieurs-à-un » entre les entités.

Signup and view all the flashcards

Annotation @ManyToMany

Annotation qui permet de gérer les relations « plusieurs-à-plusieurs » entre les entités.

Signup and view all the flashcards

Annotation @OneToOne

Annotation qui permet de gérer les relations « un-à-un » entre les entités.

Signup and view all the flashcards

Nom JNDI pour EJB Stateless et Singleton (JBoss 7)

Le nom JNDI complet pour un EJB Stateless ou Singleton sur JBoss 7 est : Nom_Projet_EAR/Nom_Projet_EJB/Name!Package.NomInterface. Il identifie l'EJB pour l'accès via JNDI.

Signup and view all the flashcards

Nom JNDI pour EJB Stateful (JBoss 7)

Le nom JNDI complet d'un EJB Stateful sur JBoss 7 est : Nom_Projet_EAR/Nom_Projet_EJB/Name!Package.NomInterface?statful. La partie '?statful' indique le type Stateful.

Signup and view all the flashcards

Interface locale dans un EJB

Dans le développement d'applications Java, l'interface locale permet la communication entre les composants d'une même application, généralement sur la même machine virtuelle. Elle simplifie le développement et améliore le temps d'exécution.

Signup and view all the flashcards

Interface distante dans un EJB

L'interface distante permet la communication entre des composants situés sur des machines différentes. Elle est utilisée pour accéder à des EJB à partir d'applications externes.

Signup and view all the flashcards

Classe Bean (EJB Session)

La classe Bean (EJB Session) est le composant métier qui implémente les méthodes de l'interface locale ou distante. Il contient la logique métier de l'application.

Signup and view all the flashcards

Study Notes

Chapitre 4: Entreprise Java Bean (EJB)

  • L'application informatique répond aux besoins fonctionnels de l'entreprise.
  • Les besoins fonctionnels varient selon le métier de l'entreprise.
  • Les performances (temps de réponse, disponibilité, tolérance aux pannes, montée en charge) sont essentielles.
  • La maintenance doit être possible : l'application doit évoluer, les modifications doivent être limitées et l'extension possible.
  • La sécurité, la portabilité et la distribution sont importantes.
  • L'application doit fournir des services à différents clients.
  • Le coût doit être minimal.

Architecture de l'application J2EE

  • L'architecture inclut un serveur d'application J2EE.
  • Le serveur d'application est composé de plusieurs conteneurs tels que le Web Container (Couche Web), l'EJB Container (Couche Métier), et le SGBD.
  • Le Client Java utilise RMI.
  • Le Client Web utilise HTTP, SOAP, Servlet, JSP et Web Services.
  • Les interactions entre les différentes couches de l'application sont illustrées dans un diagramme.
  • L'application utilise une base de données (SGBD).

Couches de l'application

  • Couche Présentation :
    • Présente l'interface homme-machine de l'application.
    • Dépend du type de client (client lourd, client léger ou mobile).
  • Couche Application :
    • Regroupe la couche web et la couche service.
    • Médiateur entre la couche présentation et la couche métier.
  • Couche Métier :
    • Cœur de l'application.
    • Gère les traitements métiers.
    • Sépare la logique métier de l'accès aux données.
    • Structure stable par rapport à la couche DAO (Data Access Object).
  • Couche DAO :
    • Gère l'accès aux données de la base de données.

EJB Entity (Persistance des données)

  • Représentent des objets persistants.
  • Stockent leurs états dans une base de données.
  • Décrivent la structure de données manipulée par l'application.
  • Permettent le partage de données entre applications.
  • Gérés par JPA2 (EntityManager) et sessions beans.
  • Les entités encapsulent les données d'une ou plusieurs tables.
  • Les Beans Entity sont des POJO (Plain Old Java Object).
  • Annotés avec @Entity pour être traités comme des entités.
  • Doivent avoir au moins une propriété annotée @Id comme clé primaire.
  • Les propriétés sont mappées sur les champs de la table de la base de données.
  • Le mapping objet-relationnel utilise l'API JPA.
  • Plusieurs annotations JPA sont utilisées (e.g., @Entity, @Table, @Column, @Id, @GeneratedValue).
  • Les annotations @Basic, @Transient, @OneToMany, @ManyToOne, @ManyToMany, @OneToOne sont aussi utilisées pour le mapping.

EJB Session

  • Trois types d'EJB Session:
    • Stateless : sans état (une instance par connexion).
    • Stateful: avec état (une instance par connexion).
    • Singleton: une seule instance.
  • Une interface Remote est accessible depuis d'autres machines.
  • Une interface Local est accessible localement.
  • Les annotations @Remote, @Local, @Stateless, @Stateful, et @Singleton sont utilisées pour définir les types de bean.
  • L'attribut name de ces annotations permet de spécifier le nom JNDI.

Exemple de problème

  • Gérer des comptes bancaires incluant les comptes courants et les comptes épargnes.
  • Gérer des clients et des employés.
  • Gérer les opérations (versements et retraits).

Déploiement

  • Créer les entités Java (Client, Employé, Compte, Groupe, Opération).
  • Créer la base de données et ses tables.
  • Créer le fichier Standalone.xml configurant le Serveur JBoss.
  • Configurer l'unité de persistance avec le fichier persistence.xml.
  • Implémenter les interfaces Locale et Remote.
  • Déployer le projet Java sur le serveur JBoss.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Use Quizgecko on...
Browser
Browser