Está en la página 1de 9

Qué es un sistema distribuido y sus características

Se define como sistema distribuido a un conjunto o grupo de equipos que son independientes
entre sí y que actúan como un único equipo de forma transparente y que tienen como
objetivo la descentralización del procesamiento o el almacenamiento de información.

La distribución distribuida permite obtener grandes prestaciones con un coste razonablemente


bajo. En la actualidad, la mayoría de sistemas informáticos son distribuidos y no dependen de
un único nodo o equipo para funcionar.

Las principales características de un sistema distribuido son:

 Concurrencia. Una arquitectura distribuida permite que sea utilizada por todos los
usuarios que interactúan en la red.

 Modularidad. Esta característica permite que los sistemas distribuidos sean escalables,
teniendo capacidad para crecer de forma simple y eficiente.

 Transparencia. Proporcionando a los usuarios y las aplicaciones una visión de los


recursos del sistema como si se tratase de una única máquina o equipo.

 No depende de los componentes. Un sistema distribuido no depende de los distintos


componentes hardware que lo forman, ya que, si alguno falla, los demás continúan
con los procesos sin que el sistema se vea interrumpido o sufra pérdidas de datos.

 Apertura. La arquitectura distribuida permite añadir nuevos servicios que compartan


los recursos existentes sin perjudicar los servicios que ya se están ejecutando. Por eso
deben estar diseñados sobre protocolos estándar que permitan utilizar hardware y
software de distintos fabricantes o desarrolladores.

 Carencia de reloj global. Las coordinaciones para la transferencia de mensajes entre


los diferentes equipos para la resolución de una o varias tareas, no tienen una
temporización general, es decir, se encuentra distribuida a los componentes.

Ventajas y desventajas de una arquitectura distribuida

Ventajas de la arquitectura distribuida

Utilizar un conjunto de ordenadores independientes para que realicen procesos o almacenen


datos como si se tratase de un único equipo ofrece una serie de beneficios entre los que
podemos destacar:

Incrementa la eficacia

Los sistemas distribuidos permiten afrontar problemas y proyectos que necesitan de


procesamientos complejos de forma más eficiente y a un menor coste. El uso de múltiples
nodos para procesar una o múltiples tareas supone un mayor rendimiento al optimizar la
distribución del mismo en los diferentes sitios de la red.

Mayor tolerancia a los errores

Una arquitectura distribuida tiene una mayor tolerancia a los fallos, ya que al caer un nodo la
información se encontrará en otros. Se trata de un sistema mucho más robusto que uno
centralizado debido a esta tolerancia a los fallos sin que se vean afectados los procesos o los
datos.
Al estar distribuida la carga de trabajo en muchos nodos distintos, ante el fallo de uno de ellos
los demás no se verán afectados y el sistema continúa funcionando, lo que permite afirmar
que los sistemas distribuidos son más confiables que los centralizados.

Proporciona una mayor velocidad

Una arquitectura distribuida se caracteriza por proporcionar una mayor velocidad en el


procesamiento. Por ejemplo, si se realiza una consulta a una base de datos, los
procedimientos se dividen entre los distintos nodos, obteniendo una respuesta mucho más
rápida que si se realiza con un único nodo.

Flexibilidad y escalabilidad

Un sistema distribuido puede ser ampliado de forma horizontal en caso de necesidad de


incremento de alguna de sus características, como procesamiento (CPU), almacenamiento o
memoria RAM. En lugar de aumentar de forma vertical la capacidad de los equipos, el sistema
distribuido se aumenta de forma horizontal añadiendo un nuevo nodo. Un sistema distribuido
puede añadir recursos para satisfacer las nuevas demandas sobre el sistema.

Desventajas de la arquitectura distribuida

A pesar de las enormes ventajas de los sistemas distribuidos, hay algunos inconvenientes
relacionados con este tipo de arquitecturas como pueden ser:

Mayor nivel de complejidad

En comparación con los sistemas centralizados, los distribuidos tienen un mayor nivel de
complejidad a la hora de diseñarlos, configurarlos y gestionarlos de forma eficiente.

Seguridad

Los sistemas distribuidos conectan muchos nodos a través de la red y son muchos los usuarios
que acceden a la misma, lo que lleva aparejado un aumento del riesgo en la integridad y
privacidad de los datos y las comunicaciones.

Precisamente por este motivo es necesario adoptar medidas de seguridad adicionales para
este tipo de arquitectura, de modo que se pueda compensar el riesgo de potenciales ataques,
o en caso de producirse, mitigar sus efectos.

Mayor esfuerzo

La gestión de un sistema distribuido requiere de un mayor esfuerzo por parte de los


administradores, ya que el sistema puede incluir máquinas que dispongan de diferentes
sistemas operativos o distintas versiones de los mismos. Hacer funcionar toda esta
arquitectura de forma eficiente es mucho más complicado que en un sistema único
centralizado y requiere del uso de protocolos estándar.

En qué casos es recomendable la arquitectura distribuida

La arquitectura distribuida es utilizada hoy en día en la mayoría de sistemas informáticos


existentes como:

 Aplicaciones comerciales como software bancarias o sistemas de gestión de grandes


empresas tipo SAP o aplicaciones CRM.

 Servicios en la nube como correo electrónico, almacenamiento cloud, o world wide


web.
 Contenido multimedia incluyendo enseñanza online, videojuegos multijugador o
servicios de videoconferencia.

 Sistemas informáticos complejos que incluyan base de datos distribuidas,


telecomunicaciones, sistemas operativos distribuidos, servidores de ficheros y
lenguajes de programación.

Los sistemas distribuidos se han convertido en la arquitectura más utilizada en la actualidad


para diseñar y construir sistemas informáticos. Consisten en ordenadores separados
físicamente unos de otros que cuentan con sus propias especificaciones de hardware y su
sistema operativo individual, pero que se comunican a través de una red para funcionar como
un sistema único.

La arquitectura distribuida permite realizar procesos con mayor velocidad y eficiencia,


disponiendo de una gran tolerancia a fallos, pues la caída de uno de los equipos que la forman
no interrumpe el funcionamiento general del sistema. Sin embargo, la gestión de este tipo de
sistemas es mucho más compleja que la realizada en sistemas centralizados.

¿Qué significa el término cliente-servidor?

La arquitectura cliente-servidor es un tipo de desarrollo de software, en el que las diferentes


labores se racionan entre los recursos, como son los servidores y los demandantes que son los
clientes. Es el cliente quien solicita la petición al programa y el servidor da respuesta.

Sus particularidades principales son que el cliente comienza las solicitudes o peticiones, por lo
que tiene un papel activo en la comunicación. Además, espera y recibe la respuesta del
servidor y puede conectarse desde varios servidores, es habitual que trabaje a través de una
interfaz gráfica.

El receptor es el servidor, sus características son que al iniciarse espera a que lleguen las
peticiones de los clientes, es un papel pasivo en la comunicación, luego lo procesa y envía
respuesta, además está preparado para un gran número de conexiones de clientes.

Ventajas

 Centralización: El servidor fungirá como única fuente de la verdad, lo que impide que
los clientes conserven información desactualizada.

 Seguridad: El servidor por lo general está protegido por firewall o subredes que
impiden que los atacantes pueden acceder a la base de datos o los recursos sin pasar
por el servidor.

 Fácil de instalar (cliente): El cliente es por lo general una aplicación simple que no
tiene dependencias, por lo que es muy fácil de instalar.

 Separación de responsabilidades: La arquitectura cliente-servidor permite


implementar la lógica de negocio de forma separada del cliente.

 Portabilidad: Una de las ventajas de tener dos aplicaciones es que podemos


desarrollar cada parte para correr en diferentes plataformas, por ejemplo, el servidor
solo en Linux, mientras que el cliente podría ser multiplataforma.

Desventajas

 Actualizaciones (clientes): Una de las complicaciones es gestionar las actualizaciones


en los clientes, pues puede haber muchos terminales con el cliente instalado y
tenemos que asegurar que todas sean actualizadas cuando salga una nueva versión.
 Concurrencia: Una cantidad no esperada de usuarios concurrentes puede ser un
problema para el servidor, quien tendrá que atender todas las peticiones de forma
simultánea, aunque se puede mitigar con una estrategia de escalamiento, siempre
será un problema que tendremos que tener presente.

 Todo o nada: Si el servidor se cae, todos los clientes quedarán totalmente inoperables.

 Protocolos de bajo nivel: Los protocolos más utilizados para establecer comunicación
entre el cliente y el servidor suelen ser de bajo nivel, como Sockets, HTTP, RPC, etc. Lo
que puede implicar un reto para los desarrolladores.

 Depuración: Es difícil analizar un error, pues los clientes están distribuidos en


diferentes máquinas, incluso, equipos a los cuales no tenemos acceso, lo que hace
complicado recopilar la traza del error.

Arquitectura de objetos Distribuidos.

Normalmente trabajamos con arquitecturas Cliente, servidor es por eso que quiero hablar de
arquitectura de objetos distribuidos, los objetos se distribuyen a través de varias
computadoras en una red y se comunican a través de middleware que proporciona un
conjunto de servicios que permiten la comunicación entre objetos y para que estos puedan ser
añadidos o eliminados del sistema. Veamos algunas características del modelo cliente servidor
y modelo de objetos distribuidos, además de sus ventajas.

- En el modelo cliente-servidor de un sistema distribuido, los clientes y los servidores son


diferentes.

- Los clientes reciben servicios de los servidores y no de otros clientes; los servidores pueden
actuar como clientes recibiendo servicios de otros servidores, pero sin solicitar servicios de
clientes.

- Los clientes deben conocer los servidores que ofrece cada uno de los servidores y deben
conocer como contactar con cada uno de ellos.

- El modelo Cliente – Servidor funciona bien para muchos tipo de aplicaciones.

- Sin embargo, limita la flexibilidad del diseñador, que debe decidir donde se proporciona
cada servicio.

- También debe planificar la escalabilidad y proporcionar algún medio para distribuir la carga
sobre los servidores, cuando más clientes se añadan al sistema.
- Una opción superiora es eliminar la distinción entre cliente y servidor y diseñar una
arquitectura de objetos distribuidos.

- Aquí, los componentes del sistema con objetos que proporcionan y requieren un conjunto
de servicios.

- Otros objetos realizan llamadas a estos servicios sin hacer ninguna lógica entre el receptor
de un servicio y el proveedor de un servicio.
- Los objetos pueden distribuirse a través de varias computadoras en una red y comunicarse a
través de middleware.

- A este middleware se lo denomina intermediario de peticiones de objetos.

- Su misión es proporcionar una interfaz transparente entre los objetos.


- Proporciona un conjunto de servicios que permiten la comunicación entre los objetos y que
estos sean añadidos y eliminados del sistema.

Ventajas del modelo de objetos distribuidos.


- Permitir al diseñador retrasar decisiones sobre dónde y cómo deberían proporcionarse los
servicios.
- Los objetos que proporcionan servicios pueden ejecutarse sobre cualquier nodo de la red.

- Es una arquitectura abierta: permite añadir nuevos recursos si es necesario.


El sistema es flexible y escalable.

¿Qué es Peer to peer?

Las tecnologías ‘peer to peer’ (P2P) hacen referencia a un tipo de arquitectura para la
comunicación entre aplicaciones que permite a individuos comunicarse y compartir
información con otros individuos sin necesidad de un servidor central que facilite la
comunicación.

Este patrón no es aplicable si la aplicación o la información no se pueden distribuir en varios


servidores. La escalabilidad de las aplicaciones y el acceso a la información debe ser examinada
y gestionada, ya que esto puede ser un problema si se espera crecimiento, especialmente el
número de pares que se comunican simultáneamente.

Ventajas

 Alta capacidad de almacenamiento: La información no se encuentra concentrada en


un solo punto sino que está distribuida.

 Alta disponibilidad: Dado que la información se encuentra repartida, hay muchos


sitios para poder descargarla, por lo que existe una gran probabilidad de conseguir lo
que se quiera.

 Fiabilidad: Si falla un nodo, podemos seguir descargando.

 Distribución del tráfico en la red: La información no se solicita toda a un mismo punto,


si no que se encuentra distribuida, por lo que los servidores no se saturarán.

Desventajas

 Los pares de nodos se desconectan después de descargar: De esta forma reciben


datos pero no ceden contenidos por lo que la arquitectura fallará, ya que no hay de
donde descargar.

 Presencia de los Firewalls: En ocasiones estos evitan que los usuarios reciban
contenidos y que a su vez los cedan.

 Problemas de confianza: Debido que no hay seguridad centralizada, cada


computadora debe utilizar medidas de seguridad individuales para la protección de
los datos.

Características

Seis características deseables de las redes P2P:


 Escalabilidad. Las redes P2P tienen un alcance mundial con cientos de millones de
usuarios potenciales. En general, lo deseable es que cuantos más nodos estén
conectados a una red P2P mejor será su funcionamiento. Así, cuando los nodos llegan
y comparten sus propios recursos, los recursos totales del sistema aumentan. Esto es
diferente en una arquitectura del modo servidor-cliente con un sistema fijo de
servidores, en los cuales la adición de más clientes podría significar una transferencia
de datos más lenta para todos los usuarios.

 Robustez. La naturaleza distribuida de las redes peer-to-peer también incrementa la


robustez en caso de haber fallos en la réplica excesiva de los datos hacia múltiples
destinos, permitiendo a los Peers encontrar la información sin hacer peticiones a
ningún servidor centralizado de indexado.

 Descentralización. Estas redes por definición son descentralizadas y todos los nodos
son iguales. No existen nodos con funciones especiales, y por tanto ningún nodo es
imprescindible para el funcionamiento de la red. En realidad, algunas redes
comúnmente llamadas P2P no cumplen esta característica,
como Napster, EDonkey o BitTorrent.

 Los costos están repartidos entre los usuarios. Se comparten o donan recursos a
cambio de recursos. Según la aplicación de la red, los recursos pueden
ser Archivos, Ancho de banda, Ciclos de proceso o Almacenamiento de disco.

 Anonimato. Es deseable que en estas redes quede anónimo el autor de un contenido,


el editor, el lector, el servidor que lo alberga y la petición para encontrarlo siempre
que así lo necesiten los usuarios. Muchas veces el derecho al anonimato y los derechos
de autor son incompatibles entre sí, y la industria propone mecanismos como
el DRM para limitar ambos.

 Seguridad. Es una de las características deseables de las redes P2P menos


implementada. Los objetivos de un P2P seguro serían identificar y evitar los nodos
maliciosos, evitar el contenido infectado, evitar el espionaje de las comunicaciones
entre nodos, creación de grupos seguros de nodos dentro de la red, protección de los
recursos de la red… En su mayoría aún están bajo investigación, pero los mecanismos
más prometedores son: Cifrado multiclave, cajas de arena, gestión de derechos de
autor (la industria define qué puede hacer el usuario, por ejemplo la segunda vez que
se oye la canción se apaga), reputación (sólo permitir acceso a los conocidos),
comunicaciones seguras, comentarios sobre los ficheros…

La arquitectura de aplicaciones

Se refiere al diseño estructural y organizativo de un sistema de software o aplicación. Este


diseño define cómo los diferentes componentes de la aplicación interactúan entre sí y cómo se
organizan para lograr un objetivo específico. Hay varios enfoques arquitectónicos que se
utilizan en el desarrollo de aplicaciones, cada uno con sus propias ventajas y desventajas.
Algunos de los enfoques arquitectónicos comunes incluyen:

1. Arquitectura de tres capas: Esta arquitectura divide la aplicación en tres capas: la capa
de presentación (interfaz de usuario), la capa de lógica de negocio y la capa de
almacenamiento de datos. Esto ayuda a separar las preocupaciones y facilita la
escalabilidad y el mantenimiento.

2. Arquitectura de micro servicios: En esta arquitectura, una aplicación se construye


como un conjunto de servicios pequeños e independientes que se pueden
implementar, escalar y mantener de manera individual. Esto promueve la flexibilidad y
la agilidad en el desarrollo.

3. Arquitectura monolítica: En este enfoque, todos los componentes de la aplicación


están integrados en un solo código base. Aunque es más simple de desarrollar, puede
volverse complejo y difícil de mantener a medida que la aplicación crece.

4. Arquitectura orientada a servicios (SOA): Similar a la arquitectura de micro servicios,


SOA implica dividir la aplicación en servicios reutilizables y autónomos que se
comunican a través de interfaces bien definidas.

5. Arquitectura sin servidor (Servirles): En este enfoque, los desarrolladores se centran


en escribir funciones individuales que se ejecutan en respuesta a eventos. La
infraestructura subyacente es administrada por un proveedor de servicios en la nube.

Elegir la arquitectura adecuada depende de factores como los requisitos del proyecto, la
escalabilidad deseada, el equipo de desarrollo y otros aspectos. Es importante tener en cuenta
las ventajas y desventajas de cada enfoque antes de tomar una decisión.

Sistema de procesamiento de datos

Se refiere a una infraestructura o conjunto de componentes que trabajan juntos para


recopilar, almacenar, manipular y presentar datos de manera eficiente. Este sistema puede
incluir hardware, software y procedimientos diseñados para gestionar y procesar información.

En el contexto de la informática, un sistema de procesamiento de datos generalmente


involucra aspectos como:

1. Hardware: Esto incluye las computadoras, servidores, dispositivos de almacenamiento


y otros componentes físicos necesarios para procesar los datos.

2. Software: Los programas y aplicaciones que permiten a los usuarios trabajar con los
datos, realizar operaciones y obtener información útil. Esto podría abarcar sistemas
operativos, programas de procesamiento de texto, hojas de cálculo, bases de datos y
mucho más.

3. Almacenamiento: La forma en que los datos se guardan y se accede posteriormente.


Esto podría implicar bases de datos, sistemas de archivos, almacenamiento en la nube,
entre otros.

4. Procesamiento: La manipulación y transformación de los datos. Puede incluir


operaciones matemáticas, cálculos, análisis estadísticos, etc.

5. Comunicación: La manera en que los datos se transmiten entre diferentes


componentes del sistema, como a través de redes de computadoras.

6. Seguridad: Las medidas para proteger los datos contra accesos no autorizados y
pérdidas. Esto podría involucrar cifrado, autenticación de usuarios, firewalls, entre
otros.

7. Interfaz de Usuario: La forma en que los usuarios interactúan con el sistema, a través
de interfaces gráficas, líneas de comando u otros métodos.

¿Qué son los sistemas de procesamiento de transacciones (TPS)?

Los sistemas de procesamiento de transacciones tienen la función de agrupar, almacenar,


administrar y recuperar información para operaciones comerciales. El proceso se ejecuta por
medio de una base de datos que se encarga de supervisar los programas de transacción que se
encuentran integrados por una información específica.

Tiene un uso muy amplio para comercios en internet, especialmente para vender algo. Su
función es permitir un retraso de tiempo entre el momento de presionar el botón de compra
de un producto y cuando la venta sucede realmente. En otras palabras, captura y luego
procesa. Para profundizar más sobre el tema, continúa leyendo.

Qué son los sistemas de procesamiento de transacciones (TPS)

Los sistemas de procesamiento de transacciones (TPS) son un mecanismo de gestión de


información utilizado para operaciones comerciales que recoge todos los datos esenciales de
una transacción en específico.

Se caracteriza por tener un óptimo rendimiento, alta confiabilidad y una gran consistencia al
momento de regular cualquier tipo de transacción. Además, también se relaciona con el
procesamiento de información en tiempo real.

La función principal de cualquier TPS es atrapar, para luego gestionar y también recopilar
todas las transacciones realizadas. Del mismo modo, es el encargado de desarrollar diferentes
documentos que se asocien con las actividades que generalmente se ejecutan en la empresa y
los negocios.

Dicho de otro modo, este sistema de gestión de transacciones, o TPS, permite que los
programadores de aplicaciones enfoquen sus labores en desarrollar un código que beneficie a
la empresa: administrar el procesamiento simultáneo de diferentes operaciones. Por otro lado,
también tiene la ventaja de compartir datos, lo que sean más fáciles de proteger ante la
manipulación.

Tipos de sistemas de procesamiento de transacciones

Existen dos tipos de TPS principales que componen la mayoría de los negocios y empresas
digitales de la actualidad.

1. Procesamiento por lotes

En este caso, un TPS reconoce las semejanzas entre diferentes elementos para agruparlos
como un conjunto o como lotes de datos. Tiene la tendencia de generar un retraso de tiempo
dado que analiza varios grupos de información al mismo tiempo, demandando una mayor
potencia informática.

2. Procesamiento en tiempo real

A diferencia del primero, se trata de un protocolo que gestiona transacciones a medida que se
van solicitando. De esa manera, se evitan los retrasos en el procesamiento de información,
dando como resultado una transacción más eficaz.

Una de sus ventajas es que permite que la empresa que emplee este método pueda
identificar y solucionar problemas en las transacciones rápidamente. Gracias a eso, pueden
aumentar sus tiempos de respuesta.

Características esenciales de un TPS


 Los sistemas de procesamiento de transacciones se enfocan en ofrecer una respuesta
lo más rápida posible. En esencia, el periodo desde la entrada de la solicitud hasta la
salida de producción debe ser de apenas unos segundos, incluso menos.

 Generalmente, son mecanismos de gestión de información a prueba de cualquier


tipo de error. De igual manera, existe un margen de error, por lo que si se presenta un
fallo, la solución suele ser rápida y eficaz.

 El procesamiento de transacciones se da de la misma forma para todas, lo que significa


que la formalidad y la estructura no son modificables. En el caso contrario de que
exista flexibilidad en la gestión, se generan solicitudes de operaciones fuera de lo
estándar. Como consecuencia, se desarrollan problemas por información diferente de
transacción. Además, al trabajar con una base de datos, deben estar estandarizados.

 Es un sistema que integra todas las operaciones de una organización. De ese modo, al
definirse las funciones y responsabilidades, el sistema debe tener la capacidad de
mantener esos requerimientos.

 Uno de los beneficios que les trae a las empresas que integran este tipo de sistemas es
la reducción de costos. En ese sentido, se encargan de disminuir el número de veces
en las que se hace uso de la información de la base de datos.

¿Cuál es la importancia de un sistema de procesamiento de transacciones?

Un TPS es un mecanismo de gran ayuda para cualquier empresa, dado que permite funcionar
en cualquier parte del mundo por medio del trabajo remoto. Gracias a eso, pueden explotar
oportunidades en otros mercados, fomentando el crecimiento del negocio en otras áreas de
gran potencial.

Por otro lado, los sistemas de procesamiento de transacciones son útiles para las tareas
simultáneas a larga escala, con la capacidad de completarlas sin retrasos ni errores. En
definitiva, un TPS es la herramienta ideal para administrar y controlar las labores rutinarias de
una organización, empresa o negocio.

También podría gustarte