Simple basé sur java gestionnaire de flux de travail / de données de flux de travail avec la possibilité de commencer ext. demande, appelez web services, etc
Tout d'abord, s'il existe déjà une telle question comme le mien sur le stackoverflow, désolé pour ça, mais je n'ai pas réussi à la trouver. En fait, je ne sais pas ce que les balises pourrais-je l'utiliser pour effectuer une recherche de solution dont j'ai besoin.
En gros, j'ai besoin d'un outil/logiciel qui peut gérer des données(objets) flux à l'aide de plusieurs outils/actions au cours de l'ensemble du processus. Bien sûr, l'un des BPM/workflow plate-forme de l'outil peut probablement le faire, mais ils semblent être trop compliqué pour mes besoins.
J'ai un "statique" modèle de données intégré avec JPA/Hibernate. Alors j'ai besoin de changer que le modèle statique afin d'utiliser les différentes fonctions de traitement sur elle. Cette fonction pourrait être des classes java, services web ou une application externe (prenant en charge le mode batch). Après que j'ai besoin d'attraper la sortie de ces fonctions et de certains des visualisations, dessiner des graphiques, etc.
Je peux supposer que toutes ces fonctions de traitement d'avoir accès à un modèle statique et on peut la changer pour que spécifique donc il n'y a pas besoin de passer de l'entrée. D'autre part, la sortie devrait être pris par la main "gestionnaire de flux de travail".
Une chose de plus, l'ensemble du processus doit s'exécuter automatiquement, sans interactions de l'utilisateur (peut-être que ça va changer dans l'avenir, mais de regarder et de les présenter pour l'instant). Avant le démarrage du processus, l'administrateur doit définir les "fonctions de traitement" est utilisé et c'est tout.
Et une autre chose... le mieux serait si l'ensemble du processus a été déclenché lorsque la base de données de l'état a été modifié, mais il n'est pas crucial, je peux commencer par exemple par l'appel d'un service web.
La question est: dois-je utiliser l'un des BPM/Workflow tels que l'outil de jBPM ou en Or, écrire un simple "gestionnaire de flux de travail" sur mon propre ou utiliser un outil existant qui est beaucoup plus simple ensuite jBPM/Or (est-il?). Bien sûr, je préfère l'approche la plus facile...
Merci beaucoup pour tous vos commentaires.
OriginalL'auteur visionary | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
Apache Camel est un open source d'intégration de cadre qui va vous aider dans cette.
Vous pouvez utiliser Apache Camel de construire votre propre simple gestionnaire de flux de travail, où chaque processus met en œuvre Processeur. Vos données transmises par l'intermédiaire de transformateurs à l'aide de chameau L'échange. Découvrez chameau exemples pour plus d'informations.
Pour plus d'informations sur la façon d'écrire processeur personnalisé, veuillez lire ici.
Vous pouvez ajouter des Processeurs à un Chameau RouteBuilder de manière dynamique, de planifier l'aide de Planificateur Quartz etc., qui aura plus ou moins d'adresse à toutes vos exigences.
Ici est une bonne introduction à dos de Chameau : http://www.kai-waehner.de/blog/2012/05/04/apache-camel-tutorial-introduction/
Une simple mise en œuvre de Gestionnaire de Flux de travail à l'aide de Chameau:
WorkflowManager.java
ProcessOne.java
ProcessTwo.java
J'ai utilisé Chameau version 2.9.0 pour compiler ce code. Veuillez noter que j'ai utilisé une boucle infinie dans la principale méthode pour garder le thread principal en vie.
Ce code sera exécuté un itinéraire avoir ProcessOne et ProcessTwo, avec une période de 1 seconde. Vous pouvez voir la période de(...) méthode où j'ai ajouter des processeurs de route builder. Par conséquent, cette route va être exécuté plusieurs fois. Aussi, je n'essaie pas de flux de données. Vous pouvez utiliser de l'échange dans la méthode de traitement de chaque processeur de flux de données.
Sortie sera:
Vous pouvez utiliser des composants camel, afin de rendre votre WorkflowManager robuste.
Une chose de plus (désolé pour le double post, mais je ne peux pas modifier le commentaire précédent..). Le processus de deux attend toujours la fin du processus? Il n'existe aucun moyen pour commencer à exécuter le processus de deux avant le premier se termine (je veux dire, je veux que, juste une simple séquentiellement de traitement).
OriginalL'auteur jainbasil