2011-08-01 2 views
1

L'application que nous sommes en train d'évaluer est une application web construite en utilisant mvc spring et spring avec base de données oracle.Est-ce une architecture à trois niveaux?

Chaque clic sur le navigateur se termine par un appel de base de données.

La majeure partie de la logique métier réside dans les procédures de base de données.

  • Comment puis-je convaincre ma direction que ce pas une application à trois niveaux?
  • Comment puis-je convaincre ma direction que ce n'est pas une architecture orientée services?

Répondre

3

Eh bien, vous avez trois niveaux -

  • Database (Oracle 3g)
  • intégration ware Moyen (printemps)
  • UI (Spring MVC)

Ainsi, techniquement votre gestion est correct, au moins pour le nombre de niveaux dans l'application. Vous pouvez facilement faire l'argument qu'ils ne suivent pas les meilleures pratiques, SQL est un langage horrible pour faire des validations commerciales.

Sur votre deuxième point, il est impossible de dire si c'est une application compatible SOA, même si je parie mon premier né n'est pas. SOA est assez compliqué, et vous demandez à 10 personnes ce que vous obtiendrez 15 réponses. Mais à partir de votre description, je dirais que le système échoue au test SOA dans les domaines de la découvrabilité, de la composabilité, de l'autonomie, de l'abstraction et du couplage lâche. Et selon la façon dont vous le regardez, contrat de service aussi.

Voici cependant une question pour vous, qu'est-ce que votre organisation pense avoir besoin de SOA?

+0

Oui ayant ressort et ressort-mvc permet de trois couches. Mais comme chaque appel se termine par un appel à une base de données, il me semble que cette couche intermédiaire effectue une fonction proxy. Effectivement, nous regardons la couche d'interface utilisateur -> couche proxy [couche de gestion, accès aux données] -> base de données oracle11g. Cela est-il toujours admissible à une demande de 3 pneus? Wrt SOA Je suis d'accord qu'il y a plusieurs définitions autour. –

+0

Vous avez toujours plusieurs niveaux, mais le niveau d'intégration intermédiaire est juste * sérieusement * sous-utilisé. C'est une ligne mince avec ces niveaux en particulier lorsque vous utilisez une architecture d'interface utilisateur qui peut efficacement prendre en charge l'intégration de middleware. Avant J2EE et Spring, nous intégrions toute notre logique middleware dans les servlets du contrôleur. Odd hein? Mais, oui, je pense que vous pouvez faire valoir à votre direction que votre niveau de middleware est effectivement plus lourd, car il est si mal sous-utilisé. – Perception

2

D'après les informations que vous avez fournies, il ne suit pas si elle est à trois niveaux ou orientée service.

3 Le niveau signifie généralement couche d'interface utilisateur/couche de service/couche de base de données. Chacun a ses propres responsabilités. L'architecture orientée service signifie souvent que vous avez des services déployables distincts pour effectuer différentes fonctions dans le système. Vos déclarations à elles seules ne confirment ni ne nient aucune des définitions.

2

Ce que vous semblez constituer est plus une violation du modèle MVC que du modèle multiniveau. Dans une application MVC typique, la logique métier appartient au code du contrôleur et non aux procédures de base de données. Toutefois, une application à trois niveaux est généralement requise uniquement pour avoir trois niveaux, un niveau d'interface, un niveau métier et un niveau de persistance. Et techniquement, ils l'ont. Donc, je pense que vous devriez peut-être soutenir qu'ils n'ont pas suivi MVC correctement, et que, au mieux, ils ont une application à trois niveaux mal implémentée.

Vous n'avez pas non plus fourni suffisamment de détails pour prouver qu'il n'utilise pas d'architecture orientée services (bien que si c'est le cas, je serais surpris). La SOA concerne la manière dont les composants logiques composant la logique métier sont couplés. Si ce sont des choses faiblement couplées qui peuvent être changées et échangées pour différentes implémentations de fournisseurs, elles auront une SOA. S'il y a un couplage serré de sorte que les composants logiques ne peuvent pas être facilement séparés les uns des autres sans provoquer de ruptures majeures, ils ne le sont pas.S'ils ont la plupart de leur logique métier résidant dans les procédures de base de données, ils probablement n'ont pas de SOA, mais on ne sait jamais. Le reste de leur logique métier peut en effet suivre ce schéma.

+0

J'ai été trop dur sur l'évaluation de l'architecture à trois niveaux. Maintenant, je suis corrigé. Toute candidature pour laquelle UI-BL-Persistance est titulaire d'une place appropriée est admissible à une demande de trois pneus. S'il y a trop d'appels à la base de données, cela indique une mauvaise implémentation. Wrt SOA je suis d'accord qu'il n'y a pas assez d'informations disponibles. Toutes les réponses obtiennent mon vote et, en règle générale, je ne peux en sélectionner qu'une seule. –

Questions connexes