Webdienst, mit dem Benutzer unabhängig eine Online-Kommunikationskultur pflegen können

In früheren Beiträgen wurde ein neuer Ansatz zur Moderation von Online-Diskussionen vorgeschlagen, der keinen ernannten Moderator oder eine gemeinsame Abstimmung erfordert und es Benutzern von verschiedenen Websites ermöglicht, sich in einer Art Community von Moderatoren zu organisieren. Dieser Ansatz ermöglicht es den Benutzern, die Online-Kommunikationskultur selbst zu steuern, wodurch die Belastung der Website-Eigentümer durch moderate Kommentare verringert wird.



Den Lesern von Habr wurde ein kleines Testbeispiel eines Kommentarbandes angeboten, in dem dieser Ansatz in Aktion ausprobiert werden konnte.

Vielen Dank an alle, die an den Tests teilgenommen haben! Bereits die ersten Statistiken lassen darauf schließen, dass die Leser selbstbewusst moderieren. Jetzt ist es Zeit weiterzumachen. In diesem Beitrag möchte ich das einfachste Gerät für einen Webdienst diskutieren, das diesen Ansatz implementiert. Leider reicht die Erfahrung für die Umsetzung einer solchen Aufgabe nicht aus, daher ist der Rat der Habr-Community erforderlich.

Was sind die aktuellen Anforderungen für den Webdienst?

  • Einfache Verbindung neuer Websites mit dem Webdienst.
  • einfache Grundfunktionen der Moderations-API.
  • In der Anfangsphase muss es einer Belastung von mindestens 40-50 standhalten und
    gleichzeitig Benutzer moderieren.
  • Auf lange Sicht sollte es nicht schwierig sein, zu skalieren.

Angesichts dieser Anforderungen zeichnet sich das in der Abbildung dargestellte Webdienstdiagramm immer noch ab.



Um Ihre Website mit dem Webdienst zu verbinden, benötigt der Websitebesitzer:

  • Installieren Sie ein Skript auf Ihrer js- Website , das Funktionen für die Arbeit mit der API enthält.
  • Fügen Sie dem Kommentareingabefeld ein moderates Attribut hinzu, auf das sich das Skript konzentrieren wird. Wenn Sie danach auf das Kommentarfeld klicken, wird ein Moderationsdialogfeld angezeigt.
  • Fügen Sie jedem Kommentar im Feed das moderate Attribut hinzu , auf das sich das Skript konzentrieren wird. Danach wird neben jedem Kommentar eine Schaltfläche angezeigt, die den Moderationsdialog aufruft.

Während seiner Arbeit wird das Skript die folgenden Funktionen der Moderations-API verwenden (natürlich wird es mehr Funktionen geben, die das Funktionieren der Community sicherstellen sollen, aber jetzt betrachten wir nur die grundlegenden):

  • GetAccessToken , IN: api_key.
    Fordern Sie ein temporäres Token für die aktuelle Prüfung an. In diesem auf der Serverseite verschlüsselten Token werden alle für den Server erforderlichen Daten gespeichert, sodass der Server den aktuellen Scan identifizieren und einen Scan von einem anderen unterscheiden kann. Der Token hat eine begrenzte Lebensdauer. Der Websitebesitzer muss einen eindeutigen api_key im Webdienst registrieren, der im Token enthalten ist.
  • GetChecks, IN: token. OUT:comments_list_for_check,last_comment_check_results
    . , , .
  • SetCheck, IN: token, comments_list_with_result, comment_for_check OUT: true/false
    . , ( ) true comment_for_check .

Apache mod_php ist derzeit als Webserver geplant . Vorteile: Es funktioniert schnell und erfordert ein Minimum an Konfigurationskenntnissen. Als Minus: Skripte werden von einem einzelnen Apache-Benutzer ausgeführt.

Die Webdienst-API-Funktionen sollen in PHP ausgeführt werden . Vorteile: Entwicklungsgeschwindigkeit, plattformübergreifende, akzeptable Leistung. Nachteile: Sicherheit (es ist jedoch geplant, Version 7 zu verwenden, wo weniger Löcher vorhanden sind).

Wir werden Sphinx als Basis verwenden . Vorteile: Einfache Installation, schnelle Suche und einfache Skalierung im Vergleich zu relationalen Datenbanken. Minus: Das Fehlen von Join-Abfragen, aber dies wird durch die korrekte Struktur der Datenbank gelöst.

Bisher scheint es, dass all dies zunächst auf einem normalen VPS ausgeführt werden kann und somit die Arbeit von 40-50 moderierenden Benutzern gleichzeitig sicherstellt. Wenn die Auslastung zunimmt, ist es in VPS nicht schwierig, Ressourcen (Speicher, Prozessor, Festplattenkapazität) hinzuzufügen, und wenn die Auslastung von DB Sphinx zunimmt, ist es nicht schwierig, eine andere Instanz von Sphinx bereitzustellen.

Fragen:

Was können die "Fallstricke" bei dieser Implementierung sein? Und mit welchen Technologien würden Sie die einfachste Version eines solchen Webdienstes implementieren?

Vielen Dank für Ihre Aufmerksamkeit !


All Articles