Programacion Por Capas

5
La programación por 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; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario. 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 se ataca al nivel requerido sin tener que revisar entre código mezclado. Un buen ejemplo de este método de programación sería el modelo de interconexión de sistemas abiertos. 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) Capas y niveles 1. Capa de presentación: la que ve el usuario (también se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa de negocio.

description

3 CapasMVC

Transcript of Programacion Por Capas

Laprogramacin por capases una arquitecturacliente-servidoren el que el objetivo primordial es la separacin de la lgica de negocios de la lgica de diseo; un ejemplo bsico de esto consiste en 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 que sobrevenga algn cambio, solo se ataca al nivel requerido sin tener que revisar entre cdigo mezclado. Un buen ejemplo de este mtodo de programacin sera elmodelo 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 totalmenteabstradodel resto de niveles, de forma que basta con conocer laAPIque existe entre niveles.En eldiseodesistemas informticosactual se suelen usar lasarquitecturas multinivelo 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 ms utilizado actualmente es el diseo en tres niveles (o en tres capas)Capas y niveles1. Capa de presentacin:la que ve el usuario (tambin se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la informacin y captura la informacin del usuario en un mnimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Tambin es conocida como interfaz grfica y debe tener la caracterstica de ser "amigable" (entendible y fcil de usar) para el usuario. Esta capa se comunica nicamente con la capa de negocio.2. Capa de negocio:es donde residen losprogramasque se ejecutan, se reciben las peticiones del usuario y se envan las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lgica del negocio) porque 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 debase de datosalmacenar o recuperar datos de l. Tambin se consideran aqu los programas de aplicacin.3. Capa de datos:es donde residen los datos y es la encargada de acceder a los mismos. Est formada por uno o ms gestores de bases de datos que realizan 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, si bien lo ms usual es que haya una multitud de ordenadores en 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 msordenadores. 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 ms 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 negocio, 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. (Conocida como capa Web en aplicaciones Web o como capa de usuario en Aplicaciones Nativas) Lgica de Negocio. (Conocida como capa Aplicativa) Datos. (Conocida como capa de Base de 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 del negocio, datos) que residen en un solo ordenador (Presentacin+lgica+datos). Se dice que la arquitectura de la solucin es de tres capas yun nivel. Una solucin de tres capas (presentacin, lgica del negocio, datos) que residen en dos ordenadores (presentacin+lgica por un lado; lgica+datos por el otro lado). Se dice que la arquitectura de la solucin es de tres capas ydos niveles.

Modelo Vista Controlador (MVC).Es un estilo dearquitectura de softwareque separa los datos de una aplicacin, la interfaz de usuario, y la lgica de control en tres componentes distintos. El estilo de llamada y retorno MVC, se ve frecuentemente en aplicacionesweb, donde la vista es la pginaHTMLy el cdigo que provee de datos dinmicos a la pgina. El modelo es elSistema de Gestin de Base de Datosy la Lgica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.

Descripcin

El Modelo es el objeto que representa los datos del programa. Maneja los datos y controla todas sus transformaciones. El Modelo no tiene conocimiento especfico de los Controladores o de las Vistas, ni siquiera contiene referencias a ellos. Es el propio sistema el que tiene encomendada la responsabilidad de mantener enlaces entre el Modelo y sus Vistas, y notificar a las Vistas cuando cambia el Modelo. La Vista es el objeto que maneja la presentacin visual de los datos representados por el Modelo. Genera una representacin visual del Modelo y muestra los datos al usuario. Interacta con el Modelo a travs de una referencia al propio Modelo. El Controlador es el objeto que proporciona significado a las ordenes del usuario, actuando sobre los datos representados por el Modelo. Cuando se realiza algn cambio, entra en accin, bien sea por cambios en la informacin del Modelo o por alteraciones de la Vista. Interacta con el Modelo a travs de una referencia al propio Modelo.

Ventajas de utilizar MVC

Una separacin total entre lgica de negocio y presentacin. A esto se le pueden aplicar opciones como el multilenguaje, distintos diseos de presentacin, etc. sin alterar la lgica de negocio. La separacin de capas como presentacin, lgica de negocio, acceso a datos es fundamental para el desarrollo de arquitecturas consistentes, reutilizables y ms fcilmente mantenibles, lo que al final resulta en un ahorro de tiempo en desarrollo en posteriores proyectos.Al existir la separacin de vistas, controladores y modelos es ms sencillo realizar labores de mejora como: Agregar nuevas vistas. Agregar nuevas formas de recolectar las ordenes del usuario (interpretar sus modelos mentales). Modificar los objetos de negocios bien sea para mejorar el performance o para migrar a otra tecnologa. Las labores de mantenimiento tambin se simplifican y se reduce el tiempo necesario para ellas. Las correcciones solo se deben hacer en un solo lugar y no en varios como sucedera si tuvisemos una mezcla de presentacin e implementacin de la lgica del negocio. Las vistas tambin son susceptibles de modificacin sin necesidad de provocar que todo el sistema se paralice. Adicionalmente el patrn MVC propende a la especializacin de cada rol del equipo, por tanto en cada liberacin de una nueva versin se vern los resultados.