0

Je cherche un framework (open source) pour l'informatique distribuée pour .Net/Mono qui n'est pas simplement basé sur les tâches mais qui supporte la persistance des tâches distribuées .Cadre pour l'informatique distribuée pour .Net/Mono qui supporte la persistance des tâches distribuées

Le projet en question est une simulation de système complexe qui doit être répartie en «sous-émulations» indépendantes plus petites. Ces sous-simulations continueront à fonctionner pendant une longue période et recevront et transmettront à intervalles réguliers des données au maître où une vue avec des résultats agrégés est mise à jour et présentée à l'utilisateur. Par conséquent, le travail à distribuer (les sous-simulations) est à état et doit rester en existence (en ligne ou hors ligne) chez les travailleurs pendant une longue période, sur plusieurs sessions. Cela nécessitera un stockage local persistant (sérialisation) par le travailleur (les sous-simulations sont assez volumineuses et il ne sera pas efficace de les renvoyer au maître pour chaque session). Le cadre doit offrir une transparence quant au réseau sous-jacent ou à la plate-forme cloud utilisé en permettant l'utilisation de différentes implémentations (par exemple un cluster local, Internet, une machine, des plates-formes cloud tierces). Ce serait bien si au niveau du modèle/de la simulation, les performances pouvaient être ajustées en fonction de la latence du réseau (par exemple en ajustant la fréquence et la granularité des données qui sont envoyées entre les opérateurs et le maître).

J'ai regardé NGrid mais cela semble inachevé et daté. J'ai également regardé quelques-uns des autres suspects habituels (MPAPI, MPI.NET, Alchemi, etc.) mais pour autant que je sache, ceux-ci ne répondent pas aux exigences. Si un tel cadre n'existe pas, je suis intéressé par des conseils sur la conception d'un tel cadre.

Répondre

1

Avez-vous regardé le framework Microsoft DSS/CCR? C'est un SOA, framework concurrent initialement développé sur la plateforme robotique. Nous l'avons déjà utilisé pour créer un simulateur de trafic. Ce n'est pas ouvert en soi, mais ce n'est pas cher, et je crois libre pour le monde universitaire.

Vous auriez à écrire la logique pour créer des travaux parallèles, mais cela ne devrait en théorie pas être difficile. Le cadre a un tas d'outils de gestion. Hadoop est aussi une autre alternative et probablement ce que je recommanderais. Les demandes de stockage que vous avez faites sont plus viables avec cette solution en utilisant le système de fichiers hadoop.

http://wiki.apache.org/hadoop/HadoopStreaming Is there a .NET equivalent to Apache Hadoop?

également dans le fil au-dessus de SO est la technologie myspace http://code.google.com/p/qizmt/

+0

DSS/CCR semble intéressant. C'est gratuit maintenant selon MS. Je dois regarder plus profondément encore. – Peladao

0

Jetez un coup d'œil à Gearman (http://gearman.org/). Il fournit la plupart des exigences que vous avez mentionnées. Le principal problème de Gearman est que le serveur doit être hébergé sur une machine Linux (ou que vous utilisez l'implémentation PEARL ou Python du serveur). Les nœuds peuvent fonctionner sur n'importe quel environnement/plate-forme.

+0

Merci, semble intéressant. J'ai déjà commencé à concevoir ma propre solution en utilisant WCF. Je suppose que mes besoins peuvent être trop spécifiques à l'application pour un cadre général. – Peladao