El reto para el diseño es diseñar el software y hardware para proporcionar características deseables a los sistemas distribuidos y, al mismo tiempo,  minimizarlos problemas propios a estos sistemas. Es necesario comprender las ventajas y desventajas de las diferentes arquitecturas de sistemas distribuidos.

Existen dos modelos de dominio específico:

  1. Modelos genéricos: que son abstracciones de varios sistemas reales.
  2. Modelos de referencia: que son modelos abstractos y describen a una clase mayor de sistemas.

Estos modelos arquitectónicos se denominan arquitecturas de dominio específico.

  1. Modelos genéricos.
  2. Modelos de referencia.

No hay, desde luego una distinción rígida entre estos tipos de modelos. Los modelos genéricos también pueden servir como modelos de referencia. Hacemos aquí la distinción entre ellos debido a que los modelos genéricos pueden reutilizase directamente en un diseño. Los modelos de referencia se usan normalmente para comunicar conceptos del dominio y comparar o evaluar posibles arquitecturas.

Hay dos tipos de modelos arquitectónicos obtenidos a partir de varios sistemas reales.

  1. Modelos genéricos. Son abstracciones obtenidas a partir de varios sistemas reales. En capsulan las características principales de estos sistemas. Por ejemplo, en sistemas de tiempo real, podría haber modelos arquitectónicos genéricos de diferentes tipos de sistemas tales como sistemas de recolección de datos o sistemas de monitorización. Se estudian varios modelos genéricos.
  2. Modelos de referencia. Son más abstractos y describen una clase más amplia de sistemas. Constituyen un modo de informar a los diseñadores sobre la estructura general de esta clase de sistemas. Los modelos de referencia normalmente se obtienen a partir de un estudio del dominio de la aplicación.