Una aplicación distribuida es un programa diseñado para ejecutarse en varias computadoras a la vez y puede almacenarse en un servidor o en la computación en la nube. Esto se usa comúnmente dentro de una red que tiene una relación cliente-servidor en la que una computadora cliente accede a un programa desde el servidor y el servidor realiza todo el procesamiento. Cada computadora que accede a la aplicación normalmente está hecha para un propósito específico. Si bien existen muchas aplicaciones distribuidas diferentes, las más comunes son programas generales, software de colaboración, sistemas en tiempo real y sistemas computacionales. El uso de una aplicación distribuida suele ser beneficioso, pero esto puede plantear un problema si el servidor es débil o lento.
Los sistemas de aplicaciones distribuidas se pueden usar en muchos tipos de redes diferentes, pero se ven con mayor frecuencia en redes cliente-servidor. En este tipo de red, la computadora cliente, o la computadora que usa la gente, accede a programas e información del servidor. No solo se usa la aplicación desde el servidor, sino que el servidor es responsable de hacer todo el procesamiento para que el programa funcione. La computación en la nube también se puede utilizar para esto, en cuyo caso el programa se almacena en un servidor en la nube y las computadoras cliente acceden al programa.
Si bien cada computadora o persona puede usar la aplicación distribuida para propósitos generales, la computadora o persona normalmente está especializada o instruida para realizar una tarea específica. Por ejemplo, una computadora puede usarse u optimizarse para crear una imagen mientras que otra se usa para texto. El usuario también puede recibir instrucciones para realizar una determinada tarea, en lugar de simplemente realizar tareas genéricas.
Hay muchos tipos de aplicaciones distribuidas diferentes, pero hay cuatro categorías principales. Los programas generales son programas comunes que se encuentran en una computadora, solo que están diseñados para funcionar en varias computadoras a la vez. El software de colaboración está hecho para que varias personas puedan trabajar en un solo proyecto al mismo tiempo; cada usuario normalmente trabaja en una sección diferente del proyecto. Los sistemas en tiempo real son programas de chat y tickets en los que los usuarios responden las preguntas de los clientes en línea. Los programas computacionales están hechos para procesar código, y el uso de varias computadoras a la vez optimiza y acelera el procesamiento.
El uso de una aplicación distribuida es generalmente beneficioso, porque facilita que muchos usuarios accedan y utilicen un programa a la vez, aunque puede haber un problema si el servidor no es fuerte. El servidor es comúnmente responsable de realizar el procesamiento, por lo que esto ejerce una gran presión sobre el servidor. Si el servidor es débil o lento, esto puede provocar retrasos o problemas más graves en las computadoras que acceden al programa.