Serviço da Web que permite aos usuários manter independentemente uma cultura de comunicação on-line

Nas postagens anteriores , foi proposta uma nova abordagem para moderar as discussões na Internet, que não requer um moderador nomeado ou votação coletiva e permite que usuários de sites diferentes se organizem em uma espécie de comunidade de moderadores. Essa abordagem permitirá que os usuários controlem a cultura da comunicação on-line, o que reduzirá a carga dos proprietários de sites para moderar comentários.



Foi oferecido aos leitores de Habr um pequeno exemplo de teste de uma fita de comentários na qual foi possível tentar essa abordagem em ação.

Obrigado a todos que participam dos testes! As estatísticas iniciais já nos permitem dizer que os leitores realizam moderação com confiança. Agora é hora de seguir em frente. Neste post, quero discutir o dispositivo mais simples possível para um serviço da Web que implementa essa abordagem. Infelizmente, a experiência para a implementação de tal tarefa não é suficiente; portanto, é necessário o conselho da comunidade Habr.

Quais são os requisitos atuais para o serviço da web?

  • Fácil conexão de novos sites ao serviço da web.
  • funções básicas simples da API de moderação.
  • no estágio inicial, ele deve suportar uma carga de pelo menos 40-50
    usuários moderadores simultaneamente.
  • a longo prazo, não deve ser difícil de escalar.

Dado esses requisitos, o diagrama de serviço da Web apresentado na figura ainda está aparecendo.



Para conectar seu site ao serviço da web, o proprietário do site precisará de:

  • instale um script no site js que encapsule funções para trabalhar com a API.
  • Adicione atributo moderado ao campo de entrada do comentário , no qual o script se concentrará. Depois disso, quando você clicar no campo de comentário, uma caixa de diálogo de moderação será exibida.
  • Adicione o atributo moderado a cada comentário no feed , no qual o script se concentrará. Depois disso, um botão aparecerá ao lado de cada comentário que abrirá a caixa de diálogo de moderação.

No processo de seu trabalho, o script usará as seguintes funções da API de moderação (é claro, haverá mais funções que devem garantir o funcionamento da Comunidade, mas agora consideramos apenas as básicas):

  • GetAccessToken , IN: api_key.
    Solicite um token temporário para a verificação atual. Nesse token, criptografado no lado do servidor, todos os dados necessários para o servidor são armazenados, permitindo ao servidor identificar a verificação atual e distinguir uma verificação da outra. O token tem uma vida útil limitada. O proprietário do site deve registrar um api_key exclusivo no serviço da web, incluído no 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 .

O Apache mod_php está atualmente planejado como um servidor web . Prós: funciona rapidamente, requer um mínimo de conhecimento de configuração. Como menos: scripts são executados a partir de um único usuário apache.

As funções da API de serviço da web estão planejadas para serem executadas em php . Prós: velocidade de desenvolvimento, plataforma cruzada, desempenho aceitável. Contras: segurança (no entanto, está planejado usar a versão 7, onde há menos buracos)

Usaremos o Sphinx como base . Prós: Fácil instalação, velocidade de pesquisa e facilidade de dimensionamento em comparação com o banco de dados relacional. Menos: a falta de consultas de junção, mas isso é resolvido pela estrutura correta do banco de dados.

Até agora, parece que inicialmente tudo isso pode ser executado em um VPS comum e, assim, garantir o trabalho de 40 a 50 usuários moderadores ao mesmo tempo. Se a carga aumentar, no VPS não será difícil adicionar recursos (memória, processador, capacidade do disco) e se a carga no DB Sphinx aumentar, não será difícil implantar outra instância do Sphinx.

Perguntas:

Quais podem ser as "armadilhas" nesta implementação? E quais tecnologias você usaria para implementar a versão mais simples de um serviço da Web?

Obrigado pela atenção !


All Articles