Session de la Façade, est un excellent modèle - c'est vraiment une version spécifique de l'Entreprise Façade modèle. L'idée est d'attacher les fonctionnalités de l'entreprise en faisceaux distincts - comme TransferMoney(), Retirer(), Dépôt()... de Sorte que votre code de l'INTERFACE utilisateur accède à des choses en termes d'activités au lieu de faible niveau d'accès aux données ou d'autres détails qu'il ne devrait pas être concerné.
Spécifiquement à la Session de Façade - vous utiliser une Session EJB pour agir en tant que l'entreprise façade - ce qui est bien la cause, alors vous pouvez prendre avantage de tous les J2EE services (authentification, autorisation, transactions, etc)...
Le principal avantage de la Session de Façade modèle est que vous pouvez diviser une application J2EE en groupes logiques par les fonctionnalités de l'entreprise. Une Session de Façade sera appelé par un POJO à partir de l'INTERFACE utilisateur (c'est à dire une Entreprise de son Délégué), et des références à un Accès approprié aux Données des Objets. E. g. un PersonSessionFacade serait appelé par le PersonBusinessDelegate et puis il pouvait appeler le PersonDAO. Les méthodes sur la PersonSessionFacade sera, à tout le moins, de suivre le modèle CRUD (Create, Retrieve, Update et Delete).
Généralement, la plupart Session Façades sont mises en œuvre comme les Ejb session sans état. Ou, si vous êtes de Printemps de la terre à l'aide de l'AOP pour les transactions, vous pouvez créer un service de POJO ce qui peut être tout le rejoindre des points pour votre gestionnaire de transactions.
Un autre avantage de la SessionFacade modèle est que tout développeur J2EE avec un minimum d'expérience, vont immédiatement vous comprendre.
Les inconvénients de la SessionFacade motif: il suppose un travail spécifique de l'architecture d'entreprise qui est contraint par les limites de la spécification J2EE 1.4 (voir Rod Johnson livres pour ces critiques). La plupart d'endommager l'inconvénient est que c'est plus compliqué que nécessaire. Dans la plupart des entreprise web applications, vous aurez besoin d'un conteneur de servlet, et la plupart de la contrainte dans une application web sera au niveau des poignées HttpRequests ou accès de base de données. Par conséquent, il ne semble pas utile de déployer le conteneur de servlet dans un processus distinct de l'espace du conteneur d'EJB. I. e. des appels à distance Ejb créer plus de douleur que d'en gagner.
Rod Johnson prétend que la principale raison pour laquelle vous voulez utiliser une Session de Façade est que si vous êtes en train de faire gérée par le conteneur des transactions qui ne sont pas nécessaires avec les plus modernes de cadres (comme le Printemps.)
Il dit que si vous avez des affaires à la logique de le mettre dans le POJO. (Je suis d'accord avec - je pense que ses une plus approche orientée objet - plutôt que de mettre en place une session EJB.) http://forum.springframework.org/showthread.php?t=18155
Il semble que chaque fois que vous parlez de quelque chose J2EE connexes - il y a toujours tout un tas d'hypothèses derrière les coulisses - qui les gens pensent d'une façon ou de l'autre, ce qui conduit alors à la confusion. (J'aurais probablement pu rendre la question plus claire aussi.)
En supposant que (a) nous voulons utiliser gérée par le conteneur des transactions au sens strict, par le biais de la spécification EJB puis
Session façades sont une bonne idée, parce qu'ils abstraction du faible niveau de transactions de base de données pour être en mesure d'assurer un haut niveau de l'application de gestion des transactions.
En supposant que (b) que vous voulez dire le général concept architectural de la session de façade - alors
Découplage des services et des consommateurs, et de fournir une interface conviviale sur le dessus de cela est une bonne idée. L'informatique a permis de résoudre beaucoup de problèmes par "ajouter une couche supplémentaire d'indirection de'.
Rod Johnson écrit "SLSBs avec interface de commande à distance fournissent une très bonne solution pour les applications distribuées construit sur RMI. Cependant, c'est une minorité exigence. L'expérience a montré que nous ne voulons pas utiliser de l'architecture distribuée moins d'y être forcé par les exigences. On peut encore le service clients à distance, si nécessaire, par la mise en œuvre d'un accès distant de façade sur le haut d'une bonne co-situé au modèle d'objet." (Johnson, R "Développement J2EE sans EJB" p119.)
En supposant que (c) de prendre en considération la spécification EJB (et en particulier la session de la façade de la composante) pour être un fléau sur le paysage de la bonne conception:
Rod Johnson écrit
"En général, il n'y a pas beaucoup de raisons de l'utilisation d'un local SLSB à tous, le Printemps de l'application, alors que le Printemps donne plus capable déclarative, la gestion des transactions que EJB, et CMT est normalement la principale motivation pour l'utilisation de locaux de SLSBs. Donc, vous ne pourriez pas besoin de th EJB de la couche. "http://forum.springframework.org/showthread.php?t=18155
Dans un environnement où la performance et l'évolutivité du serveur web sont des préoccupations de premier - et le coût est un problème, alors la session de la façade de l'architecture ressemble de moins en moins attractif, il peut être plus simple de s'adresser directement à la datbase (même si c'est plus sur la hiérarchisation.)
Session de la Façade, est un excellent modèle - c'est vraiment une version spécifique de l'Entreprise Façade modèle. L'idée est d'attacher les fonctionnalités de l'entreprise en faisceaux distincts - comme TransferMoney(), Retirer(), Dépôt()... de Sorte que votre code de l'INTERFACE utilisateur accède à des choses en termes d'activités au lieu de faible niveau d'accès aux données ou d'autres détails qu'il ne devrait pas être concerné.
Spécifiquement à la Session de Façade - vous utiliser une Session EJB pour agir en tant que l'entreprise façade - ce qui est bien la cause, alors vous pouvez prendre avantage de tous les J2EE services (authentification, autorisation, transactions, etc)...
Espère que ça aide...
OriginalL'auteur user13276
Le principal avantage de la Session de Façade modèle est que vous pouvez diviser une application J2EE en groupes logiques par les fonctionnalités de l'entreprise. Une Session de Façade sera appelé par un POJO à partir de l'INTERFACE utilisateur (c'est à dire une Entreprise de son Délégué), et des références à un Accès approprié aux Données des Objets. E. g. un PersonSessionFacade serait appelé par le PersonBusinessDelegate et puis il pouvait appeler le PersonDAO. Les méthodes sur la PersonSessionFacade sera, à tout le moins, de suivre le modèle CRUD (Create, Retrieve, Update et Delete).
Généralement, la plupart Session Façades sont mises en œuvre comme les Ejb session sans état. Ou, si vous êtes de Printemps de la terre à l'aide de l'AOP pour les transactions, vous pouvez créer un service de POJO ce qui peut être tout le rejoindre des points pour votre gestionnaire de transactions.
Un autre avantage de la SessionFacade modèle est que tout développeur J2EE avec un minimum d'expérience, vont immédiatement vous comprendre.
Les inconvénients de la SessionFacade motif: il suppose un travail spécifique de l'architecture d'entreprise qui est contraint par les limites de la spécification J2EE 1.4 (voir Rod Johnson livres pour ces critiques). La plupart d'endommager l'inconvénient est que c'est plus compliqué que nécessaire. Dans la plupart des entreprise web applications, vous aurez besoin d'un conteneur de servlet, et la plupart de la contrainte dans une application web sera au niveau des poignées HttpRequests ou accès de base de données. Par conséquent, il ne semble pas utile de déployer le conteneur de servlet dans un processus distinct de l'espace du conteneur d'EJB. I. e. des appels à distance Ejb créer plus de douleur que d'en gagner.
OriginalL'auteur Alan
Rod Johnson prétend que la principale raison pour laquelle vous voulez utiliser une Session de Façade est que si vous êtes en train de faire gérée par le conteneur des transactions qui ne sont pas nécessaires avec les plus modernes de cadres (comme le Printemps.)
Il dit que si vous avez des affaires à la logique de le mettre dans le POJO. (Je suis d'accord avec - je pense que ses une plus approche orientée objet - plutôt que de mettre en place une session EJB.)
http://forum.springframework.org/showthread.php?t=18155
Heureux d'entendre contrastées arguments.
OriginalL'auteur hawkeye
Il semble que chaque fois que vous parlez de quelque chose J2EE connexes - il y a toujours tout un tas d'hypothèses derrière les coulisses - qui les gens pensent d'une façon ou de l'autre, ce qui conduit alors à la confusion. (J'aurais probablement pu rendre la question plus claire aussi.)
En supposant que (a) nous voulons utiliser gérée par le conteneur des transactions au sens strict, par le biais de la spécification EJB puis
Session façades sont une bonne idée, parce qu'ils abstraction du faible niveau de transactions de base de données pour être en mesure d'assurer un haut niveau de l'application de gestion des transactions.
En supposant que (b) que vous voulez dire le général concept architectural de la session de façade - alors
Découplage des services et des consommateurs, et de fournir une interface conviviale sur le dessus de cela est une bonne idée. L'informatique a permis de résoudre beaucoup de problèmes par "ajouter une couche supplémentaire d'indirection de'.
Rod Johnson écrit "SLSBs avec interface de commande à distance fournissent une très bonne solution pour les applications distribuées construit sur RMI. Cependant, c'est une minorité exigence. L'expérience a montré que nous ne voulons pas utiliser de l'architecture distribuée moins d'y être forcé par les exigences. On peut encore le service clients à distance, si nécessaire, par la mise en œuvre d'un accès distant de façade sur le haut d'une bonne co-situé au modèle d'objet." (Johnson, R "Développement J2EE sans EJB" p119.)
En supposant que (c) de prendre en considération la spécification EJB (et en particulier la session de la façade de la composante) pour être un fléau sur le paysage de la bonne conception:
Rod Johnson écrit
"En général, il n'y a pas beaucoup de raisons de l'utilisation d'un local SLSB à tous, le Printemps de l'application, alors que le Printemps donne plus capable déclarative, la gestion des transactions que EJB, et CMT est normalement la principale motivation pour l'utilisation de locaux de SLSBs. Donc, vous ne pourriez pas besoin de th EJB de la couche. "http://forum.springframework.org/showthread.php?t=18155
Dans un environnement où la performance et l'évolutivité du serveur web sont des préoccupations de premier - et le coût est un problème, alors la session de la façade de l'architecture ressemble de moins en moins attractif, il peut être plus simple de s'adresser directement à la datbase (même si c'est plus sur la hiérarchisation.)
OriginalL'auteur hawkeye