jueves, 5 de abril de 2018

APLICACIONES DE N-CAPAS EN VISUAL NET












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.
·         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.

• 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:
      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.
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.
• 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.

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.

8.     Linkografía



No hay comentarios:

Publicar un comentario