Skip to content

2. Componetización via web services

Nelson Manuel Moreno Restrepo edited this page May 8, 2016 · 2 revisions

Una de las mayores preocupaciones cuando se construye una aplicación es la de cuál será la manera de actualizar, remplazar y como hacer independientes todas las piezas de software, en otras palabras como componetizar dichas piezas. En casi todas las aplicaciones existen componentes llamados librerías los cuales son agregados, desagregados, remplazados y funcionan de forma independiente a la aplicación, de la misma forma funcionan los servicios sin embargo hay una diferencia importante entre ellos descrita en los siguientes dos párrafos:

Las librerías se usan e invocan mediante funciones de llamado en memoria, lo que quiere decir que para que estas funciones puedan ser ejecutadas estas deberán estar en el mismo espacio de memoria y procesos de la aplicación.

Por otra lado los servicios son componentes out-the-process (no comparten los espacios de memoria o procesos de la aplicación) los cuales se comunican mediante mecanismos independientes como Web Service Request o Remote Procedure Call. Adicionalmente los servicios se despliegan de forma independiente (las librerías no necesariamente) y por otro lado en la mayoría de los casos remplazar una Liberia requiere un nuevo despliegue de las o las aplicaciones de las cuales depende.

Los microservicios no solo usan librerías sino que además usan servicios para componetizar las funciones de la aplicación. Los servicios usan RPCs las cuales proveen mejores mecanismos que los que ofrecen los lenguajes de programación para encapsular la lógica y el comportamiento de las funciones de una aplicación. Hoy es mas popular usar el forma to RestFull.

Por último las RPCs garantizan un mejor desacoplamiento de los componentes del sistema.