2010-08-29 12 views
0

Je suis en train d'écrire une application pour un médecin qui devrait être capable de définir les notifications qui apparaîtront dans l'ordinateur du patient. Ces notifications sont planifiées par le médecin, de sorte qu'il/elle peut choisir quand il va apparaître. Par exemple: «Rappelez-vous de prendre vos pilules», montrez une fois par semaine, de janvier à juillet 2010.Planificateur de notification et concepteur dans java: recommandations d'implémentation

Ce serait donc quelque chose comme le planificateur d'événements du calendrier de Google, mais avec des conditions de temps beaucoup plus riches. Je me demande quelle est la solution/l'outil recommandé pour:

  • Planificateur de notification côté client. L'application du client est une application Java. Il doit avoir un planificateur d'événements d'arrière-plan qui vérifie les nouvelles notifications et si elles s'appliquent.
  • Concepteur/gestionnaire de notifications côté serveur. L'application du médecin devrait être capable de montrer un outil visuel pour définir les conditions de synchronisation (en Java aussi). Les notifications sont stockées dans une base de données pour l'accès à distance via le service Web.

Existe-t-il un outil open source disponible pour ce type de problème? De plus, j'ai lu des articles sur Drools, mais c'est un sujet complètement nouveau pour moi. Toute recommandation à ce sujet?

Répondre

0

Plusieurs planificateurs open source sont disponibles. Le quartz est l'un d'entre eux, permet un contrôle précis des tâches de planification.

0

Il semble que vous avez 3 questions distinctes mais liées:

  1. La programmation d'un ou plusieurs événements futurs.
  2. La persistance de la planification et des données contextuelles associées.
  3. Un modèle push pour [re-] délivrer un événement de planification du serveur au client.

Plus ou moins droite?

Pour la planification et la persistance, je vous recommande de regarder Quartz. Il vous fournira une API propre pour la planification (une fois ou récurrente) avec une certaine flexibilité, y compris une période fixe ou cron. Il conservera également les données de planification et le contexte (appelés Job) dans une base de données JDBC. En ce qui concerne le n ° 3, je ne sais pas comment vous voulez que cela fonctionne, mais une façon possible de le faire est que lorsque le client se connecte au serveur, il met en cache de manière non permanente le serveur à condition que les événements programmés ce client (ou utilisateur, etc.). Lorsque le client s'arrête, ces événements sont ignorés, mais renouvelés lors de la prochaine connexion. Une fois les événements chargés dans le client, le client assumera la responsabilité de les déclencher avec son propre planificateur local (Quartz ou même ScheduledThreadPoolExcutor).

Drools est un excellent moteur de règles, mais peut être trop puissant pour ce que vous essayez de faire.

// Nicholas