Fundamentos de programación en capas

La programación en capas es una técnica muy utilizada en nuestro tiempo. Sirve más que nada para reutilizar y lograr que los algoritmos sean menos complejos.
Descubre de que se trata esta técnica.

Amigos lectores, muchos ustedes estarán estudiando programación y seguramente tendrán que desarrollar un software al final de cada año que concurren. En mi caso estoy desarrollando un sistema en java para el control y la gestión de una automotora. Les voy a explicar una experiencia propia y espero que le sirva de ayuda para quienes tienen que desarrollar algún sistema y se sienten medios perdidos para poder arrancar.

Historia

Hace un tiempo, antes de que yo fuera joven, sistemas informáticos no tenían bases de datos, luego cuando joven tenían bases de datos que eran casi propias de cada lenguaje, en Cobol por ejemplo teníamos archivos tipo texto armados a mano, lo mismo en Basic y Pascal, luego en
Clipper o Fox usábamos DBF (de Dbase III Plus), ahí ya se comenzó a separar el lenguaje de programación de la base de datos en si.

Por ejemplo Access, lo podemos usar desde JAVA, Visual Basic, C#, etc., la idea cambio y en principio tenemos un motor de base de datos o servidor de base de datos como Access, SQL, Oracle, MySQL y por otro lado un lenguaje de programación que accede eso Insertando, Modificando, Listando, etc.

image0021.gif

Si nos ponemos a mirar tenemos 2 cosas separadas, ya que una base en Access es aparte totalmente de nuestro software que puede estar hecho en cualquier lenguaje, incluso la misma base RentaAutos.MDB la podemos leer directo desde Access, o con un programa en Java.


Si bien parece ya mucho poder separar en estas 2 partes, luego aparecen otros elementos, al comienzo los software eran hechos por ejemplo para Windows en red Local, facilísimo, pero claro luego aparece la web, y de pronto esa base de datos única se debía leer desde un software de red local y además desde la web, por tanto se agrega otro software posible a nuestro sistema hecho especialmente para la base de datos.

image004.gif

Para agregar otro elemento complicado mas llegamos a los celulares, o sea que el sistema tiene una base de datos, que se lee desde un PC, también desde la Web y también desde un teléfono móvil o celular.
Hasta ese momento la cosa era fácil se hace 1 base de datos y 3 programas totalmente distintos para cada dispositivo, solución fácil, pero claro había que hacer todo de nuevo cada vez.

Actualidad
Fue ahí cuando aparecen los nuevos lenguajes con sus nuevas posibilidades y formas de programar, donde la programación orientada a objetos fue fundamental, de esta forma podíamos dividir ese software en capas independientes. Como vemos en el esquema general, esta compuesto por diferentes partes, como dijimos hace un momento, antes el software por completo se realizaba 2 o mas veces, para redes locales o para web, lo cual no era muy bueno ya que teníamos que trabajar 2 o mas veces aumentando los costos.

image006.gif

En el esquema vemos que tenemos la base de datos, luego el software que esta formado por diferentes elementos (o capas), uno de ellos es la de acceso a datos, y la misión es acceder a la base de datos y traer la información (registros de las tablas, cuando consultamos, o listamos), o llevarlos a la base de datos (cuando agregamos o modificamos), con esto logramos que todo ese código JAVA lo re‐utilicemos sin importar si estamos en Web o Red Local (o Celulares). El otro segmento es el que justamente debemos realizar consiste en las Entidades Relevantes, o sea Clases JAVA que permitan contener esa información que se leyó desde la base de datos mediante el Acceso a Datos, será este un intermediario para que luego la interfaz muestre eso para PC o Web, todo el segmento de código JAVA de estas Clases de Entidades Relevantes se re‐utiliza sin importar de si es para PC o Web.
Por ultimo vemos que hay 2 componentes que son Interfaz PC, que será nuestro código JAVA que permita al usuario trabajar en un PC, y otro elemento que permitirá trabajar desde la web, lo que haremos con un Applet JAVA.

Con este sistema logramos entonces crear un Software único, que funciona con una base de datos, pero que no necesariamente debe correr en PC únicamente o Web únicamente ya que esta creado en capas independientes.

Futuro
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í:

Logrando de esta forma un software que brinde la posibilidad de trabajar con una u otra base de datos (o mas), sin necesidad de hacerlo todo de nuevo ya que reutilizamos el código.

image008.gif

Hoy en día existen herramientas como Genexus que permiten el desarrollo de software de forma mucho mas sencilla, donde una ves que armamos la estructura del programa y normalizamos nuestra base de datos nos permite elegir en que leguaje deseamos compilar y el sistema escribe todo el código de nuestro programa en el lenguaje elegido, claro que es necesario tener instalado las herramientas necesarias para que pueda compilar. De esta forma nos ahorramos largas noches sin dormir sentados frente al monitor de nuestro computador escribiendo interminables líneas de código. De todas formas muchas veces es necesario modificar el código escrito por el programa aunque el trabajo es mucho menor que el tener que digitar absolutamente todo de cero.

En síntesis el desarrollo de un software en capas tiene muchísimas ventajas, piensen en cuantas horas de programación perderían si tienen que diseñar un sistema diferente para cada tipo de interfaz que se tenga que utilizar. Por otro lado, hay lenguajes más complejos que otros y cada uno con sus ventajas y desventajas. Muchas veces no van a tener la posibilidad de elegir con el lenguaje que tienen que programar por eso es bueno tener idea de cómo funcionan y para que se utilizan en general los distintos lenguajes de programación.

Por eso en la medida de lo posible cuando desarrollen un software traten siempre de mirar un poco mas delante en el tiempo teniendo en cuenta que posiblemente tendrán que modificarlo para agregarle prestaciones nuevas.

Valora esta noticia: 1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (0 votos, media: 0,00 de 5)
Loading ... Loading ...