TEMA5 Tema5:Programación por Capas ● Introducción ● Capa de Presentación ● Capa de Negocios (Lógica de Negocio) ● Capa de Datos ● Enlace a datos por medio de Clases ● Métodos de Manipulación de Datos Objetivos: Introducir al usuario en modelos de programación avanzados, específicamente la programación en 3 capas. Describir y utilizar cada una de las capas de programación para la generación de aplicaciones orientadas a objetos Introducción ● La programación por capas es un estilo de programación en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño;un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario Arquitectura de 3 capas: se basa más bien en como será construido el entorno, una manera de decirlo en romper el clásico concepto Cliente-Servidor para introducir conceptos como Back End (Base de Datos), Middleware (Servidor de Aplicaciones), Front End (Interfaz de Usuario). Introducción ● ● ● ● Ventajas:En el desarrollo se puede llevar a cabo en varios niveles y en caso que sobrevengan algún cambio. En el diseño de sistemas informáticos actuales se suele usar las arquitecturas multilineal o programación por capas. Ademas, permite distribuir el trabajo de creación de una aplicación por niveles; cada grupo de trabajo esta totalmente abstraído del resto de niveles ,de forma que basta con conocer la API que existe entre niveles API(Aplication Programming Interface) Es un conjunto de funciones y procedimientos o métodos que ofrece cierta biblioteca para ser utilizado por otros software como una capa de abstracción Ejemplos: ● Microsoft Framework.NET ● OpenGL ● Symfony para PHP Gracias a la separación en capas quiere decir que podemos cambiar de proveedor de base de datos, y no necesitaremos reescribir toda la aplicación de vuelta, sino solamente esa pequeña capa y reutilizaríamos la interfaz y las reglas de negocios, o también podemos mantener las reglas de negocios y el motor de base de datos, y fácilmente cambiarnos de una interfaz WinForm a WebForm, siempre la más dura de cambiar en la de negocios ya que afecta en un nivel mínimo a las otras 2 capas. Capas y niveles ● El diseño que mas se utiliza actualmente es el de 3 capas ;sin embargo,la programación puede desglosare en mas capas ● Capa de presentación ● Capa de negocios ● Capa de datos. ● Capa de entidad Cuando se habla de programación en N-Capas nos referimos a la capa Entidad que generaría la cuarta capa llamada N-Capas de la programación, si nos referimos al hecho que la aplicacion proviene de un análisis, entonces debemos remontarnos al Diagrama de Clases de Análisis que propone una clase llamada la clase Entidad en donde expone las entidades que participan directamente en un proceso de la aplicación Capas de presentación ● Esta es la capa que ve el usuario ,presenta el sistema al usuario ,le comunica la información y captura la información del usuario en un mínimo de proceso Presentación. (Conocida como capa Web en aplicaciones Web o como capa de usuario en Aplicaciones Nativas) Capa de Negocio ● Esta es la capa que recibe las peticiones del usuario y se envía las respuesta tras el proceso. Se denomina capa de negocio(e incluso de lógica de negocio)Porque es aquí donde se establecen todas las reglas que deben cumplirse. ● Responsable del procesamiento. ● Capa intermedia con capacidad de mantenimiento y reutilización Otras responsabilidades de la capa de negocio ● Dependiendo de la arquitectura, permitir ser llamados desde las interfaces de servicio, flujos de negocio u otros componentes de negocio. ● Validar entradas y salidas. ● Exponer operaciones de compensación. ● Dependiendo del diseño, realizar llamados a los componentes de la capa de acceso a datos, para obtener o actualizar los datos de la aplicación, o llamar servicios externos. ● Llamar flujos de negocio u otros componentes de negocio ● Capa de datos ● Esta capa se encarga de acceder a los datos,se debe usas la capa de datos para almacenar y recuperar toda la información de sincronización del sistema El día de mañana podemos utilizar el mismo sistema con otra base de datos que no sea Access, por ejemplo MySQL, cambiando solo el Acceso a datos, quedando el esquema así: Programación en capas Todas estas capas pueden residir en un único ordenador (no sería lo normal), si bien lo más usual es que haya una multitud de ordenadores donde reside la capa de presentación (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 tamaño o complejidad de la base de datos aumenta, se puede separar en varios ordenadores los cuales recibirán las peticiones del ordenador en que resida la capa de negocio. Arquitectura de 3 niveles De una aplicación basada en la WEB Si por el contrario fuese la complejidad en la capa de negocio lo que obligase a la separación, esta capa de negocio podría residir en uno o mas ordenadores que realizarían 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. El nivel intermedio implementa la lógica comercial, la lógica de control y la lógica de presentación, para controlar las interacciones entre los clientes de la aplicación y los datos de la misma. Arquitectura MULTINIVEL En una arquitectura de tres niveles, los términos "capas" y "niveles" no significan lo mismo ni son similares. El término "capa" hace referencia a la forma como una solución es segmentada desde el punto de vista lógico:Presentación/ Lógica de Negocio/ Datos. En cambio, el término "nivel", corresponde a la forma en que las capas lógicas se encuentran distribuidas de forma física. Por ejemplo: · Una solución de tres capas (presentación, lógica, datos) que residen en un solo ordenador (Presentación+lógica+datos). Se dice, que la arquitectura de la solución es de tres capas y un nivel. · Una solución de tres capas (presentación, lógica, datos) que residen en dos ordenadores (presentación+lógica, lógica+datos). Se dice que la arquitectura de la solución es de tres capas y dos niveles. · Una solución de tres capas (presentación, lógica, datos) que residen en tres ordenadores (presentación, lógica, datos). La arquitectura que la define es: solución de tres capas y tres niveles.