Quand utiliser SOA (architecture orientée services)
J'ai eu une conversation avec l'un de nos architectes récemment et il a résumé son utilisation de la SOA comme "La seule fois, nous allons utiliser les services, c'est quand nous avons besoin d'actions asynchrones sinon, nous allons utiliser aller directement à la banque de données"
J'ai pensé à cette déclaration, et il semble assez logique que les services fonctionnent bien dans un publier abonner modèle, mais je me demandais dans quels autres scénarios, vous devriez être à la recherche à utiliser la SOA?
source d'informationauteur lomaxx
Vous devez vous connecter pour publier un commentaire.
Nous exposer à des services à nos clients parce qu'ils ne devraient pas être en mesure de se connecter à la source de données directement.
Nous exposer à des services à nous-mêmes parce que c'est plus facile à étaler sur les différentes technologies utilisant WCF.
Nous exposer à des services parce que nous avons des interfaces utilisateur différentes pour la même source de données. Et lorsque nous utilisons les services de nous sauver d'un tiers de l'œuvre.
Il n'est jamais seulement à cause des actions asynchrones.
Un autre cas d'utilisation de services, c'est quand vous voulez intégrer un groupe hétérogène de la technologie de la pile.
En d'autres termes, si votre DB est postgres, mais vous avez le code en Java, Perl, Python et C++, vous pouvez écrire des procédures stockées et demandez à chaque langage de programmation d'appel de ceux-ci. Si vous travaillez avec une base de données qui n'ont pas stockées procs, ou si vous voulez avoir la possibilité de basculer les ou vous voulez juste pour s'exécuter sur le port 80, vous pouvez envelopper les appels SQL dans un souci de service de la couche (pensez websphere), qui peuvent maintenant être appelé par n'importe qui - de plus, vous pouvez mettre de l'authentification et de l'autorisation de la logique (se connecter au LDAP, peu importe) dans la couche SOA.
Vous pouvez également utiliser cette couche SOA, par exemple, de construire une logique de routine à faire des "trucs" avec ce vieil COBOL boîte dans le coin qui gère les factures ou crée des déclarations pour les clients.
Donc si vous avez un certain nombre de systèmes hérités vous souhaitez interconnecter - dire le système des ventes pour le système d'entreposage à l'ordre de la prédiction des systèmes SOA peut être un moyen pour atteindre cet objectif. (Vous pouvez également utiliser un "service de bus" pour créer un événement piloté par le système comme une meilleure façon d'orchestrer le changement.)
Juste moi talkin'.
Il existe de nombreux scénarios où vous auriez des avantages de l'utilisation des services. Certains de ces scénarios ont été codifiés par les gourous de l'industrie (tels que Thomas Erl de la SOA de la gloire).
SOAPatterns
Je dirais que vous souhaitez rechercher:
Votre collègue a raison d'être prudent. Il y a beaucoup de déploiement et de support variables introduites avec l'adoption des services web.
Un autre scénario pourrait être un scénario d'intégration, là où vous souhaitez qu'un grand nombre de composants ou de systèmes, de communiquer les uns avec les autres.
SOA peut être utilisé comme un moyen de masquer les détails de mise en œuvre de votre sous-systèmes. Si vos clients ont besoin d'informations sur le produit, par exemple, c'est probablement une bonne idée d'emballer votre produit ou de base de données d'inventaire du sous-système dans un service générique et exposer uniquement le sous-ensemble de fonctionnalités et de données de vos clients ont besoin. Alors, si jamais vous avez besoin de remplacer ou de mise à niveau de ce sous-système, vous serez en mesure de faire ces changements transparent pour vos utilisateurs et vous client en face de l'interface du logiciel.
Le point de SOA, que les Télécoms (à mon humble avis) ne semblent pas saisir comme une bouée de sauvetage, c'est que SOA activé systèmes vous permettent de prendre héritage tranchées et les technologies, et de les présenter comme une constante, contrôlée API qui permet à vos utilisateurs de l'entreprise de développer de nouveaux et encore de l'onu-pensée et des idées, sans avoir besoin de re-architecte du tout dans la société.
Par le fait d'avoir une langue unifiée (WSDL) de votre interface, vous pouvez préparer vos silos technologiques pour interagir. Par la mise en œuvre de la SOA maintenant, au lieu de faire des direct-to-data-source, vous faites automatiquement vos sources de données utilisables par les parties et les besoins de l'entreprise que vous avez jamais considéré.
WSDL est enfin Corba-qui-travaille.
WSDL et SOAP généralement souffrent du même problème CORBA et DCOM n': contrat de gestion des versions est un cauchemar. Ce n'est pas tant un problème dans le degnerate cas où vous avez le plein contrôle de tous les clients et les serveurs, mais c'est moche quand vous commencez à fédérer des systèmes, de plus en plus donc, quand vous allez inter-entreprise.
À ce point, vous êtes presque obligé à une sorte d'événement driven architecture approche au lieu de la typique SOAP-RPC modèle d'interactions. Ce n'est pas pour autant que l'aide de l'ESBs, mais voir les liens entre les entreprises, comme les connexions entre l'ESBs est très utile.
Même alors, en s'appuyant sur le SAVON de transport devient laid. Vous ne devez pas seulement à accueillir une interaction bidirectionnelle à l'aide opposition Web Services, vous êtes toujours stuch avec le problème de contrôle de version. Souvent, les méthodes SOAP dengerate au trivial wrappers autour de "blobs" défini autrement (séparée schémas XML par exemple).
Il y a des réponses, mais elles ne sont jamais simples. Les meilleures pratiques pour les services Web de gestion des versions discute un couple d'entre eux.
Mais SOA n'implique rien asynchrone à tous. C'est juste la façon intelligente de mettre en œuvre de la SOA. Les oss sont sur le couplage lâche. L'ACÉ sous-ensemble de l'Oss est à propos de couplage, qui va plus loin.
Il y a une autre école de réfléxion appelé SOAD (axées sur le Service à la Conception de l'Application) existe étaient de chaque composant du système est un service. C'est de tirer parti des avantages offerts par l'environnement qu'ils sont construits avec (EJB, WCF), à savoir que vous avez beaucoup de gratuit plomberie.
Peu plus de ressources sur ce à
La construction d'une architecture SOA
SOA Modèle de Conception
L'atteinte de l'intégrité dans une SOA
La réalisation, la Souplesse et la facilité de Maintenance dans une SOA
à intégrer les différentes technologies d'accéder aux mêmes ressources; pour atteindre un certain niveau de transactions à l'isolement sur ces différentes technologies, afin de conserver une logique d'entreprise écrit en un seul endroit (donc, il ne serait pas nigthtmares lors de cette logique, c'est d'être changé) ...
Je voudrais utiliser la SOA dans un système qui sera prolongée dans le temps à l'intérieur de l'organisation, et probablement à d'autres organisations.
Pour des produits qui pourraient changer est bien aussi, vous pouvez remplacer les petites pièces.
À la fin, vous aurez beaucoup de briques de lego qui vous permettra de regrouper les.