software - architecture traduccion
¿Cuál es la diferencia entre "Capas" y "Niveles"? (14)
¿Cuál es la diferencia entre "Capas" y "Niveles"?
Las capas lógicas son simplemente una forma de organizar su código. Las capas típicas incluyen Presentación, Negocio y Datos, lo mismo que el modelo tradicional de 3 niveles. Pero cuando hablamos de capas, solo hablamos de organización lógica del código. De ninguna manera se implica que estas capas pueden ejecutarse en diferentes computadoras o en diferentes procesos en una sola computadora o incluso en un solo proceso en una sola computadora. Todo lo que estamos haciendo es discutir una forma de organizar un código en un conjunto de capas definidas por función específica.
Sin embargo, los niveles físicos solo se refieren a dónde se ejecuta el código. Específicamente, los niveles son lugares donde se implementan las capas y donde se ejecutan las capas. En otras palabras, los niveles son el despliegue físico de las capas.
Fuente: Rockford Lhotka, ¿Todas las aplicaciones deben ser de n niveles?
- En inglés simple, el
Tier
refiere a "cada uno en una serie de filas o niveles de una estructura colocada una sobre la otra" mientras que laLayer
refiere a "una hoja, cantidad o grosor del 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. Ej .: cliente, servidor de aplicaciones, servidor de bases de datos;
La capa es una unidad lógica , cómo organizar el código. Ej .: presentación (vista), controlador, modelos, repositorio, acceso a datos.
Los niveles representan la separación física de la funcionalidad de presentación, negocios, servicios y datos de su diseño en computadoras y sistemas separados.
Las capas son las agrupaciones lógicas de los componentes de software que conforman la aplicación o el servicio. Ayudan a diferenciar los diferentes tipos de tareas realizadas por los componentes, facilitando la creación de un diseño que admita la reutilización de los componentes. Cada capa lógica contiene una serie de 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 figura a continuación, ilustra un escenario de aplicación web común donde 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 la capa empresarial requerida. La aplicación web se comunica con una máquina separada que alberga el nivel de base de datos, que contiene la lógica de la capa de datos.
Ventajas de las capas y niveles:
Layering 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 clara delineación entre ubicaciones donde se deben tomar ciertas decisiones de tecnología o diseño.
La colocación de las 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 redes diferentes o en Internet frente a una intranet.
Una aplicación de 1 nivel podría ser una aplicación de 3 capas.
¿Por qué siempre tratar de 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 alberga una o más capas.
Ejemplo de capas:
- Capa de presentación = usualmente todo el código relacionado con la Interfaz de Usuario
- Capa de acceso a datos = todo el código relacionado con el acceso a su base de datos
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 de presentación), otra máquina más segura que alberga todo el código más sensible a la seguridad (código de negocio real: capa de negocios, 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
1. En la arquitectura de 3 capas, DAL (capa Databse), BLL (capa Bissiness) y UIL (capa UI) pueden funcionar en la misma máquina, mientras que en una arquitectura de 3 niveles un cliente en una máquina, la aplicación Servidor está alojado en otra máquina y el servidor de la base de datos reside en otra máquina.
2.Layer Architecture mejorará la legibilidad y la reutilización. Minimiza los cambios en la aplicación debido al impacto de los cambios en otras capas. Si bien 3 Tier Architecture tiene todas las ventajas de 3 layer + escalabilidad, ya que la aplicación se implementará en diferentes máquinas, la carga se compartirá entre los niveles y la escalabilidad aumentará.
Cuando se habla de presentación, servicio, datos, capa de red, se habla de capas. Cuando los "despliegas por separado" hablas de niveles.
Tiers tiene que ver con la implementación. Tómelo de esta manera: tenemos una aplicación que tiene un frontend creado en Angular, tiene un backend como mongo db y una capa intermedia que interactúa entre el frontend y el backend. 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 podemos escalar el backend de forma independiente y no es necesario escalar el frontend.
He encontrado una definición que dice que las capas son una separación lógica y que los niveles son una separación física.
Las capas se refieren a la separación lógica de código. Las capas lógicas te ayudan a organizar mejor tu código. Por ejemplo, una aplicación puede tener las siguientes capas.
1) Capa de presentación o Capa de UI 2) Capa de negocios o Capa de lógica de negocios 3) Capa de acceso a datos o Capa de datos
Las tres capas superiores residen en sus propios proyectos, pueden ser 3 proyectos o incluso más. Cuando compilamos los proyectos obtenemos la capa respectiva DLL. Así que tenemos 3 DLL 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, 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 las capas.
Las capas son entidades conceptuales y se utilizan para separar la funcionalidad del sistema de software desde un punto de vista lógico; cuando implementas el sistema, organizas estas capas usando diferentes métodos; en esta condición nos referimos a ellos no como capas sino como niveles.
Lea la publicación de Scott Hanselman sobre el tema: http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx
Sin embargo, recuerde que en "Scott World" (que también es su mundo): "Tier" es una unidad de implementación, mientras que una "Capa" es una separación lógica de responsabilidad dentro del código. Puede decir que tiene un sistema de "3 niveles", pero ejecutarlo en una computadora portátil. Puede decir que tiene un sistema de "3 capas", pero solo tiene páginas ASP.NET que hablan de una base de datos. Hay poder en la precisión, amigos.
Me gusta la siguiente descripción de Microsoft Application Architecture Guide 2
Las capas describen las agrupaciones lógicas de la funcionalidad y los componentes en una aplicación; mientras que los niveles describen la distribución física de la funcionalidad y los componentes en servidores, computadoras, redes o ubicaciones remotas independientes. Aunque tanto las capas como los niveles usan el mismo conjunto de nombres (presentación, negocios, servicios y datos), recuerde que solo los niveles implican una separación física.
Sí, dijeron mis queridos amigos correctamente. La capa es una partición lógica de la aplicación, mientras que el nivel es la 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, se ejecuta 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 nivel. En el término simple, la arquitectura de 3 capas se puede implementar en una sola máquina, entonces podemos decir que es una arquitectura de 1 nivel. Si implementamos cada capa en una máquina separada, se llama arquitectura de 3 niveles. Una capa también puede ejecutar varios niveles. En la arquitectura de capa se relaciona el componente para comunicarse entre sí fácilmente.
Al igual que seguimos damos a continuación la arquitectura.
- Capa de presentación
- capa de lógica de negocios
- capa de acceso a datos
Un cliente podría 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 lógica empresarial) a la "capa lógica empresarial" debido a razones de seguridad.
P * ¿Por qué usamos la arquitectura de capas? Porque si implementamos la arquitectura de capas, aumentamos la eficiencia de nuestras aplicaciones como
==> seguridad
==> manejabilidad
==> escalabilidad
otra necesidad, como después de desarrollar una aplicación, necesitamos cambiar dbms o modificar la lógica de negocios, etc., entonces es necesario para todos.
P * ¿Por qué usamos arquitectura de nivel?
Debido a que la implementación física de cada capa proporciona una mayor eficiencia, sin la arquitectura de capa no podemos implementar la arquitectura de nivel. una máquina separada para implementar un nivel separado y un nivel separado es implementar uno o más niveles, por eso lo usamos.
Se utiliza para 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:
- portero
- una persona por dinero en efectivo
- Una persona responsable de introducir el esquema bancario.
- gerente
Todos ellos son los componentes relacionados del sistema.
Si vamos al banco para un préstamo, primero un guardián de la puerta abre la puerta con una sonrisa y luego nos acercamos a una persona que presenta todo el esquema del préstamo. Luego, vamos a la cabina del gerente y aprobamos el préstamo. Después de eso finalmente vamos al mostrador de cajero a tomar el préstamo. Estas son las capas de arquitectura del banco.
¿Qué pasa con el nivel? La sucursal de un banco abre en una ciudad, después de eso en otra ciudad, después de eso en otra, pero ¿cuál es el requisito básico de cada sucursal?
- portero
- una persona por dinero en efectivo
- Una persona responsable de introducir el esquema bancario.
- gerente
exactamente el mismo concepto de capa y nivel.
Una capa es un módulo lógico de software con su propia lógica central y límites.
Un nivel es un contenedor físico de una o más capas, como un servidor a través de una red o varias instancias de la misma máquina virtual, que funciona de manera equilibrada.
Uso 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 normalmente cuando se trata de una comunicación de red o interproceso.
Las capas son una separación lógica de related-functionality[code]
dentro de una aplicación. La comunicación entre capas es explícita y está ligeramente acoplada. [Lógica de presentación, lógica de aplicación, lógica de acceso a datos]
Tiers 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:
1-Tier & 3-Layers « App Logic with out DB access store data in a files.
2-Tier & 3-Layers « App Logic & DataStorage-box.
2-Tier & 2-Layers « Browser View[php] & DataStorage[procedures]
2-Tier & 1-Layers « Browser View[php] & DataStorage, query sending is common.
3-Tier & n-Layer « Browser View[php], App Logic[jsp], DataStorage
n- ventajas de Tier :
Mejor seguridad
Escalabilidad : a medida que su organización crezca, puede ampliar su nivel de base de datos con DB-Clustering 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 un código de aplicación adicional, actualizar el área de almacenamiento o incluso agregar varias capas de presentación para dispositivos separados como dispositivos móviles, tabletas, PC]