Arquitectura multinivel
Cualquier producto de software grande y complejo eventualmente evoluciona a una arquitectura de n niveles, puede comenzar con una aplicación de una sola página con una funcionalidad muy limitada, pero a medida que crece la complejidad, necesita dividirse en múltiples subsistemas para mantener la complejidad.
En un nivel muy alto, esto es lo que necesitarías:
- Nivel API (REST o cualquier tipo de servicios): este sería su punto de acceso principal para que cualquier dispositivo interactúe con su sistema. Este nivel podría contener múltiples API dependiendo de la complejidad de su aplicación. Pero, en general, debe tener la misma paridad de datos para todos los dispositivos y la única forma de lograrlo es mantener este nivel.
- Nivel de almacenamiento en caché: esto es opcional según sus necesidades, pero sin duda ayudaría si desea transformar el estado entre los dispositivos, por ejemplo, si un usuario interactúa con su aplicación en un dispositivo móvil y cambia a tableta o computadora portátil, puede comenzar la operación donde dejó . Pero esto es totalmente opcional dependiendo de la naturaleza de su aplicación. Pero un gran sistema de software ciertamente los usa, uno bueno, por ejemplo, si los marcadores de Google en Chrome, Google busca en los dispositivos. Todo está sincronizado.
- Nivel de datos: dónde almacenaría datos de usuario o cualquier otro dato que su aplicación serviría. También puede tener una sincronización entre el nivel de datos y el nivel de almacenamiento en caché para los datos a los que se accede con frecuencia, de esa manera su API podría llegar primero al caché y luego ir al nivel de datos en caso de que los datos no estén presentes en la capa de caché.
Esta es una descripción muy genérica para cualquier sistema de software en línea, Facebook, Google o cualquier otro sitio grande que trate con muchas complejidades y tenga múltiples capas de almacenamiento en caché y otros subsistemas para mantenerlo escalable y mantenible.
- ¿Por qué tengo enlaces que no se pueden hacer clic en los mensajes a mis contactos? ¿Es este un problema de LinkedIn o un problema del navegador?
- Estoy comenzando un negocio de comercio electrónico. No tengo mucho presupuesto para el marketing en redes sociales. ¿Cómo aumento el tráfico?
- Desarrollé una red social en PHP. Antes y después de ponerlo en funcionamiento, ¿qué precauciones / seguridad debo tomar sobre los datos y los inicios de sesión de los usuarios?
- Estoy iniciando un nuevo negocio. ¿Las redes sociales ayudarán a promover mi negocio fácilmente?
- Soy un emprendedor de inicio que construye un portal de trabajo con un sitio web de redes sociales para la industria a la que pertenezco. Para llevar esto adelante, ¿debería emplear a las personas o buscar socios en mi startup?
Pero, en general, para un sitio / aplicación pequeño si comienza de esta manera (arquitectura orientada al servicio), definitivamente ayudaría a escalar y mantener las cosas a largo plazo.