Para personas no técnicas, utilizaría el siguiente concepto. Todo el mundo profesional está orientado al servicio.
- En lugar de hornear una galleta por usted mismo, vaya al panadero.
- En lugar de intentar curarse a usted mismo, va al médico.
- En lugar de escribir un programa, usted pídale a un programador que haga esto para usted.
Esto implica dos ventajas principales:
- Cada uno hace su trabajo mejor que si que todos estábamos tratando de resolver todos nuestros tareas por separado.
- Hay camino, que permite a los no profesionales para comunicarse con aquellos, que va a resolver nuestra tarea (en mundo real tal manera es dinero y contratos comerciales)
En el mundo del software, la arquitectura se implementa mediante la definición de servicios especializados (aplicaciones) que están dedicados a realizar tareas específicas y mediante la definición de protocolos, que resuelven el problema de las comunicaciones entre dichas aplicaciones. Cuando se implementa este tipo de arquitectura, se obtiene algunos beneficios, que pueden ser también asignados al mundo real:
Si el médico no está disponible, no se puede puede curar, pero al menos se puede obtener una cookie de la ¡panadería! En software, esto significa que un servicio fallido no rompe todo el sistema.
Por lo general, los médicos y los panaderos no comparten la misma habitación y esto les permite operar mejor. Al igual que en el software, puede colocar cada servicio en su propio hardware.
Para el mundo del software esto significa, mejor disponibilidad, facilidad de mantenimiento, reutilización y costos reducidos. ¡Buena suerte!
Estoy anticipando comentarios de "conviértalo en un wiki de la comunidad" ... Argumentaría que la mejor (es decir, la más completa/bien pensada) respuesta debería obtener la mayor cantidad de votos y ser aceptada como respuesta –