Please enable JavaScript.
Coggle requires JavaScript to display documents.
Lógica de Negocio ¿Cliente o Servidor? Por: Jaime enrique Garcia Ruiz,…
Lógica de Negocio ¿Cliente o Servidor?
Por: Jaime enrique Garcia Ruiz
Esquema cliente servidor
El cliente por lo general lo que hace es que emite solicitudes y el servidor la responden es un esquema de solicitud respuesta donde en la implementación más tradicional el cliente suele ser un elemento activo y el servidor suele ser un elemento pasivo es decir que está esperando solicitudes obviamente de esquemas donde esto puede variar un poco pero es la idea básica
Esta forma de distribuirlos por lo general suele ser o suele corresponder a temas de infraestructura o elementos físicos puede corrección una máquina virtual puede correr sobre un contenedor pero la idea básica es que esta suele ser una separación más a nivel de infraestructura
Arquitectura de capas
Cuando hablamos de capas es una representación muy tradicional que tenemos en la arquitectura de tres capas
tenemos una capa de presentación que es la que interactúa con el usuario
luego tenemos una capa de dominio que es donde va a estar la lógica de negocio
también tenemos una capa de acceso a datos que es básicamente la que se va a poder conectar a una base de datos que es donde va a estar almacenada la información, pero también podría conectarse a un archivo plano pueda conectarse a otras fuentes
esto suele ser más lógico o sea es una representación lógica de nuestro sistema no es una representación física como si lo hablamos en el cliente servidor
¿Por que en el servidor?
la primera razón es facilidad de mantenimiento porque tienes una separación de las responsabilidades o sea sabes que la lógica de negocios está en el servidor sabes que la capa de presentaciones está directamente en el cliente eso te va a facilitar hacer el mantenimiento de la aplicación
por otro lado la facilidad de distribuir cambios porque porque si tu lógica de negocio cambio por alguna razón tú lo que haces es desplegar el servidor y ya quedan los cambios disponibles para todos los clientes si la lógica de negocio está en el cliente tienes que incurrir en un proceso adicional entonces por ejemplo si tienes una aplicación de escritorio pues tienes que volver a generar un instalador y los clientes tienen que darle una forma descargar esa nueva versión con las aplicaciones móviles ocurre algo similar si la lógica de negocio está en la aplicación móvil pues tú tienes que crear una nueva versión de la aplicación y llevarla a la
por otro lado, la lógica vamos a poder reutilizar
aparte de eso te permite proteger recursos importantes entonces por ejemplo si tienes las llaves o los apliques para acceder a una pide un tercero ponerlos en el servidor va a ser algo muchísimo más seguro si tú te llevas eso al cliente pues al final es un texto aunque si es por ejemplo una aplicación web fácilmente alguien va a poder acceder y vas a estar exponiendo esas credenciales cierto también por ejemplo tienes lógica de negocio propietaria eso va a quedar en el cliente si alguna forma en algoritmo o hay un proceso muy particular que no quieres que quede expuesto pues es mejor ponerlo en el servidor y eso sobre todo suele ser crítico en despliegues u en tipos de clientes donde hay mecanismos para poder acceder a esa lógica a esas apks y demás entonces también nos sirve muchísimo para proteger recursos importantes y estamos en un ambiente más controlado
¿Qué debería ir en el cliente?
la responsabilidad más importante del cliente y en la capa de presentación es que tenga la lógica de presentación son las cosas para las cuales la interfaz gráfica está hecha entonces pongamos un ejemplo sencillo tienes que mostrar por ejemplo tienes el estado de digamos de un producto cierto y ese producto tiene un estado que cuando el producto haya sido aprobado entonces el producto sale con un borde verde cierto verde citó bien bonito aprobado pero por otro lado si el producto aún no está aprobado está en un proceso de auditoría o algo así entonces queremos que algún borde en la aplicación salga gris cierto eso es lógica de presentación la lógica que se necesita puntualmente para la parte gráfica en eso es lo que se tiene que enfocar la capa de presentación
en la lógica que principalmente tiene que ir en el cliente validaciones de entrada de datos súper importantes campos requeridos campos numéricos por ejemplo fechas todo ese tipo de cosas encuentran un lugar muy en el cliente porque son variaciones que podemos hacer ahí instantáneamente y que no tenemos que estar viendo al servidor cierto
la otra responsabilidad súper importante es pasar las solicitudes del usuario hacia las capas inferiores entonces tienen que traducir el clic de un botón a una solicitud de alba que tiene que por ejemplo tomar ciertos datos crear un objeto y pasarlo a las siguientes capas entonces esta es la responsabilidad principal y eso es lo que debería ir ahí idealmente obviamente esto tiene también un contrapeso y es que tienes que tener una interacción constante con el servidor cierto de alguna forma el cliente tiene esa dependencia y siempre va a tener que estar ahí.
Referencias:
https://www.youtube.com/watch?v=SPmbxvvT7Aw&ab_channel=ManuelZapata