Frage

Ich konnte keine ähnliche Frage zu finden.

Ich betrachte derzeit die beste Lösung eines Grid -Computing -Problems.

Die Einrichtung:

  • Ich habe eine Server-/Client -Situation, in der Clients [in der Regel von den meisten Logiks stumm] und Anweisungen vom Server erhalten
  • Eine Autorisierungsanfrage haben
  • Kunden melden Informationen über die Geschwindigkeit des Ausfüllens der Aufgabe zurück (die Aufgabe wird schwierig nach dem Aufgabentyp beurteilt)
  • Kunden erhalten die beste Passform für ihre vorherige Leistung (die besten Kunden erhalten die schlechtesten Probleme)

Schließlich wären die Anforderungen:

  • Der Fußabdruck des Kunden muss klein und eigenständig sein - ich kann keinen Kunden haben, der viel installieren und einrichten erfordert
  • Der Kunde sollte in der Lage sein, vom Server neue Jobs und Arbeitsplätze aus dem Server zu holen (es wäre schön, die Grid -Skala auf neue Probleme zu haben [und die neuen Probleme würden vom Server verteilt], die eingeführt werden.
  • Ich muss eine Authentifizierungsschicht haben (muss nicht komplex sein oder einem vorhandenen LDAP entsprechen) [einfacher: Kunden können sich für eine neue "Mitgliedschaft" anmelden und Zugriff erhalten] (ich bin mir nicht sicher, dass die Stärken von RMI hier liegen ))
  • Die Kunden könnten in einer vernetzten Umgebung eher aus dem Internet laufen
    • Dies bedeutet Verschlüsselung der angeforderten Ergebnisse

Ich verwende derzeit Webservices, um zwischen den Clients und dem Server zu kommunizieren. Alle Informationen und Ergebnisse gehen zurück zum Hosting -Server (J2EE).

Meine Frage ist ein Grid -System -Setup, das alle/die meisten dieser Anforderungen entspricht, und ist Open Source?

Ich bin nicht daran interessiert, eine Cloud zu machen, da die meisten dieser Aufgaben klein, aber sehr häufig sind (einmal am Tag, aber die Aufgabe kann einfach sein, aber Wartung durchführt).

Der gesamte Code für dieses System befindet sich in Java.

War es hilfreich?

Lösung

Möglicherweise möchten Sie untersuchen Weltraumbasierte Architekturen, und besonders Jini und Javaspaces. Was ist Jini? Es ist im Wesentlichen RMI mit einem konfigurierbaren Entdeckungsmechanismus. Sie fordern einen Implementierer einer Java -Schnittstelle an, und das Jini -Subsystem findet aktuelle Dienste, die diese Schnittstelle implementieren, und informiert Ihren Dienst dynamisch.

Kurz gesagt, Sie würden die Arbeitselemente in einen Raum schreiben. Die Rasterknoten würden eingerichtet, um Daten transaktionell aus dem Raum zu lesen. Jeder Gitterknoten würde ein Arbeitselement nehmen, es verarbeiten und ein Ergebnis in diesen Raum (oder einen anderen Raum) zurückschreiben. Der Verteilungsknoten kann die zurückgeschriebenen Ergebnisse überwachen (und für Ihre projizierten Ergebniszeiten, wie Sie angefordert haben).

Es ist alles Java und wird linear skalieren. Da es sich um Jini handelt, können die Gitterknoten ihre Klassen dynamisch von einem HTTP -Server laden und so die Code -Updates trivial verbreiten.

Andere Tipps

Schauen Sie an Rasterbohnen

BOINC Klingt so, als würde es für Ihr Problem funktionieren, obwohl Sie Java für Ihre Kunden einwickeln müssen. Das, und es kann für dich übertrieben sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top