Especial para el grupo de Desarrollo de Software
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosRegistrarseConectarse

Comparte | 
 

 Arquitectura de aplicaciones basadas en 2 capas!!!

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Razo
Admin
avatar

Mensajes : 71
Fecha de inscripción : 22/09/2010
Localización : Panamá/Colón

MensajeTema: Arquitectura de aplicaciones basadas en 2 capas!!!   Vie Mar 25, 2011 3:51 pm

¿Qué es la arquitectura de una aplicación?

Este es un término usado al diseñar aplicaciones, particularmente del tipo Cliente-Servidor. Esta arquitectura se refiere a la manera en la que es diseñada tanto física como lógicamente. En el diseño físico se especifica exactamente donde se encontrarán las piezas de la aplicación (Como discos, ejecutables, cable de red y computadoras). En el diseño lógico o conceptual se especifica la estructura de la aplicación y sus componentes sin tomar en cuenta dónde se localizará el software, hardware e infraestructura. Tales conceptos incluyen el orden de procesamiento, mantenimiento y seguimiento comunes en sistemas organizacionales.

Muchas veces se toma demasiado en cuenta el diseño físico de una aplicación. Por añadidura los desarrolladores generalmente asumen, indebidamente, que el diseño lógico corresponde punto a punto con el diseño físico. Contrario a esto, un diseño adecuado debería permitir su implantación en varias plataformas y configuraciones. Como puede ver, esta característica de portabilidad es un punto deseable para permitir que su aplicación sea flexible y escalable.

La arquitectura de dos capas típica en Cliente-Servidor

La mayoría de las aplicaciones Cliente-Servidor funcionan bajo una arquitectura de dos capas en lenguajes de cuarta generación. Estas aplicaciones son bifurcadas en las siguientes capas: El llamado front-end (la interfaz del usuario, llamadas a SQL, aplicación de escritorio, etcétera) y el llamado Back-end (servidor de Bases de datos SQL, Sistema operativo multitareas, etc.). El proceso front-end se desarrolla en algún lenguaje de 4ª generación (4GL) como Visual Basic. Se llama front-end dado que es la capa en donde el usuario interactúa con su PC. El proceso back-end es el servidor de bases de datos como SQL Server ú Oracle. Se llama así dado que típicamente reside en un servidor central en un entorno controlado. A pesar de ser un método común de aplicaciones Cliente-Servidor, si ya tiene o ha estado en alguna organización que maneje este tipo de arquitectura sabrá que no es la panacea.

Uno de los problemas es la dificultad de manipular los cambios en el front-end. Es decir, ¿Qué pasa si desea alterar las consultas SQL dado que una columna ha sido añadida a la tabla de Base de datos? ¿Y qué cuando los más antiguos distribuidores ahora serán marcados como inactivos (no eliminados) de la base de datos? En estos casos, varios (a veces decenas, tal vez cientos o miles) de estaciones de trabajo clientes necesitarán ser actualizadas con una nueva versión del front-end simultáneamente al cambio en la base de datos. Este no es un cambio sencillo, sobre todo si las aplicaciones cliente están geográficamente dispersas.

Otro problema es la dificultad de compartir procesos comunes. Luego de lágrimas de sangre (todos los desarrolladores las hemos llorado), y largas horas-nalga frente a la máquina para lograr un proceso en particular, este código no puede reutilizarse en alguna otra aplicación.

Más problemas: La seguridad. Esta puede ser establecida por el back-end del servidor de bases de datos o por la aplicación que sirve de front-end. Cada una tiene sus limitaciones: El primero consiste en dar privilegios a los objetos de la base de datos y a los usuarios. Sin embargo, las corporaciones no requieren sólo asegurar cuales datos pueden ser actualizados o accedidos, sino cómo. En cuanto al segundo punto, que es el más usado, aunque el usuario puede acceder a la base de datos con su identificación, tiene dos problemas:

  1. Dado que ninguno de los objetos en la base de datos es segura, cualquier usuario pudiese tener acceso total a la misma con alguna otra herramienta de front-end (Como Excel, Access, etcétera.); 2. La implantación de la seguridad deberá ser desarrollada, probada y mantenida en absolutamente toda la red (no importa dónde se encuentren las estaciones cliente).

  2. Hay otros problemas como la necesidad de usar aplicaciones MIS, el modelo de negocios y la ausencia de un motor de procesamiento de negocios… De tal suerte que, aunque el entorno de dos capas provee grandiosas herramientas para el front-end y el back-end, el desarrolador se regresará a las herramientas de tercera generación (3GL) como C y COBOL para crear procesos en lotes.


¿Qué ventajas tiene usar la arquitectura Cliente-Servidor?

Cuando un servidor de bases de datos procesa una consulta, la respuesta a esta petición dependerá de la máquina servidora, no de la cliente. El proceso servidor activo devuelve sólo la información solicitada en la red (Contrario a los grandes bloques de entrada y salida), de tal modo que el tráfico en la red es sustancialmente reducido. Esto permite crear aplicaciones que acceden grandes cantidades de datos en un módem, por ejemplo, el cual tiene un ancho de banda mucho menor. Un proceso servidor activo puede asegurar más eficazmente la integridad de los datos.
Volver arriba Ir abajo
Ver perfil de usuario http://nuestroroom.foros-phpbb.es
 
Arquitectura de aplicaciones basadas en 2 capas!!!
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Nuestro Room :: Asignaturas :: Desarrollo de Software III-
Cambiar a: