Servicio web que permite a los usuarios mantener independientemente una cultura de comunicación en línea

En publicaciones anteriores , se propuso un nuevo enfoque para moderar las discusiones en Internet, que no requiere un moderador designado o votación colectiva y permite a los usuarios de diferentes sitios organizarse en una especie de Comunidad de moderadores. Este enfoque permitirá a los usuarios controlar la cultura de la comunicación en línea, lo que reducirá la carga de los propietarios de sitios web para moderar los comentarios.



A los lectores de Habr se les ofreció un pequeño ejemplo de prueba de una cinta de comentarios en la que era posible probar este enfoque en acción.

¡Gracias a todos los que participan en las pruebas! Las estadísticas iniciales ya nos permiten decir que los lectores realizan moderación con confianza. Ahora es tiempo de seguir adelante. En esta publicación, quiero analizar el dispositivo más simple posible para un servicio web que implementa este enfoque. Desafortunadamente, la experiencia para la implementación de tal tarea no es suficiente, por lo tanto, se requiere el asesoramiento de la comunidad Habr.

¿Cuáles son los requisitos actuales para el servicio web?

  • Fácil conexión de nuevos sitios al servicio web.
  • funciones básicas simples de la API de moderación.
  • en la etapa inicial, debe soportar una carga de al menos 40-50
    moderando usuarios simultáneamente.
  • a la larga no debería ser difícil de escalar.

Dados estos requisitos, el diagrama del servicio web presentado en la figura todavía se avecina.



Para conectar su sitio al servicio web, el propietario del sitio necesitará:

  • instale un script en su sitio web js que encapsule funciones para trabajar con la API.
  • Agregue un atributo moderado al campo de entrada de comentarios , en el que se centrará el script. Después de eso, cuando haga clic en el campo de comentarios, aparecerá un cuadro de diálogo de moderación.
  • Agregue el atributo moderado a cada comentario en el feed , en el que se centrará el script. Después de eso, aparecerá un botón junto a cada comentario que muestra el cuadro de diálogo de moderación.

En el proceso de su trabajo, el script utilizará las siguientes funciones de la API de moderación (por supuesto, habrá más funciones que deberían garantizar el funcionamiento de la Comunidad, pero ahora consideramos solo las básicas):

  • GetAccessToken , IN: api_key.
    Solicite un token temporal para la verificación actual. En este token, encriptado en el lado del servidor, se almacenan todos los datos necesarios para el servidor, lo que permite al servidor identificar la exploración actual y distinguir una exploración de otra. El token tiene una vida limitada. El propietario del sitio debe registrar una clave api_key única en el servicio web, que se incluye en el token.
  • 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 está planeado actualmente como un servidor web . Pros: funciona rápidamente, requiere un mínimo de conocimiento de configuración. Como un signo negativo: los scripts se ejecutan desde un solo usuario de apache.

Las funciones de la API del servicio web están planificadas para ejecutarse en php . Pros: velocidad de desarrollo, multiplataforma, rendimiento aceptable. Contras: seguridad (sin embargo, se planea usar la versión 7, donde hay menos agujeros).

Usaremos Sphinx como base . Pros: Instalación fácil, velocidad de búsqueda y facilidad de escala en comparación con la base de datos relacional. Menos: la falta de consultas de unión, pero esto se resuelve con la estructura correcta de la base de datos.

Hasta ahora, parece que inicialmente todo esto puede ejecutarse en un VPS ordinario y, por lo tanto, garantizar el trabajo de 40-50 usuarios moderadores al mismo tiempo. Si la carga aumenta, en VPS no será difícil agregar recursos (memoria, procesador, capacidad de disco), y si la carga en DB Sphinx aumenta, no será difícil implementar otra instancia de Sphinx.

Preguntas:

¿Cuáles pueden ser los "escollos" en esta implementación? ¿Y qué tecnologías utilizaría para implementar la versión más simple de un servicio web de este tipo?

Gracias por la atención !


All Articles