5 votes

Un framework pour la corrélation/analyse en temps réel de flux d'événements (aka CEP) en Erlang ?

J'aimerais analyser un flux d'événements partageant certaines caractéristiques (par exemple, une source commune) et, dans un laps de temps donné, établir une corrélation entre ces multiples événements et en tirer des conclusions, pour enfin lancer une action.

Ma connaissance limitée du traitement des événements complexes (CEP) me dit que c'est le candidat idéal pour de telles choses. Cependant, dans mes recherches jusqu'à présent, j'ai trouvé que les gens le comparent avec des moteurs de règles, et des classificateurs bayésiens, et parfois en utilisant une combinaison de ceux-ci.

Je voulais savoir s'il y avait

  1. quelques bonnes pratiques (idéalement appuyées par des données sur les performances et une description de la nature/du type d'événements) à suivre, en particulier en Erlang ?

  2. Erlang dispose-t-il d'un cadre CEP qui lui est propre ?

  3. Y a-t-il une bibliothèque de classificateurs bayésiens disponible en Erlang ?

Esper du monde Java semble être assez proche de ce que j'aimerais faire, mais je préférerais garder mon environnement Erlang uniquement (ou Erlang et C/C++ uniquement) si possible.

Pointeurs, conseils, orientations - tous sont les bienvenus.

Merci,

IC

3voto

Mark Steele Points 53

Il semble qu'elle soit en cours de développement :

https://github.com/vascokk/rivus_cep

2voto

I GIVE CRAP ANSWERS Points 12429

C'est peut-être une non-solution pour vous, mais quand même :

L'une des forces d'Erlang à jouer est sa capacité à servir de colle entre différents systèmes. Vous laissez la VM Erlang se placer au milieu et contrôler un certain nombre de sous-systèmes s'exécutant dans d'autres processus. La robustesse vient de la possibilité de redémarrer ces systèmes en cas de panne.

Pour un problème de classification, il semblerait dans une certaine mesure que la classification puisse se faire indépendamment du sous-système Erlang. En d'autres termes, vous utilisez le erlang:open_port/2 pour ouvrir un port vers l'autre programme et établir la communication avec lui. Le but est que votre programme sache si le port tombe en panne et puisse agir en conséquence.

Ma connaissance limitée des bibliothèques et outils Erlang n'a pas permis d'identifier d'outils CEP. Sont-ils difficiles à écrire soi-même ?

2voto

Kunthar Points 73

Nous avons quelques nouvelles librairies pour Erlang sur cep.

Voir ci-dessous :

https://github.com/danmacklin/erlang_cep

https://github.com/darach/eep-erl

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X