2. Definición
La programación por capas es un modelo de
desarrollo software en el que el objetivo primordial es la
separación (desacomplamiento) de las partes que componen
un sistema software o también una arquitectura cliente-
servidor: lógica de negocios, capa de presentación y capa de
datos. De esta forma, por ejemplo, es sencillo y mantenible
crear diferentes interfaces sobre un mismo sistema sin
requerirse cambio alguno en la capa de datos o lógica.
La ventaja principal de este estilo es que el desarrollo se
puede llevar a cabo en varios niveles y, en caso de que
sobrevenga algún cambio, solo afectará al nivel requerido sin
tener que revisar entre el código fuente de otros módulos,
dado que se habrá reducido el Acoplamiento informático hasta
una interfaz de paso de mensajes.
3. Ventajas del modelo
o Desarrollos paralelos (varios programadores en cada capa)
o Aplicaciones más robustas debido al encapsulamiento
o Mantenimiento y soporte más sencillo (es más sencillo cambiar un
componente que modificar una aplicación monolítica)
o Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al sistema de
nueva funcionalidad)
o Alta escalabilidad. La principal ventaja de una aplicación distribuida bien
diseñada es su buen escalado, es decir, que puede manejar muchas
peticiones con el mismo rendimiento simplemente añadiendo más hardware.
El crecimiento es casi lineal y no es necesario añadir más código para
conseguir esta escalabilidad.
o Arquitectura lógica “clásica” Presentación Lógica de negocio (Que es lo que
hace el sistema) Datos Fuentes de datos
4. División de aplicaciones en capas
• Capa de presentación:
• Presenta el sistema al usuario, comunica la
información y captura la información del
usuario en un mínimo proceso. Esta capa se
comunica únicamente con la capa de negocio.
5. Capa de negocio:
Es donde residen los programas que se ejecutan, se
reciben peticiones del usuario y se envían las respuestas
tras el proceso, es aquí donde se establecen todas las
reglas que deben cumplirse, se comunica con la capa de
presentación, para recibir solicitudes y presentar los
resultados, y con la capa de datos, para solicitar al gestor
de base de datos almacenar o recuperar datos.
6. Capa de datos:
Es donde residen los datos y es la encargada de
acceder a los mismos. Está formada por uno o más
gestores de bases de datos que realizan todo el
almacenamiento de datos, reciben solicitudes de
almacenamiento o recuperación de información
desde la capa de negocio.
7. APLICACIONES DE 2 CAPAS.
La arquitectura de dos capas en la actualidad es muy utilizada, aunque con muchas fallas,
todavía no se ha podido dejar de usar. Estas arquitecturas fueron las primeras en
aprovecharse de la estructura cliente-servidor.
Las capas que esta arquitectura presenta son las
siguientes:
Nivel de aplicación
Este nivel es en el que se encuentra toda la interfaz del
sistema y es la que el usuario puede disponer para realizar
su actividad con el sistema.
Nivel de la base de datos.
Este nivel de la base de datos también llamado el
repositorio de datos, es la capa en donde se almacena toda
la información ingresada en el sistema y que se deposita en
forma permanente.
Existen herramientas para el desarrollo en dos capas por
ejemplo visual basic, access y sql.
8. APLICACIONES DE 3 CAPAS
La arquitectura de dos capas si bien ayudó en unos años atrás, se vio la necesidad de crear una nueva
arquitectura ya que en dos capas se tenía algunos problemas en la capa de aplicación ya que la
principal desventaja de esta era el peso que tenía para el cliente, como se mencionó anteriormente.
Por estas razones, existe una fuerte y bien avanzada
tendencia a adoptar una arquitectura de tres capas.
Y es así que se creó la arquitectura de tres capas las
cuales son:
•Nivel de aplicación
La diferencia de este nivel aplicado ahora en una
arquitectura de tres capas es que solo tiene que
trabajar con la semántica propia de aplicación, sin
tener que preocuparse de cómo esta implementado
este ni de su estructura física.
9. Nivel de dominio de la aplicación.
En cambio este nivel se encarga de toda la estructura física y el dominio de aplicación.
algo muy importante y que es la mayor ventaja de esta arquitectura es que ahora
únicamente se cambia la regla en el servidor de aplicación y esta actuará en todos los
clientes, cosa que ni sucedía con la arquitectura en dos capas que si alguna regla se la
cambia, se tenía que ir a cada cliente a realizar el cambio.
Nivel de repositorio.
Sigue siendo la capa en donde se almacenan los datos y toda la información.
Las herramientas para el desarrollo de tres capas son:
o visual basic en lo que se refiere a la capa de aplicación.
o sql server en lo que se refiere al repositorio de datos.
o mts en lo que se refiere al nivel del dominio de aplicación
10. APLICACIONES DE N CAPAS
En una aplicación distribuida en n-capas los diferentes
procesos están distribuidos en diferentes capas no sólo
lógicas, sino también físicas. Los procesos se ejecutan en
diferentes equipos, que pueden incluso residir en
plataformas o sistemas operativos completamente
distintos. Cada equipo posee una configuración distinta y
está optimizado para realizar el papel que le ha sido
asignado dentro de la estructura de la aplicación, de
modo que tanto los recursos como la eficiencia global del
sistema se optimicen.
11. El surgimiento de la tecnología de componentes distribuidos es la clave de
las arquitecturas de n-capas. estos sistemas de computación utilizan un
número variable de componentes individuales que se comunican entre ellos
utilizando estándares predefinidos y frameworks de comunicación como:
• corba: (common object request broker architecture) del object
management group (omg).
• dna : (distributed network applications) de microsoft (incluye com/dcom y
com+ además de mts, msmq, etc.
• ejb : (enterprise java beans) de sun microsystems
• xml : (extensible markup language) del world wide web consortium (w3
• .net: de microsoft que incluye nuevos lenguajes como visual basic.net,
c#.
12. Recomendaciones
Se recomienda usar la programación con 3 Capas, porque es la
más convencional y la programación es más ordenada y segura.
No exceder en el número de creación de capas, es posible que
exista perdida de eficiencia.
Es importante separar bien estas capas, ya que por ejemplo el
negocio no podría tener acceso directamente sin pasar primero por
la capa acceso a datos, al igual que la capa presentación no puede
hacer ningún tipo de cálculo importante de la aplicación o acceder
directamente a base de datos.
13. Conclusiones
El estilo de programación en N capas se basa en segmentar un
proyecto en varias partes para realizar una programación
independiente en cada una de ellas
Facilita la reutilización de capas
Permite una mejor estandarización
El trabajo por parte de los analistas es complejo, pero al final se crea
una arquitectura más fácil de comprender y de implementar
En cuanto a la seguridad este estilo de programación es más fiable.
14. Apreciación del Equipo
La programación de capas nos da una facilidad para desarrollar
programas en múltiples plataformas (web, escritorio, móvil).
La programación en capas es muy eficiente a la hora de organizar
los códigos de programación, y al estar ordenado por capas se nos
hará más fácil encontrar cualquier bug
El programación de capas también nos ayuda a reducir el tiempo de
programación ya que está organizado; y por último la seguridad del
software es más fiable.