Interface utilisateur, couche logique métier, couche de données et où placer les services Web
Nous sommes le développement d'une application web. Nous voulons éventuellement réutiliser le travail que nous faisons ici pour une autre application qui va utiliser la même base de données, et d'utiliser les mêmes règles de gestion pour la lecture et l'écriture de ladite base de données.
Dont le design serait plus correct
- Avoir l'INTERFACE utilisateur d'appeler des services web, qui serait l'utilisation de business objects contenant la logique métier, qui parlait à la couche d'accès aux données.
- Ont de l'INTERFACE utilisateur sur l'utilisation des objets contenant la logique métier, ce qui permettrait d'appeler des services web, qui serait ensuite parler à la couche d'accès aux données.
- Avoir l'INTERFACE utilisateur de business objects contenant la logique métier, qui parlait à la couche d'accès aux données.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Ne pas mélanger la logique de conception avec la conception physique. Conception logique opère sur des couches physique et de la conception des niveaux. Service Web n'est pas une couche. C'est tout simplement un tier.
Dans la logique de la conception, il est standard approche: la couche d'INTERFACE utilisateur-> BL couche -> DAL
Dans la conception physique de toutes les couches peuvent résider dans une application côté client de la connexion de base de données locale, ou peut être répartie sur la télécommande niveaux. Mais pour les applications distribuées est habituellement ajouté une couche: la couche Application, qui cache de BL de la couche de communication sur le fil.
Je dirais que le 3ème. J'ai tendance à penser que les services web comme une autre couche de présentation.
Pensez-y de cette façon: vous disposez d'une INTERFACE web, qui appelle votre couche de code pour faire des choses comme la création d'un nouvel utilisateur (l'Utilisateur.Ajouter), de trouver tous les produits qui correspondent à la description donnée (les Produits.FindByDescription), etc.
Vous pouvez maintenant ré-utiliser cette même couche de code pour construire un ensemble de web destiné au public de services pour la 3ème parties à faire usage de. Il y a peut être une méthode qui ajoute un utilisateur qui appelle votre Utilisateur interne.Méthode Add (), un autre pour trouver des produits, etc..
Ce que vous obtenez est un ensemble parallèle de présentations/interfaces pour le même sous-jacent de données et la logique métier.
Coulisses (totalement hors de la portée des services web ou de l'INTERFACE utilisateur, couches, la couche de gestion des appels d'une couche d'accès aux données qui prend soin de physiquement l'interrogation de la base de données. Si vous deviez changer de SGBD, vous devriez idéalement (et en théorie) être en mesure de reconstruire la couche de données de la nouvelle base de données et ont tout simplement le travail.
Votre couche de gestion contient les règles comme un nom d'utilisateur doit être de 4 à 15 caractères; les utilisateurs ne sont autorisés à rechercher et charger les produits dans un magasin, ils ont accès à l'; etc.
Si vous décidez de modifier une règle d'entreprise - comme un utilisateur est autorisé à rechercher des produits dans n'importe quel magasin dans leur état, puis vous modifiez dans un seul endroit, et ne pas avoir à toucher le service web ou de l'INTERFACE utilisateur pour le faire fonctionner.
À partir de votre description, vous n'avez pas fourni une raison pourquoi vous avez besoin de l'utilisation d'un service web de la couche. En supposant que votre base de données est accessible par votre régime d'assurance-chômage, c'est à dire dans le même réseau derrière votre pare-feu, une base de l'entreprise-objet de la couche de votre site web code de l'INTERFACE utilisateur (côté serveur, je suppose) emploiera répond à vos exigences.
Apporter un service web de niveau lorsque la distance entre votre INTERFACE utilisateur système et de vos données de la couche commence à franchir les frontières que d'une couche d'accès aux Données ou de la couche logique Métier serait de commencer à rencontrer des difficultés.
En termes de la conception étant "bonne" ou pas, ce n'est pas vraiment possible de donner à 100% pour répondre à l'exactitude d'une conception sans le contexte. Quelles sont les exigences (fonctionnelles et non-fonctionnelles)? Quels objectifs souhaitez-vous atteindre? Quelle est l'importance de chaque objectif?
Le seul but de votre question mentionne, c'est que vous voulez réutiliser la logique d'affaires avec une autre application. Quand je veux réutiliser la logique métier d'une application dans un façon standard-je choisir de services web. Donc uniquement basé sur votre condition, je dirais que l'option 1 ( UI->Service Web->Couche->Data Layer ) est un bon choix.
Logiquement, web-services appartiennent à la couche d'INTERFACE utilisateur. Pensez à "l'Utilisateur" n'étant pas seulement un homme, mais un autre système, et il devient clair. Maintenir une stricte séparation des préoccupations entre ces couches logiques vous permettra de facilement mettre en place et maintenir votre application.
Découvrez: http://www.icemanind.com/layergen.aspx
La façon dont il est, vous avez votre couche d'INTERFACE utilisateur sur le dessus, votre couche de données sur le bas et votre couche de gestion dans l'entre-deux. Chaque couche ne peut communiquer avec le calque de dessous. Pour que l'INTERFACE utilisateur parle à la couche de seulement...la couche de gestion des pourparlers à la couche de données. Votre INTERFACE utilisateur ne devrait jamais parler avec la couche de données et de votre couche de données ne doit jamais interagir avec votre INTERFACE utilisateur.
À moins d'avoir une raison pour utiliser un service web, alors je ne voudrais pas.
Avez-vous entendu quelque chose à propos de la couche de Service ? Je pense que vous pouvez utiliser une couche de service pour vos transactions et opérations et à l'aide d'une façade calque vous permet d'isoler et de gérer l'accès à partir d'une INTERFACE utilisateur pour la couche d'accès aux données, directement ou indirectement, après la visite de la couche de gestion . cela dépend de vos exigences.