Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Untitled Prezi

No description
by

JIHENE HERGLI

on 27 December 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Untitled Prezi

EJB Timer Service
Solution?
Introduction
Il est fréquent dans une application d'entreprise d'avoir besoin de fonctionnalités pilotées par des contraintes temporelles permettant leurs déclenchements de façons régulières ou périodiques ou à une date précise.

Exemple
un service de commerce en ligne
envoyer tous les ans un e-mail d’anniversaire à ses clients
produire des rapports toutes les nuits sur l’état du stock
afficher les statistiques
mensuelles des ventes
&&
rafraîchir un cache toutes les 30 secondes
Timer c'est quoi ?
Un service qui nous permet de créer une application avec des fonctionnalités pilotées par des contraintes temporelles.

Type de Timers
Persistent
Le conteneur les réactive automatiquement en cas d'arrêt puis de relance.

Les timers sont par défaut persistent
Non persistent
Ne survivent pas à un arrêt de conteneur.
Sa durée de vie est liée à la durée de vie de la JVM qui l'a créé et dans laquelle il s'exécute : il est considéré comme supprimé en cas d'arrêt de l'application ou d'arrêt volontaire ou non de la JVM.

Timers et les transactions
Un bean crée généralement un timer au sein d’une transaction. Si cette transaction est annulée alors le timer est aussi annulé.
Si le bean a annulé un timer au sein
d’une transaction qui par la suite sera annulée alors la résiliation du timer sera également annulée et dans ce cas la durée du timer sera réinitialisée.

EJB Timer Service
il y en a :

- Quartz
- Flux..

ET
Timer Service

Quand un client invoque une méthode EJB , le conteneur joue le rôle d'un proxy (EJB Object) entre le client et l'instance du bean. Celà permet au conteneur de fournir les EJB service (TimerService ) au client .
Évolution
EJB 2.1
EJB 3.0
EJB 3.1
Intégration du service
Timer
-Les timers doivent être créés par programmation


-La spécification des contraintes manque de flexibilité
- La possibilité de créer un timer par déclaration .

-L'enrichissement de l'interface TimerService pour créer un timer par programmation avec les mêmes fonctionnalités que par déclaration
Utilité des timers dans les EJBs
Écrire des applications autorisant les notifications Chronométrés.

Programmer un timer pour se produire à un moment donné, après une durée de temps, ou à des intervalles de temps.

Comme Ejb Timer fait partie des standars J2EE, son utilisation ne demande plus des couts supplémentaires ni en terme du temps ni d’argents. Aussi, on n’a aucun souci de son intégration et son support puisqu’ils sont gérés par le conteneur.
Utilisation des Timers
dans les EJBs
On peut les utiliser qu'avec session et MDBs (asynchrone et stateless)
@javax.ejb.Schedule
s'utilise sur une méthode qui sera le callback
invoqué à chaque fois que la contrainte
temporelle est activée.
Elle permet de créer un timer dont les caractéristiques sont fournies sous la forme d'attributs de l'annotation.
@Schedule(dayOfWeek="Mon-Fri", hour="22")
Du lundi au vendredi à 10 heure du soir
Un Timer peut être définit soit

Par déclaration : Ces Timers sont automatiquement créés par le conteneur au déploiement de l'EJB.
@javax.ejb.schedule
définies dans l'élément timeout-method du descripteur de déploiement.
Par programmation utilisation de TimerService soit:
Le bean implémente l'interface javax.ejb.TimedObject (ne définit qu'une seule méthode ejbTimeout() qui attend en paramètre un objet de type Timer encapsulant l'invocation de la méthode de callback.)
Utiliser l'annotation @javax.ejb.Timeout
L'interface Timer
L'interface javax.ejb.Timer propose des méthodes pour annuler un timer ou obtenir des informations sur lui.
La méthode creatTimer() crée un Timer avec différents types configurations:
singleenvent that expires once
interval timer that expires repeatedly at a specified interval
Plan
Introduction
Timer c’est quoi?
Type de timers
Timers et les transactions
EJB et les Timers
Evolution
Utilité des timers dans les EJBs
Utilisation des Timers dans les EJBs
Demo
Conclusion
Demo
Conclusion
EJB TimerService n'offre pas beaucoup de fonctionnalités par rapport à Quartz ou FLux
Mais il peut être utile dans certaines situations. Pour résumer ce service :
fait partie des spécifications de EJB3
C'est un service géré par le conteneur
Les transactions sont pris en charge par ce service
Par défaut , les EJB timers sont persistents.
Néanmoins ce service ne peut pas être utilisé dans des applications temps réels qui nécessitent de la précision.
Architecture
Merci pour votre attention
Réalisé par :

Hergli Jihene

Tazarki Wejden

Zahar Sabrine
Full transcript