¿Cuál es la diferencia entre "Capas" y "Niveles"?
architecture
Cretzel
fuente
fuente
Respuestas:
Fuente: Rockford Lhotka, ¿Todas las aplicaciones deberían ser n-tier?
fuente
Lea la publicación de Scott Hanselman sobre el tema: http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx
fuente
Las capas se refieren a la separación lógica del código. Las capas lógicas lo ayudan a organizar mejor su código. Por ejemplo, una aplicación puede tener las siguientes capas.
1) Capa de presentación o Capa de IU 2) Capa empresarial o Capa de lógica empresarial 3) Capa de acceso a datos o Capa de datos
Las tres capas anteriores residen en sus propios proyectos, pueden ser 3 proyectos o incluso más. Cuando compilamos los proyectos obtenemos la DLL de capa respectiva. Entonces tenemos 3 DLL's ahora.
Dependiendo de cómo implementemos nuestra aplicación, podemos tener de 1 a 3 niveles. Como ahora tenemos 3 DLL, si implementamos todas las DLL en la misma máquina, entonces solo tenemos 1 nivel físico pero 3 capas lógicas.
Si elegimos implementar cada DLL en una máquina separada, entonces tenemos 3 niveles y 3 capas.
Entonces, las capas son una separación lógica y los niveles son una separación física. También podemos decir que los niveles son el despliegue físico de capas.
fuente
¿Por qué siempre intenta usar palabras complejas?
Una capa = una parte de su código , si su aplicación es un pastel, esta es una porción.
Un nivel = una máquina física , un servidor.
Un nivel aloja una o más capas.
Ejemplo de capas:
Nivel:
Su código está alojado en un servidor = Su código está alojado en un nivel.
Su código está alojado en 2 servidores = Su código está alojado en 2 niveles.
Por ejemplo, una máquina que aloja el sitio web en sí (la capa Presentación), otra máquina más segura que aloja el código más sensible a la seguridad (código comercial real: capa comercial, capa de acceso a la base de datos, etc.).
Hay tantos beneficios para implementar una arquitectura en capas. Esto es complicado y la implementación adecuada de una aplicación en capas lleva tiempo. Si tiene alguno, eche un vistazo a esta publicación de Microsoft: http://msdn.microsoft.com/en-gb/library/ee658109.aspx
fuente
He encontrado una definición que dice que las capas son una separación lógica y los niveles son una separación física.
fuente
En inglés simple, se
Tier
refiere a "cada uno en una serie de filas o niveles de una estructura colocada una encima de la otra", mientras que seLayer
refiere a "una hoja, cantidad o espesor de material, típicamente uno de varios, que cubre una superficie o cuerpo ".El nivel es una unidad física , donde se ejecuta el código / proceso. Por ejemplo: cliente, servidor de aplicaciones, servidor de bases de datos;
La capa es una unidad lógica , cómo organizar el código. Por ejemplo: presentación (vista), controlador, modelos, repositorio, acceso a datos.
Los niveles representan la separación física de la presentación, el negocio, los servicios y la funcionalidad de datos de su diseño en computadoras y sistemas separados.
Las capas son las agrupaciones lógicas de los componentes de software que componen la aplicación o el servicio. Ayudan a diferenciar entre los diferentes tipos de tareas realizadas por los componentes, lo que facilita la creación de un diseño que admita la reutilización de los componentes. Cada capa lógica contiene varios tipos de componentes discretos agrupados en subcapas, y cada subcapa realiza un tipo específico de tarea.
El patrón de dos niveles representa un cliente y un servidor.
En este escenario, el cliente y el servidor pueden existir en la misma máquina, o pueden estar ubicados en dos máquinas diferentes. La siguiente figura ilustra un escenario de aplicación web común en el que el cliente interactúa con un servidor web ubicado en el nivel de cliente. Este nivel contiene la lógica de la capa de presentación y cualquier lógica de capa empresarial requerida. La aplicación web se comunica con una máquina separada que aloja el nivel de base de datos, que contiene la lógica de la capa de datos.
Ventajas de capas y niveles:
La estratificación lo ayuda a maximizar la capacidad de mantenimiento del código, optimizar la forma en que funciona la aplicación cuando se implementa de diferentes maneras y proporcionar una delimitación clara entre las ubicaciones donde se deben tomar ciertas decisiones tecnológicas o de diseño.
Colocar sus capas en niveles físicos separados puede ayudar al rendimiento al distribuir la carga en varios servidores. También puede ayudar con la seguridad al segregar componentes y capas más sensibles en diferentes redes o en Internet en comparación con una intranet.
Una aplicación de 1 nivel podría ser una aplicación de 3 capas.
fuente
Sí, mis queridos amigos dijeron correctamente. La capa es una partición lógica de la aplicación, mientras que el nivel es una partición física de la partición del nivel del sistema depende de la partición de la capa. Al igual que una aplicación ejecutada en una sola máquina, pero sigue una arquitectura de 3 capas, por lo que podemos decir que la arquitectura de capa podría existir en una arquitectura de niveles. En términos simples, la arquitectura de 3 capas puede implementarse en una sola máquina, entonces podemos decir que es una arquitectura de 1 nivel. Si implementamos cada capa en una máquina separada, entonces se llama arquitectura de 3 niveles. Una capa también puede ejecutar varios niveles. Componente relacionado con la arquitectura de capa para comunicarse entre sí fácilmente.
Al igual que seguimos la arquitectura dada a continuación
Un cliente puede interactuar con la "capa de presentación", pero accede al componente público de la capa inferior (como el componente público de la capa de lógica de negocios) a la "capa de lógica de negocios" debido a razones de seguridad.
P * ¿por qué usamos la arquitectura de capa? porque si implementamos la arquitectura de capa, entonces aumentamos la eficiencia de nuestras aplicaciones como
==> seguridad
==> manejabilidad
==> escalabilidad
otra necesidad, como después de desarrollar la aplicación, necesitamos cambiar dbms o modificar la lógica de negocios, etc., entonces es necesario para todos.
P * ¿por qué usamos la arquitectura de niveles?
Debido a que la implementación física de cada capa brinda una mejor eficiencia, sin la arquitectura de capa no podemos implementar la arquitectura de niveles. una máquina separada para implementar un nivel separado y un nivel separado es implementar una o más capas, por eso la usamos.
Se utiliza con fines de tolerancia a fallos. ==> fácil de mantener.
Ejemplo simple
Al igual que un banco abierto en una cámara, en qué categorías el empleado:
Todos ellos son los componentes relacionados del sistema.
Si vamos al banco para fines de préstamo, primero un encargado de la puerta abre la puerta con una sonrisa y luego nos acercamos a una persona que presenta todos los esquemas de préstamo después de eso, vamos a la cabina del gerente y aprobamos el préstamo. Después de eso finalmente vamos al mostrador del cajero y tomamos el préstamo. Estas son la arquitectura de capa del banco.
¿Qué pasa con el nivel? La sucursal de un banco abre en una ciudad, luego en otra ciudad, luego en otra, pero ¿cuál es el requisito básico de cada sucursal?
exactamente el mismo concepto de capa y nivel.
fuente
Las capas son una separación lógica
related-functionality[code]
dentro de una aplicación, la comunicación entre capas es explícita y está débilmente acoplada. [Lógica de presentación, lógica de aplicación, lógica de acceso a datos]Los niveles son la separación física de
layers
[que se alojan en servidores individuales] en una computadora individual (proceso).Como se muestra en el diagrama:
n- Ventajas de nivel :
mejor
escalabilidad de seguridad : a medida que su organización crece Puede ampliar su nivel de base de datos con agrupación de bases de datos sin tocar otros niveles.
Mantenimiento : el diseñador web puede cambiar el código de vista, sin tocar las otras capas en los otros niveles. Actualice o mejore
fácilmente [Ej: puede agregar código de aplicación adicional, actualizar el área de almacenamiento o incluso agregar múltiples capas de presentación para dispositivos separados como dispositivos móviles, tabletas, PC]
fuente
Me gusta la siguiente descripción de Microsoft Application Architecture Guide 2
fuente
Utilizo capas para describir el arquitecto o la pila de tecnología dentro de un componente de mis soluciones. Utilizo niveles para agrupar lógicamente esos componentes típicamente cuando la red o la comunicación entre procesos están involucrados.
fuente
Técnicamente, un Nivel puede ser un tipo de entorno mínimo requerido para que se ejecute el código.
Por ejemplo, hipotéticamente se puede ejecutar una aplicación de 3 niveles
1 máquina física con 3 máquinas virtuales sin sistema operativo.
(Esa fue una aplicación de nivel 3- (hardware))
1 máquina física con 3 máquinas virtuales con 3 sistemas operativos diferentes / iguales
(Esa era una aplicación de nivel 3- (OS))
1 máquina física con 1 máquina virtual con 1 sistema operativo pero 3 servidores de aplicaciones
(Esa era una aplicación de nivel 3- (AppServer))
1 máquina física con 1 máquina virtual con 1 SO con 1 AppServer pero 3 DBMS
(Esa era una aplicación de nivel 3- (DBMS))
1 máquina física con 1 máquina virtual con 1 SO con 1 AppServers y 1 DBMS pero 3 libros de Excel.
(Esa era una aplicación de nivel 3- (AppServer))
El libro de Excel es el entorno mínimo requerido para que se ejecute el código VBA.
Esos 3 libros pueden sentarse en una sola computadora física o en varias.
He notado que, en la práctica, las personas quieren decir "Nivel de SO" cuando dicen "Nivel" en el contexto de descripción de la aplicación.
Es decir, si una aplicación se ejecuta en 3 sistemas operativos separados, entonces es una aplicación de 3 niveles.
Entonces, una forma pedagógicamente correcta de describir una aplicación sería
Apto para "1 a 3 niveles, que se ejecuta en 2 niveles".
:)
Las capas son solo tipos de código con respecto a la separación funcional de tareas dentro de la aplicación (por ejemplo, Presentación, Datos, Seguridad, etc.)
fuente
Las capas son entidades conceptuales y se utilizan para separar la funcionalidad del sistema de software desde un punto de vista lógico; cuando implementa el sistema, organiza estas capas utilizando diferentes métodos; en esta condición nos referimos a ellos no como capas sino como niveles.
fuente
Cuando habla de presentación, servicio, datos, capa de red, está hablando de capas. Cuando los "despliegas por separado", hablas de niveles.
Los niveles tienen que ver con el despliegue. Tómelo de esta manera: tenemos una aplicación que tiene una interfaz creada en Angular, tiene un servidor como MongoDB y una capa intermedia que interactúa entre la interfaz y el servidor. Entonces, cuando esta aplicación frontend, la aplicación de base de datos y la capa intermedia se implementan por separado, decimos que es una aplicación de 3 niveles.
Beneficio: si necesitamos escalar nuestro backend en el futuro, solo necesitamos escalar el backend de forma independiente y no hay necesidad de escalar el frontend.
fuente