Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue - - PowerPoint PPT Presentation

plan
SMART_READER_LITE
LIVE PREVIEW

Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue - - PowerPoint PPT Presentation

Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue densemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Department of Informatics 5. Enterprise JavaBeans


slide-1
SLIDE 1

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
slide-2
SLIDE 2

Department of Informatics

Enterprise JavaBeans

  • 1. Definitions
  • 2. Global View
  • 3. Entity Beans
  • 4. Session Beans
  • 5. Message Beans
  • 6. Implementation
  • 5. Enterprise JavaBeans
slide-3
SLIDE 3

Department of Informatics

Composants: Motivation

  • Programmation usuelle
  • "programming in the small"
  • Le programmeur prend tout

en charge (construction des différents modules, interconnexions,…)

  • Grandes compétences

techniques

  • Structure de l'application peu

visible (tout est dans le code)

  • Programmation constructive

(ou par composants)

  • "programming in the large"
  • Le programmeur réutilise des

modules logiciels existants

  • Focalise l'expertise sur les

problèmes du domaine

  • Description de la structure à

l'aide d'un langage déclaratif

  • 5. Enterprise JavaBeans

5.1 Definitions

slide-4
SLIDE 4

Department of Informatics

Composants: Définition

  • Définition usuelle
  • module logiciel autonome pouvant

être installé sur différentes plates- formes

  • qui exporte différents attributs,

propriétés ou méthodes

  • qui peut être configuré
  • capable de s’auto-décrire

(introspection)

  • Intérêt : être des briques de base

configurables pour permettre la construction d’une application par composition

  • 5. Enterprise JavaBeans

5.1 Definitions

slide-5
SLIDE 5

Department of Informatics

Rôle des conteneurs

Encapsulation d’un composant

(techniquement par délégation)

prise en charge (masque) des services

systèmes (nommage, sécurité, transaction, persistance, ...)

prise en charge partielle des "connecteurs"

(composants ayant des relations avec d'autres composants)

  • 5. Enterprise JavaBeans

5.1 Definitions

slide-6
SLIDE 6

Department of Informatics

Les modèles de composants: de l'installation à l'introspection

  • Installer les composants
  • Packaging et déploiement dans un conteneur
  • Créer une instance
  • par des fabriques ("home")
  • configuration des valeurs initiales
  • Retrouver les composants
  • services de nommage ou maisons ("home")
  • Utiliser
  • invocation synchrone et événements
  • Introspection
  • découvrir leurs APIs (fonctionnelle)
  • découvrir les connecteurs (structurelle)
  • 5. Enterprise JavaBeans

5.1 Definitions

slide-7
SLIDE 7

Department of Informatics

Enterprise JavaBeans

Définition de Sun Microsystems:

L'architecture des Enterprise JavaBeans (EJB) est une architecture de composants pour le développement et le déploiement d'applications d'entreprise distribuées basées sur des composants. Les applications écrites en utilisant l'architecture des EJB sont évolutives, transactionnelles et sûres. Ces applications peuvent être écrites une fois, puis déployées sur toute plate-forme serveur qui supporte la spécification des EJB.

Autre définition plus courte:

Les EJB sont un modèle de composants côté serveur, basés sur les technologies à objets distribués, standard pour les CTM.

  • 5. Enterprise JavaBeans

5.1 Definitions

slide-8
SLIDE 8

Department of Informatics

Enterprise Java Beans: Components and Containers

  • An Enterprise Java Bean (EJB) is a component that provides

reusable business logic functionality and/or a representation of a persistent business entity

  • An EJB Container executes an EJB due to a client request.
  • Provides the plumbing necessary to execute the EJB including
  • non-business logic related functionality such as transactions, security,

concurrency, remote access, etc.

  • life cycle functions, e.g., creating, destroying, etc.
  • Client uses an interface to access the Bean indirectly
  • A deployment descriptor describes the structure of the Bean and

how to execute the Bean as part of an application

  • 5. Enterprise JavaBeans

5.1 Definitions

slide-9
SLIDE 9

Department of Informatics

J2EE and EJB

How does J2EE relate to Enterprise

JavaBeans technology?

Enterprise JavaBeans (EJB) technology is the basis of J2EE. EJB technology provides the scalable architecture for executing business logic in a distributed computing environment. J2EE makes the life of an enterprise developer easier by combining the EJB component architecture with other enterprise technologies to solutions on the Java platform for seamless development and deployment of server side applications.

  • 5. Enterprise JavaBeans

5.1 Definitions

slide-10
SLIDE 10

Department of Informatics

EJB Contrats

  • Fournir un modèle de

développement uniforme pour les applications qui utilisent les composants EB

  • Contrat coté client
  • fournir une vue uniforme du bean au
  • client. En particulier cette vue est

indépendante de la plate-forme de déploiement

  • Contrat coté conteneur
  • permettre la portabilité des beans sur

différents serveurs EJB

  • Contrat coté “packaging” (ejb-

jar/ear file)

  • fournir un format de fichier standard

pour “packager” les beans. Ce format doit être supporter par tous les outils liés aux EJB

  • 5. Enterprise JavaBeans

5.2 Global View

slide-11
SLIDE 11

Department of Informatics

EJB: Le contrat côté client

Localiser le bean

  • utilisation de JNDI

Utiliser le bean

  • utilisation de l’interface standard fournie par l’EB
  • Home Interface

– méthodes liées à la gestion du bean : create, remove, finder, ...

  • Remote Interface (méthodes de l’application)

Le container implémente le mécanisme de délégation

permettant de “faire suivre” l’appel au bean

Le client ne communique pas directement avec le

bean mais avec le container

  • 5. Enterprise JavaBeans

5.2 Global View

slide-12
SLIDE 12

Department of Informatics

EJB: Le contrat "conteneur"

L’EJB conteneur permet

gestion du cycle de vie, gestion de l’état, sécurité,

transaction distribuée, concurrence, extensibilité

ces services appellent des méthodes fournies par

le bean (callback methods)

Les conteneurs gèrent 3 types de beans

Entity beans Session beans Message driven beans

  • 5. Enterprise JavaBeans

5.2 Global View

slide-13
SLIDE 13

Department of Informatics

Cycle de vie d'un bean

Le conteneur gère le cycle de vie d’un bean Il fournit

administration du bean ("Home implementation")

  • permet aux clients de créer, détruire et rechercher un
  • bjet EJB
  • appelle les opérations correspondantes fournies par le

bean (callbacks)

gestion de l’état

  • Activation: le bean est chargé en mémoire
  • Passivation (Désactivation ): le conteneur peut

sauvegarder l’état du bean

  • 5. Enterprise JavaBeans

5.2 Global View

slide-14
SLIDE 14

Department of Informatics

Architecture

Client Interface

Container

Bean Instance

Client

Method invocation Method Delegation

TX support Security Persistence . . .

  • 5. Enterprise JavaBeans

5.2 Global View

slide-15
SLIDE 15

Department of Informatics

Structure d'un EJB

  • 5. Enterprise JavaBeans

5.2 Global View

slide-16
SLIDE 16

Department of Informatics

Création d'un EJB Objet

  • 5. Enterprise JavaBeans

5.2 Global View

slide-17
SLIDE 17

Department of Informatics

Interaction avec un EJB

  • 5. Enterprise JavaBeans

5.2 Global View

slide-18
SLIDE 18

Department of Informatics

EJB Object / Proxy d'EJB

Client never directly access Bean

instance

Client finds home interface via JNDI Client uses home interface to obtain a

reference to the Bean’s component interface.

  • 5. Enterprise JavaBeans

5.2 Global View

slide-19
SLIDE 19

Department of Informatics

Gestion des ressources "Pool" d'instances

Le serveur EJB maintient un pool d'instance de bean

  • 5. Enterprise JavaBeans

5.2 Global View

slide-20
SLIDE 20

Department of Informatics

Types of Beans

Entity Beans

Persistent data focus

Session Beans:

Client and application logic focus

Message Driven Beans

Asynchronous message processing

  • 5. Enterprise JavaBeans

5.2 Global View

slide-21
SLIDE 21

Department of Informatics

Classes and Interfaces

1.

Remote Interface

2.

Remote Home Interface

3.

Local Interface

4.

Local Home Interface

5.

Bean Class

6.

Primary Key

See: http://java.sun.com/j2ee/sdk_1.3/techdocs/api/

  • 5. Enterprise JavaBeans

5.2 Global View

slide-22
SLIDE 22

Department of Informatics

Remote Interface

Define the bean's business

methods that can be accessed from applications outside the EJB container.

  • 5. Enterprise JavaBeans

5.2 Global View «interface» javax.ejb.EJBObject «interface» RemoteInterface «interface» java.rmi.Remote

slide-23
SLIDE 23

Department of Informatics

Remote Home Interface

Defines the bean's life-cycle

methods that can be accessed from applications outside the EJB container:

Creating beans Removing beans Finding beans

  • 5. Enterprise JavaBeans

5.2 Global View

«interface» javax.ejb.EJBHome «interface» RemoteHomeInterface «interface» java.rmi.Remote

slide-24
SLIDE 24

Department of Informatics

Local Interface

Defines the bean's business

methods that can be used by

  • ther bean co-located in the

same EJB container (same address space)

Allow beans to interact

without the overhead of a distributed object protocol, which improves performance.

  • 5. Enterprise JavaBeans

5.2 Global View

«interface» javax.ejb.EJBLocalObject «interface» LocalInterface

slide-25
SLIDE 25

Department of Informatics

Local Home Interface

Defines the bean's life-cycle

methods that can be used by

  • ther co-located in the same

EJB container (same address space)

Allow beans to interact

without the overhead of a distributed object protocol, which improves performance.

  • 5. Enterprise JavaBeans

5.2 Global View «interface» javax.ejb.EJBLocalHome «interface» LocalHomeInterface

slide-26
SLIDE 26

Department of Informatics

Bean Class

The session and entity bean

classes actually implement the bean's business and life-cycle methods.

Usually does not implement any

  • f the bean's component

interfaces directly. However, it must have matching signatures of the methods defined in the remote and local interfaces and must have methods corresponding to some of the methods in both the remote and local interfaces.

  • 5. Enterprise JavaBeans

5.2 Global View

MyEntityBean MySessionBean «interface» java.io.Serializable «interface» javax.ejb.EnterpriseBean «interface» javax.ejb.EntityBean «interface» javax.ejb.SessionBean

slide-27
SLIDE 27

Department of Informatics

Primary Key

The primary key is a very simple

class that provides a pointer into the database.

Only entity beans need a

primary key.

  • 5. Enterprise JavaBeans

5.2 Global View

java.io.Serializable MyPrimaryKey

slide-28
SLIDE 28

Department of Informatics

Local vs. Remote Interfaces

  • Entity and Session Beans can support local and remote interfaces
  • Client is written to a specific interface
  • Interface(s) supported is not transparent to Bean provider
  • Local interface
  • Not location independent
  • Client and EJB run in the same JVM

– Example: A Bean always accessed by other Beans

  • Parameter passing is by reference (same as standard Java)
  • Well adapted for fine grained access
  • Remote interface
  • Location independent
  • Parameters passed by value (RMI semantics)
  • Well adapted for coarse grain access
  • 5. Enterprise JavaBeans

5.2 Global View

slide-29
SLIDE 29

Department of Informatics

Local vs. Remote Interfaces (2)

Reasons for Choosing Local vs. Remote Access

Type of client

  • If client is always a Web Component or another EJB,

choose local

Coupling

  • If tightly coupled, choose local

Scalability requirements

  • If strong scalability requirements, choose remote
  • 5. Enterprise JavaBeans

5.2 Global View