SOLID
S - SRP
(Single Responsibility Principle)O - OCP
(Open / Closed Principle)L - LSP
(Liskov Substitution Principle)I - ISP
(Interface Segregation Principle)D - DIP
(Dependency Inversion Principle)AOP
(Aspect Oriented Programming)OOP
(Object-Oriented Programming)SoC
(Separation of Concerns)BLL
(Business Logic Layer)DAL
(Data Access Layer)FL
(Facade Layer)
L'architecture trois tiers, aussi appelée architecture à trois niveaux ou architecture à trois couches,
est l'application du modèle plus général qu'est le multi-tier. L'architecture logique du système est divisée en trois niveaux ou couches :
|
  | |
Son nom provient de l'anglais tier signifiant étage ou niveau. Il s'agit d'un modèle logique d'architecture applicative qui vise à modéliser une application comme un empilement de trois couches logicielles (ou niveaux, étages, tiers) dont le rôle est clairement défini :
|
WorkingProcess... Lorem ipsum dolor sit amet, vel mauris interdum. Sed wisi nibh aptent ante, vestibulum velit rhoncus sed porta arcu aptent. Consectetuer vel, ipsum nec. Perspiciatis sit tempor, diam id sapien orci amet. Nunc dolor sed feugiat magna ut. Ad et nec at lacus, nibh turpis nonummy lectus neque lacinia platea, pulvinar anim eget felis, praesent semper. Et pellentesque. Elementum integer cursus vestibulum, diam velit dis, nulla lorem facilisi ut mauris. Elit et urna. Pharetra pellentesque velit, adipiscing ultrices in massa ultricies, et libero donec a ut mattis molestie. Adipiscing maecenas congue maecenas odio augue posuere, interdum eget nulla elit, eros orci turpis amet ut aliquam, dolor ut ut ac. |
  |
Les applications conçues selon le principe d'inversion des dépendances et les principes DDD (conception pilotée par le domaine) présentent au final plus ou moins
la même architecture. Les noms donnés à cette architecture ont beaucoup varié au fil des années. Au début, on l'a nommée architecture hexagonale, puis
architecture ports-adaptateurs. Plus récemment, on l'a appelée architecture en oignon ou architecture propre. L'architecture propre met la logique métier et le modèle d'application au centre même de l'application. Au lieu que la logique métier dépende des préoccupations de l'accès aux données ou d'une autre infrastructure, cette dépendance est inversée : les détails de l'infrastructure et de l'implémentation dépendent du noyau de l'application. Cela s'obtient par la définition d'abstractions, ou interfaces, dans la couche Noyau de l'application, lesquels sont ensuite implémentés par les types définis dans la couche Infrastructure. Cette architecture est souvent représentée sous la forme d'une série de cercles concentriques, à l'image des couches d'un oignon. La figure 5-7 montre un exemple de ce style de représentation architecturale. Dans ce diagramme, le flux des dépendances va du cercle extérieur vers le cercle le plus intérieur. La couche Noyau de l'application tire son nom de sa position au coeur de ce diagramme. Par ailleurs, comme vous pouvez constater sur le diagramme, la couche Noyau de l'application n'a aucune dépendance vis-à-vis des autres couches de l'application. Les entités et les interfaces de l'application se trouvent au centre même du diagramme. Juste après vers l'extérieur, mais toujours dans la couche Noyau de l'application, viennent les services de domaine, qui implémentent généralement les interfaces définies dans le cercle central. À l'extérieur de la couche Noyau de l'application, les couches Interface utilisateur et Infrastructure dépendent toutes deux de la couche Noyau de l'application, mais elles ne dépendent pas (nécessairement) l'une de l'autre. |
  |
Une architecture orientée service se conforme à divers principes de gestion des services influençant directement le comportement intrinsèque d'une solution logicielle et le style de sa conception :
L'architecture orientée service est une solution logicielle distribuée. Elle propose un mécanisme d'échange de messages sécurisé entre les systèmes d'informations sous-jacents en employant des protocoles de communication standardisés. Cette approche offre à l'architecture une opportunité d'ouverture sur un large éventail de solutions logicielles existantes. |
  |