Il y a en fait 3 questions dans votre question :
- Définir frontend, middle et back-end
- Comment et quand ils se chevauchent ?
- Leurs associés d'habitude les goulets d'étranglement.
Ce JB King a décrit est correct, mais il est un particulier, version simple, où, en fait, il a reproduit l'avant, au milieu et bacn à une couche MVC.
Il a tracé les M à l'arrière, V à l'avant, et C à la moyenne.
Pour beaucoup de gens, il est tout simplement parfait, comme ils viennent de le vilain monde où même MVC n'a pas été appliquée, et vous pourrait avoir un effet direct DB appels en vue.
Toutefois, dans la vraie, applications web complexes, vous avez en effet deux ou trois couches différentes, appelé front, middle et back. Chacun d'eux peut avoir une base de données associée et un contrôleur.
Le front-end sera visible par l'utilisateur final. Il ne doit pas être confondu avec le front-office, qui est l'INTERFACE utilisateur pour les paramètres et de l'administration de l'avant. Le front-end sera généralement une sorte de CMS ou de la Plateforme de e-commerce (Magento, etc.)
Le milieu-fin n'est pas obligatoire et où les logiques d'entreprise. Il sera basé sur un GIP, un outil de MDM, ou une sorte de base de données personnalisée où vous enrichir de vos produits ou de vos articles (CMS). Ce sera aussi l'endroit où vous le code des fonctions de l'entreprise, qui doivent être partagées entre les différentes interfaces (par exemple entre le PC frontend et l'API basée sur l'application mobile). Parfois, un ESB ou d'un outil comme ActiveMQ sera votre intermédiaire
Le back-end sera une 3ème couche, surrouding votre base de données source ou de votre ERP. Il peut être juste l'API wrting à et la lecture à partir de votre ERP. Il peut être votre fournisseur DB, si vous faites du e-commerce. En fait, cela dépend vraiment de projets web, mais il est toujours d'un référentiel central. Il sera accessible soit par le biais d'un DB d'appel, par le biais d'une API, ou une Hibernate couche, ou un plein de fonctionnalités d'applications back-end
Cette description signifie que répondre les 2 autres questions n'est pas possible dans ce fil, comme des goulots d'étranglement vraiment dépend de ce que votre 3 se termine contenir : ce que JB King a écrit reste vrai pour de simples architectures MVC
au moment où la question a été posée (il y a 5 ans), peut-être le modèle MVC n'était pas encore si largement adopté. Maintenant, il n'y a absolument aucune raison pour laquelle le modèle MVC ne serait pas suivi et une vue serait liée à l'DB appels.
Si vous lisez la question "existe-il des cas où ils DOIVENT se chevaucher, et frontend/backend ne peuvent pas être séparés?" dans un sens plus large, avec 3 différents composants, puis il y a des moments où le 3 couches de l'architecture est inutile de cours. Pensez à un simple blog personnel, vous n'aurez pas besoin de tirer des données extérieures ou des sondage RabbitMQ files d'attente.