Este ecosistema nace de una asignatura del M谩ster en Ingenier铆a Web de la Universidad de Oviedo. El objetivo es crear un sistema distribuido basado en servicios SOA/MSA donde se exploren los distintos tipos de comunicaci贸n entre servicios. Es por ello que se emplean comunicaciones SOAP, REST y gRPC.
En el diagrama anterior se puede ver que el sistema consta de 3 grandes segmentos. Uno donde se ubican los distintos clientes. Otro p煤blico que expone servicios y enruta peticiones. Y, un bloque privado que no est谩 expuesto a internet donde residen los servicios que dan respuesta a las peticiones de los clientes. Los sevicios de los que se compone easidiomas son los siguientes:
| Servicio | Lenguaje | Descripci贸n |
|---|---|---|
| webclient | .NET | Expone por HTTP el sitio web que pueden usar los administradores del sistema. |
| mobileclient | Native React | Cliente m贸vil que expone la funcionalidad del sistema a los usuarios. |
| authenticationservice | .NET | Provee un mecanismo de autenticaci贸n para los usuarios registrados y de verificaci贸n de identidad en las peticiones a los servicios. |
| userservice | Java | Permite crear, actualizar, borrar y buscar usuarios. |
| postsservice | Java | Permite crear, actualizar, borrar y buscar posts. |
| chatsservice | .NET | Permite crear, actualizar, borrar y buscar conversaciones individuales. |
| translationsservice | .NET | A demanda de otros servicios traduce el texto que sea necesario al idioma seleccionado. |
| texttospeechservice | Python | Para una entrada de texto genera un audio que representa la entrada convertida a habla humana en el mismo idioma. |
| statisticsservice | Java | Permite centralizar todas las estad铆sticas relativas a las entidades del sistema en un mismo sitio. No es un sistema de monitorizaci贸n del sistema si no m谩s bien una cach茅 de estad铆stica. En este sistema se pueden encontrar datos como el n煤mero de mensajes por usuario, el n煤mero de usuarios registrados en las 煤ltimas 24h, etc. |
| offensivetextdetectionservice | Python | Continuamente busca texto que pueda ser ofensivo dentro de los posts nuevos. |
| languageidentificationservice | Java | Para los posts nuevos identifica el lenguaje en el que est谩n escritos y etiqueta dichos posts. |
| topicmodelingservice | Python | Para los posts nuevos se identifican los posibles t贸picos que contenga el post. |
| imagesservice | Java | Procesa imagenes (en nuestro caso, los avatares de los nuevos usuarios del sistema) y las sube a un bucket de Google Cloud Storage para poder acceder p煤blicamente a 茅stas |
