Contenido
Hay un Examen dentro de dos semanas sobre una materia que genera
dificultades por un par de temas complejos que requieres entender para poder
pasarla así que le pides ayuda a un
amigo para comprenderla sin embargo, este no tiene una idea clara por lo que le
pregunta a uno de los alumnos que mejor lleva la materia, este último consulta
uno de sus libros para refrescar sus conocimientos y decirle al su compañero
como funciona tal ley, finalmente tu amigo llega y te lo explica con sus
palabras y finalmente comprendes a lo que se refiere un concepto.
Ejemplo de otro "Ciclo" donde en lugar de ser información es el carbono el que va de un lado a otro |
El funcionamiento de un sistema distribuido funciona de
forma similar al caso expuesto: un usuario busca algo en un browser este pide
información a un sitio que puede que le pida a otro sitio y así hasta encontrar
la información deseada y hacer el camino de regreso. La razón por la que opera
de esta manera reside en la forma en la que está estructurado el propio
software, en su Arquitectura.
Antes de llegar al concepto de Arquitectura de software es
necesario analizar el cómo se percibe este proceso de intercambio de información:
Es
el proceso mediante el que un mensaje
es emitido por un individuo llamado emisor,
es comprendido por otro llamado receptor
o destinatario gracias a la existencia de un código común. Este proceso abarca dos etapas conocidas como codificación y descodificación del mensaje, el primero consiste en un proceso de
transmutación del mensaje mediante los distintos elementos del código y su introducción
a un canal entre esta y la segunda
etapa se realiza la transmisión del mensaje donde puede encontrarse interferencias; una vez llegada a la descodificación
se tiene un mecanismo de feedback (retroalimentación)
donde se puede intercambiar los papeles donde el receptor se vuelva emisor y
viceversa. (Alcaraz, 2015)
Arquitectura de Software
En un principio se refería a la estructuración del software
como capas dentro de un único computador, ahora se define a partir de los
servicios ofrecidos y solicitados en uno o mas computadores.
Plataforma. -Consiste en el hardware y las capas más bajas
de software (ej. Sistema operativo).
Middleware. -Es el software necesario para el soporte de
interacciones entre Clientes y Servidores principalmente en aplicaciones
distribuidas. Normalmente se define como una capa de software cuyo propósito es
ocultar la heterogeneidad y proveer de un modelo de programación conveniente
para los desarrolladores de aplicaciones. Se encuentra representado por
procesos u objetos que actúan en un conjunto de computadoras y que se comunican
con el fin de proporcionar soporte para compartición de recursos en un sistema
distribuido. (Coulouris, Dollimore, &
Kindberg, 2014)
§
Software intermedio general. Servicios generales
que requieren todos los clientes y servidores.
§
Software intermedio de servicios. Software
asociado a un servicio en particular.
Arquitectura Cliente/Servidor
Ahora que ya han quedado varios conceptos claros podemos ver
a la arquitectura cliente servidor como un proceso de comunicación.
El cliente es la entidad que permite al usuario realizar
peticionas al servidor, se le conoce con el término front-end. Normalmente
maneja todas las funciones relacionadas con la manipulación y despliegue de
datos, por lo que están desarrollados sobre plataformas que permiten construir
interfaces gráficas de usuario (GUI), además de acceder a los servicios distribuidos
en cualquier parte de una red.
Servidor. - Es el encargado de atender a múltiples clientes
que hacen peticiones de algún recurso administrado por este. Al proceso
servidor se le conoce con el término back-end.
Las funciones que lleva a cabo el proceso servidor se
resumen en los siguientes puntos:
§
Aceptar los requerimientos de bases de datos que
hacen los clientes.
§
Procesar requerimientos de bases de datos.
§
Formatear datos para trasmitirlos a los
clientes.
§
Procesar la lógica de la aplicación y realizar
validaciones a nivel de bases de datos
El protocolo es un conjunto bien conocido de reglas y
formatos que se utilizan para la comunicación entre
procesos que realizan una determinada tarea. Se requieren
dos partes:
§
Especificación de la secuencia de mensajes que
se han de intercambiar.
§
Especificación del formato de los datos en los
mensajes.
Arquitectura de Dos capas. - Existe una capa de presentación
y lógica de la aplicación y otra en base de datos.
§
Requiere poco procesamiento de datos para
ordenarlos.
§
Se tiene una base de datos centralizada en un
solo servidor.
§
La base de datos es casi estática.
§
Requiere un mantenimiento mínimo. (CINVESTAV,
2017)
Arquitectura de Tres Capas. -Hay una capa de presentación,
otra de lógica y una tercera de base de datos.
- § Requiere mucho procesamiento de datos.
- § La funcionalidad puede estar en constante cambio.
- § Los procesos no están estrechamente relacionados con los datos.
- § Facilita el cambio de la base de datos.
- § Facilita el mantenimiento al aislar código.
- § Complementa a los Programación Orientada a Objetos
Ventajas
|
Desventajas
|
Existencia de plataforma de hardware cada vez más baratas.
|
|
Facilita la integración entre sistemas y el compartimiento de su
información.
|
No existen muchas herramientas para la administración de los
sistemas.
|
Resulta más rápido su mantenimiento y el desarrollo de aplicaciones.
|
El diagnostico de fallas es más complicado por el origen distinto de
sus componentes.
|
Tiene una gran escalabilidad de software y hardware.
|
|
Podemos decir que cuando se habla del Sistema Cliente
servidor podemos interpretarlo como la comunicación entre los componentes de nuestro
sistema distribuido (contexto) solicitando recursos o información, el cliente (emisor)
envía una petición, el servidor (receptor) la procesa en el middleware (canal)
mediante un protocolo y manda una respuesta (retroalimentación) al cliente.
Gracias a todo esto la información se traslada de un lado a otro, esto nos dice que el programar avanza de manera constante ya no solo a nivel interprete de maquina-usuario sino que a un lenguaje que puede seguir desarrollándose aun más.
Referencias
Alcaraz, V. (13 de Abril de 2015). Diccionario de
lingüistica moderna. Obtenido de Scribd:
https://es.scribd.com/document/261725597/Alcaraz-Varo-Diccionario-de-linguistica-moderna-pdf
CINVESTAV. (Agosto de
2017). Sistemas Distribuidos. Obtenido de CINVESTAV Tamaulipas:
http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/sistemas_distribuidos_panorama.pdf
Coulouris, G.,
Dollimore, J., & Kindberg, T. (21 de Abril de 2014). Sistemas Distribuidos
conceptos y diseño. Obtenido de Scribd: https://es.scribd.com/doc/219504970/Sistemas-Distribuidos-Coulouris-pdf
Santos García, D. V.
(Agosto de 2017). Fundamentos de Comunicación. Obtenido de Red Tercer
Milenio:
http://www.aliat.org.mx/BibliotecasDigitales/comunicacion/Fundamentos_de_comunicacion.pdf
Universidad de las
Americas de Puebla. (Agosto de 2017). Capitulo 5.-Cliente-Servidor.
Obtenido de Acervos digitales:
http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/marquez_a_bm/capitulo5.pdf
Comentarios
Publicar un comentario