
Aplicaciones N-Capas en Visual NET
1. Contenido
·
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.
Además, permite distribuir el trabajo
de creación de una aplicación por niveles; de este modo, cada grupo de trabajo
está totalmente abstraído del
resto de niveles, de forma que basta con conocer la API que existe entre niveles.
En el diseño de sistemas informáticos actual se suelen usar las arquitecturas multinivel o
programación por capas. En dichas arquitecturas a cada nivel se le confía una
misión simple, lo que permite el diseño de arquitecturas escalables (que pueden
ampliarse con facilidad en caso de que las necesidades aumenten).
El más utilizado actualmente es el
diseño en tres niveles (o en tres capas).
·
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
·
División de aplicaciones en capas
o 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.
o 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.
o 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.
·
EJEMPLO:
En cualquier red de supermercado, se encuentra
conectada en capas, ya que podríamos decir que de una manera pragmática, las
cajas de todos los departamentos están conectadas con una interfaz que actuaría
como la Capa de Presentación, en esta estaría un cajero realizando las
operaciones que estuvieran programadas dentro de sus funciones el ambiente
gráfico de la computadora, en este caso sería cobrar los productos, hacer
devoluciones, cancelaciones, cobros con tarjetas de crédito, etc. Por otra
parte existiría una Capa de Negocio, esta indicaría de qué manera se ejecutaran
las funciones propias de la computadora, en este caso se contaría con un
servidor que soportara todas las plataformas donde reside el ambiente gráfico,
de manera ordenada, para corroborar la secuencia de la orden o petición, esta
capa actuaría realizando la petición-servicio, que sería la conexión final. Y
por último la Capa de Datos en este caso de igual manera se contaría con un
servidor con la información de los productos, así como de los usuarios de
cualquier terminal o de cualquier rango. De esta forma podemos darnos cuenta del
uso que podemos darle a las aplicaciones por capas que ya son parte de los
sistemas orientados a objetos de la actualidad.
·
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:
o 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.
o 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.
·
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.
·
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.
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
·
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.
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:
o
corba: (common object request broker architecture) del
object management group (omg).
o dna : (distributed network applications) de microsoft
(incluye com/dcom y com+ además de mts, msmq, etc.
o
ejb : (enterprise java beans) de sun microsystems
o
xml : (extensible markup language) del world wide web
consortium (w3
o .net: de microsoft que incluye nuevos lenguajes como
visual basic.net, c#.
2. Resumen
Aplicaciones N-Capas en Visual NET
• 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.
Además, permite distribuir el trabajo de creación de una aplicación por niveles; 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.
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.
Además, permite distribuir el trabajo de creación de una aplicación por niveles; 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.
• EJEMPLO:
En cualquier
red de supermercado, se encuentra conectada en capas, ya que podríamos decir
que de una manera pragmática, las cajas de todos los departamentos están conectadas
con una interfaz que actuaría como la Capa de Presentación, en esta estaría un
cajero realizando las operaciones que estuvieran programadas dentro de sus
funciones el ambiente gráfico de la computadora, en este caso sería cobrar los
productos, hacer devoluciones, cancelaciones, cobros con tarjetas de crédito,
etc. Estas arquitecturas fueron las primeras en aprovecharse de la estructura
cliente-servidor.
Las capas que esta arquitectura presenta son las siguientes:
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.
•
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.
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.
• 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.
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:
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
•
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.
3.
Summary
N-tier applications in Visual NET
Definition
programming by layers is a model of
software development in which the primary objective is the desacomplamiento
(separation) of the parts that make up a software system or a client-server
architecture: business logic, presentation layer and data layer. In this way,
for example, is simple and maintainable create different interfaces on the same
system without required any change in the data layer or logic.
The main advantage of this style is
that the development can be carried out at various levels and, in the event of
any change, it affects only the required level without having to check between
the source of other modules, since it will have reduced the Coupling computer
until a message passing interface.
In addition, allows you to distribute
the work to create an application by levels; It is formed by one or more
database managers who perform all of the storage of data, receive requests for
storage or retrieval of information from the business layer.
• Example:
In any network of supermarket, is connected in layers, as you might say
that in a pragmatic way, all departments are connected with an interface that
would act as the presentation layer, this would be a cashier performing
operations that were scheduled within its functions the graphical environment
of the computer, in this case would be to collect the products, make refunds,
cancellations, charges with credit cards, etc. These
architectures were the first to take advantage of the client-server structure.
The layers that this architecture are
the following:
or application level
This level is where you will find all the system and interface is that
the user can have to do with the system.
or level of the database.
This level of the database also called the data repository, it is the
layer where it is stored all the information entered into the system and that
is deposited on a permanent basis.
There are tools for the development in
two layers for example visual basic, Access and SQL.
• Layer 3 Applications
The architecture of two layers while
helped in a few years ago, we saw the need to create a new architecture in two
layers had some problems at the application layer as the main disadvantage of
this was the weight that I had for the client, as mentioned above.
For these reasons, there is a strong
and well advanced tendency to adopt a three-layer architecture.
And this is how I think the
architecture of three layers which are
application-level:
The difference of this level now
applied in a three-layer architecture is that it only has to work with the
semantics of the application, without having to worry about how it is
implemented this nor of their physical structure.
Level of the application domain.
On the other hand this level is responsible
for all the physical structure and the application domain.
something very important, and that is
the biggest advantage of this architecture is that now only changes the rule on
the application server and this will act on all clients, something that neither
was the case with the architecture in two layers that if a rule is changed, i
had to go to each client to make the change.
• Repository level.
Still the layer where the data is
stored and all the information.
The tools for the development of three
layers are:
o visual basic with regard to the
application layer.
or SQL server as the data repository.
or mts in what refers to the level of
the application domain
• APPLICATIONS OF N layers
in a distributed application in
n-layers the different processes are distributed in different layers not only
logical, but also physical.
4. 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.
5.
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.
·
Se puede elaborar
componentes para cada capa, avanzando el desarrollo de manera independiente y
por ende el global del Sistema puede desarrollarse más rápido
·
Ayuda mucho al
programador de aplicaciones para dar mantenimiento al Sistema, dado que el
problema que pudiera suscitarse es visto en la capa respectiva
·
Por ende los costos
de mantenimiento tienden a ser menores
·
Dado los vertiginosos
cambios en la dinámica de los negocios este estilo de programación provee que
el Sistema sea escalable.
6.
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.
7. Glosario
de Términos
·
Programación en Capas:
es una arquitectura cliente-servidor en el que el objetivo primordial es la
separación de la lógica de negocios de la lógica de diseño.
·
Servidores:
un servidor es un nodo que forma parte de una red, provee servicios a otros
nodos denominados clientes. También se suele denominar con la palabra servidor
a: Una aplicación informática o programa que realiza algunas tareas en
beneficio de otras aplicaciones llamadas clientes.
·
Escalabilidad:
es la propiedad deseable de un sistema, una red o un proceso, que indica su
habilidad para reaccionar y adaptarse sin perder calidad, o bien manejar el
crecimiento continuo de trabajo de manera fluida, o bien para estar preparado
para hacerse más grande sin perder calidad en los servicios ofrecidos.
·
Pragmática:
Parte de la lingüística que estudia el lenguaje en su relación con los usuarios
y las circunstancias de la comunicación.
·
Repositorio:
Un repositorio, depósito o archivo es un sitio
centralizado donde se almacena, organiza, mantiene y difunde información
digital, habitualmente bases de datos o archivos informáticos. Los repositorios
tienen sus inicios en los años 90, en el área de la física y las matemáticas los
académicos aprovecharon la red que les permitía compartir sus investigaciones a
colegas, este proceso era realmente valioso porque aceleraba el ciclo
científico de publicación
·
Frameworks: se
emplea un muchos ámbitos del desarrollo de sistemas software, no solo en el
ámbito de aplicaciones Web. Podemos encontrar frameworks para el desarrollo de
aplicaciones médicas, de visión por computador, para el desarrollo de juegos, y para cualquier ámbito
que pueda ocurrírsenos.
·
Clases / Objetos (tipos): Prácticamente todo lo que manejemos en el entorno .NET es una clase u
objeto, de hecho todas las clases derivan de una clase u objeto básico: la
clase System.Object
·
Evento: Los eventos son procedimientos
(SUB) que se ejecutan normalmente cuando el sistema Windows los provoca, por
ejemplo, al hacer click en una ventana o en cualquier objeto de la ventana,
cuando cambiamos el tamaño de una ventana, cuando escribimos en una caja de
textos, etc.
·
Formulario
(forma/ventana): Un formulario es una ventana
de Windows la cual usaremos para interactuar con el usuario, ya que en dicha
ventana o formulario, estarán los controles y demás objetos gráficos que
mostraremos al usuario de nuestra aplicación. Los formularios también son
llamados "formas" o Forms en su nombre en inglés.
·
base de aplicación: Directorio donde se encuentra el archivo .exe
que se carga en el dominio de aplicación inicial o predeterminado. Si crea su
propio dominio de aplicación, la base de la aplicación es la ubicación
especificada en la clase AppDomainSetup.
·
Interface:
Se dice
que las propiedades y métodos expuestos por una clase (tipo) forman el
interface de la misma.
No hay comentarios:
Publicar un comentario