1

Ich bin relativ neu zu entwickelnden Web-Anwendungen.Auswahl der Architektur für die Exposition CLIPS-Expertensystem als Web-Anwendung

Ich möchte Ihre Kommentare und Verbesserungsvorschläge für die folgenden architektonischen Überlegungen.

Ich habe ein Expertensystem ES mit CLIPS entwickelt. Jetzt plane ich, dies einer Vielzahl von Benutzern aus unserem Unternehmen als Web-Anwendung zur Verfügung zu stellen. Bevor ich mit näheren Details beginne, überlege ich derzeit, welche Technologien beteiligt sein sollten.

Ziel ist, dass der Benutzer der Web-App mit einer Chat-ähnlichen Animation konfrontiert wird, die ihn zum Endergebnis führt, während er dem ES mehr und mehr Input gibt.

Nach einigen Recherchen auf meinem eigenen leitenden kam ich auf der folgende Idee

Im Backend I PyCLIPS als Schnittstelle zwischen Python und CLIP

Dann benutze ich DJANGO für meinen Python-Code in die integrierende Webseite, die den Chat zwischen Benutzer und ES dynamisch verändert.

Es gibt eine Sache, die mich besonders beunruhigt: Wie soll ich viele gleichzeitige Benutzer verwalten? Soll ich ein ES mit jedem Benutzer verwenden, der eine individuelle Menge von Fakten hat, oder soll jeder Benutzer seine eigene Instanz des ES haben?

Haben Sie andere High-Level-Ansätze für dieses Problem, die dieser überlegen sein könnten?

Ich freue mich auf Ihre Erfahrungen und Anregungen in dieser Angelegenheit.

Best

Antwort

0

Es ist normalerweise eine gute Idee, Ihr Expert System in separate „Scherben“ zu spalten.

Er hält die Regelbasis einfacher (da Sie nicht unterscheiden müssen, auf welchen Benutzer sich ein Fakt bezieht) und Sie können horizontal skalieren, wenn mehr Benutzer hinzugefügt werden.

Wenn die Ausführung eines ES pro Benutzer zu viel erscheint, können Sie die Granularität verringern, indem Sie z. B. basierend auf dem ersten Buchstaben des Benutzernamens oder der ID sharting durchführen.

Beim Entwerfen ähnlicher Lösungen tendiere ich dazu, die Frontend-Anwendung mit dem ES zu entkoppeln, indem ich ein Warteschlangensystem verwende. Auf diese Weise können Sie das Cluster-Layout ändern, ohne die öffentlichen APIs ändern zu müssen.

| Flasche | ----> | RabbitMQ | ----> | ES Arbeiter |

Falls Sie Ihre Sharding-Strategie ändern möchten, können Sie das Layout der Brokerwarteschlangen einfach neu konfigurieren, ohne den Client/Endbenutzer zu beeinflussen.

0

Ich würde vorschlagen, das Expertensystem in einem zustandslosen Modus auszuführen. Jedes Mal, wenn der Benutzer Änderungen vornimmt, senden Sie alle Daten von der Webseite an das Expertensystem und rufen dann die Ergebnisse ab, die auf der Webseite angezeigt werden sollen. Dies zu tun, skaliert besser, wenn Sie mehrere Benutzer haben, und erleichtert die Implementierung von Rückgängig-Logik, wenn der Benutzer eine Antwort ändern möchte. Es gibt ein Beispiel, das zeigt, wie man dies mit einer CGI-Anwendung unter http://www.clipsrules.net/?q=Downloads/CLIPSCGI macht.

Verwandte Themen