Está en la página 1de 5

Programacin por capas

La programacin por capas es un estilo de programacin en la que el objetivo


primordial es la separacin de la lgica de negocios de la lgica de diseo, un
ejemplo bsico de esto es separar la capa de datos de la capa de presentacin al
usuario.

La ventaja principal de este estilo, es que el desarrollo se puede llevar a cabo en


varios niveles y en caso de algn cambio slo se ataca al nivel requerido sin tener
que revisar entre cdigo mezclado. Un buen ejemplo de este mtodo de
programacin seria: Modelo de interconexin de sistemas abiertos
Adems permite distribuir el trabajo de creacin de una aplicacin por niveles, de
este modo, cada grupo de trabajo est totalmente abstrado del resto de niveles,
simplemente es necesario conocer la API que existe entre niveles.
En el diseo de sistemas informticos actual se suele usar las arquitecturas
multinivel o Programacin por capas. En dichas arquitecturas a cada nivel se le
confa una misin simple, lo que permite el diseo de arquitecturas escalables (que
pueden ampliarse con facilidad en caso de que las necesidades aumenten).
El diseo ms en boga actualmente es el diseo en tres niveles (o en tres capas).
Capas o niveles
1.- Capa de presentacin: es la que ve el usuario, presenta el sistema al usuario,
le comunica la informacin y captura la informacin del usuario dando un mnimo
de proceso (realiza un filtrado previo para comprobar que no hay errores de
formato). Esta capa se comunica nicamente con la capa de negocio.
2.- Capa de negocio: es donde residen los programas que se ejecutan, recibiendo
las peticiones del usuario y enviando las respuestas tras el proceso. Se denomina
capa de negocio (e incluso de lgica del negocio) pues es aqu donde se establecen
todas las reglas que deben cumplirse. Esta capa se comunica con la capa de
presentacin, para recibir las solicitudes y presentar los resultados, y con la capa de
datos, para solicitar al gestor de base de datos para almacenar o recuperar datos
de l.

3.- Capa de datos: es donde residen los datos. Est formada por uno o ms
gestor de bases de datos que realiza todo el almacenamiento de datos, reciben
solicitudes de almacenamiento o recuperacin de informacin desde la capa de
negocio.
Todas estas capas pueden residir en un nico ordenador (no sera lo normal), si
bien lo ms usual es que haya una multitud de ordenadores donde reside la capa de
presentacin (son los clientes de la arquitectura cliente/servidor). Las capas de
negocio y de datos pueden residir en el mismo ordenador, y si el crecimiento de las
necesidades lo aconseja se pueden separar en dos o mas ordenadores. As, si el
tamao o complejidad de la base de datos aumenta, se puede separar en varios
ordenadores los cuales recibirn las peticiones del ordenador en que resida la capa
de negocio.
Si por el contrario fuese la complejidad en la capa de negocio lo que obligase a la
separacin, esta capa de negocio podra residir en uno o mas ordenadores que
realizaran solicitudes a una nica base de datos. En sistemas muy complejos se
llega a tener una serie de ordenadores sobre los cuales corre la capa de datos, y
otra serie de ordenadores sobre los cuales corre la base de datos.

En una arquitectura de tres niveles, los trminos "capas" y "niveles" no significan lo


mismo ni son similares.
El trmino "capa" hace referencia a la forma como una solucin es segmentada
desde el punto de vista lgico:
Presentacin/ Lgica de Negocio/ Datos.
En cambio, el trmino "nivel", corresponde a la forma en que las capas lgicas se
encuentran distribuidas de forma fsica. Por ejemplo:

Una solucin de tres capas (presentacin, lgica, datos) que residen


en un solo ordenador (Presentacin+lgica+datos). Se dice, que la
arquitectura de la solucin es de tres capas y un nivel.

Una solucin de tres capas (presentacin, lgica, datos) que residen


en dos ordenadores (presentacin+lgica, lgica+datos). Se dice que
la arquitectura de la solucin es de tres capas y dos niveles.

Una solucin de tres capas (presentacin, lgica, datos) que residen


en tres ordenadores (presentacin, lgica, datos). La arquitectura
que la define es: solucin de tres capas y tres niveles.

Arquitectura software

En Los inicios de la informtica, la programacin se consideraba un arte, debido a la


dificultad que entraaba para la mayora de los mortales, pero con el tiempo se han
ido desarrollando metodologas y frmulas o trucos para conseguir nuestros
propsitos. Y a todas estas tcnicas se les ha dado en llamar Arquitectura
Software.
Una Arquitectura Software, tambin denominada Arquitectura lgica, consiste en un
conjunto de patrones y abstracciones coherentes que proporcionan el marco de
referencia necesario para guiar la construccin del software para un sistema de
informacin.
La arquitectura software establece los fundamentos para que analistas,
diseadores, programadores, etc. trabajen en una lnea comn que permita
alcanzar los objetivos y necesidades del sistema de informacin.
Una arquitectura software se selecciona y disea con base en unos objetivos y
restricciones. Los objetivos son aquellos prefijados para el sistema de informacin,
pero no solamente los de tipo funcional, tambin otros objetivos como la
mantenibilidad, auditabilidad, flexibilidad e interaccin con otros sistemas de
informacin. Las restricciones son aquellas limitaciones derivadas de las tecnologas
disponibles para implementar sistemas de informacin. Unas arquitecturas son ms
recomendables de implementar con ciertas tecnologas mientras que otras
tecnologas no son aptas para determinadas arquitecturas. Por ejemplo, no es
viable emplear una arquitectura software de tres capas para implementar sistemas
en tiempo real.
La arquitectura software define, de manera abstracta, los componentes que llevan a
cabo alguna tarea de computacin, sus interfaces y la comunicacin ente ellos.
Toda arquitectura software debe ser implementable en una arquitectura fsica, que
consiste simplemente en determinar qu computadora tendr asignada cada tarea
de computacin.
La arquitectura de software, tiene que ver con el diseo y la implementacin de
estructuras de software de alto nivel. Es el resultado de ensamblar un cierto
nmero de elementos arquitectnicos de forma adecuada para satisfacer la mayor
funcionalidad y requerimientos de desempeo de un sistema, as como
requerimientos no funcionales, como la confiabilidad, escalabilidad, portabilidad, y
disponibilidad. Kruchten, Philippe
Tabla de contenidos
[ocultar]
1 Breve resea histrica
2 Modelos o vistas
3 Arquitecturas ms comunes
o 3.1 Bibliografa

4 Vase tambin

Breve resea histrica


En los aos 1960 ya se acariciaba el concepto de arquitectura software en los
crculos de investigacin (por ejemplo, por Edsger Dijkstra). No obstante, toma

popularidad en los aos 1990 tras reconocerse la denominada crisis del software y
como tema de inters de la incipiente disciplina de la ingeniera del software.
Modelos o vistas
Toda arquitectura software debe describir diversos aspectos del software.
Generalmente, cada uno de estos aspectos se describe de una manera ms
comprensible si se utilizan distintos modelos o vistas. Es importante destacar que
cada uno de ellos constituye una descripcin parcial de una misma arquitectura y es
deseable que exista cierto solapamiento entre ellos. Esto es as porque todas las
vistas deben ser coherentes entre s, evidente dado que describen la misma cosa.
Cada paradigma de desarrollo exige diferente nmero y tipo de vistas o modelos
para describir una arquitectura. No obstante, existen al menos tres vistas
absolutamente fundamentales en cualquier arquitectura:

La visin
La visin
La visin
largo del

esttica: describe qu componentes tiene la arquitectura.


funcional: describe qu hace cada componente.
dinmica: describe cmo se comportan los componentes a lo
tiempo y como interactan entre s.

Las vistas o modelos de una arquitectura pueden expresarse mediante uno o varios
lenguajes. El ms obvio es el lenguaje natural, pero existen otros lenguajes tales
como los diagramas de estado, los diagramas de flujo de datos, etc. Estos
lenguajes son apropiados nicamente para un modelo o vista. Afortunadamente
existe cierto consenso en adpotar UML (Unified Modeling Language, lenguaje
unificado de modelado) como lenguaje nico para todos los modelos o vistas. Sin
embargo, un lenguaje generalista corre el peligro de no ser capaz de describir
determinadas restricciones de un sistema de informacin (o expresarlas de manera
incomprensible).
Arquitecturas ms comunes
Generalmente, no es necesario inventar una nueva arquitectura software para cada
sistema de informacin. Lo habitual es adoptar una arquitectura conocida en
funcin de sus ventajas e inconvenientes para cada caso en concreto. As, las
arquitecturas ms universales sn:

Monoltica. Donde el software se estructura en grupos funcionales muy


acoplados.
Cliente-servidor. Donde el software reparte su carga de cmputo en dos
partes independientes pero sin reparto claro de funciones.
Arquitectura de tres niveles. Especializacin de la arquitectura clienteservidor donde la carga se divide en tres partes con un reparto claro de
funciones: una capa para la presentacin, otra para el clculo y otra para el
almacenamiento. Una capa solamente tiene relacin con la siguiente.

Otras arquitecturas menos conocidas son:

En pipeline.
Entre pares.
En pizarra.
Orientada a servicios.
Mquinas virtuales

Cliente-servidor
Esta arquitectura consiste bsicamente en que un programa, el Cliente informtico
realiza peticiones a otro programa, el servidor, que les da respuesta.
Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola
computadora es ms ventajosa en un sistema multiusuario distribuido a travs de
una red de computadoras.
En esta arquitectura la capacidad de proceso est repartida entre los clientes y los
servidores, aunque son ms importantes las ventajas de tipo organizativo debidas a
la centralizacin de la gestin de la informacin y la separacin de
responsabilidades, lo que facilita y clarifica el diseo del sistema.
La separacin entre cliente y servidor es una separacin de tipo lgico, donde el
servidor no se ejecuta necesariamente sobre una sola mquina ni es
necesariamente un slo programa.
Una disposicin muy comn son los sistemas multicapa en los que el servidor se
descompone en diferentes programas que pueden ser ejecutados por diferentes
computadoras aumentando as el grado de distribucin del sistema.
La arquitectura cliente-servidor sustituye a la arquitectura monoltica en la que
no hay distribucin, tanto a nivel fsico como a nivel lgico.
Ventajas de la arquitectura cliente-servidor

Centralizacin del control: los accesos, recursos y la integridad de los datos


son controlados por el servidor de forma que un programa cliente defectuoso
o no autorizado no pueda daar el sistema.
Escalabilidad: se puede aumentar la capacidad de clientes y servidores por
separado.
Se reduce el trfico de red considerablemente. Idealmente, el cliente se
comunica con el servidor utilizando un protocolo de alto nivel de abstraccin
como por ejemplo SQL

También podría gustarte