112 votes

Qu'est-ce que SOA "en clair"?

Quelqu'un peut m'expliquer en langage simple ce que SOA est tout au sujet? J'entends SOA ici, SOA là, mais je ne comprends pas exactement ce que c'est et ce qui est utilisé pour. Était-ce une concept simple et plus tard a évolué en quelque chose d'énorme ou quoi?

Tous les documents, y compris les wiki sont un peu abstrait, ou peut-être que je suis un idiot et ne pas l'obtenir. Est-il un idiot est sur ce guide?

Qu'est-ce exactement qu'il y a derrière ces trois lettres?

64voto

Norman Ramsey Points 115730

SOA est un nouveau badge pour certaines très vieilles idées:

  • Divisez votre code en modules réutilisables.

  • Encapsuler dans un module quelconque décision de conception qui est susceptible de changer.

  • La conception des modules de telle manière qu'ils peuvent être combinés de différentes façons utiles (parfois appelé une "famille" ou "ligne de produits").

Ce sont tous soubassement de développement de logiciels principes, beaucoup d'entre eux pour la première fois énoncé par David Parnas.

Ce qui est nouveau dans le SOA est

  • Vous êtes en train de faire sur un réseau.

  • Les Modules communiquent par envoi de messages les uns aux autres sur le réseau, plutôt que par les plus classiques de la programmation en langue des mécanismes comme des appels de procédure. En particulier, dans une architecture orientée service, les parties n'ont généralement pas de partager mutable état (variables globales dans un programme traditionnel). Ou s'ils le font part de l'état, que l'état est soigneusement enfermés dans une base de données qui est lui-même un agent et qui peut facilement gérer plusieurs clients en même temps.

49voto

KB22 Points 3697

Vous pouvez trouver cet article (qu'est-Ce que la SOA? - SOA et Services Web, a Expliqué ) utile.

Un petit teaser:

  • SOA est un style de conception d'applications de telle manière qu'ils sont composés de discrètes agents logiciels qui sont simples, bien définies interfaces et sont orchestrées par le biais d'un couplage lâche à accomplir une fonction requise.

  • Il y a 2 rôles dans SOA - un fournisseur de services à un consommateur de service. Un agent logiciel peut jouer les deux rôles. SOA n'est pas un concept entièrement nouveau – toutefois, cet article se concentre principalement sur les SOA mise en œuvre de services web.

43voto

Niklas Points 4927

Je vois beaucoup de réponses en expliquant une Architecture Orientée Service (SOA) en utilisant encore plus avancée de mots et de termes techniques. J'aimerais donner un coup à l'expliquer, pour le profane, à l'aide d'une analogie dans la plaine de l'anglais.

Mais d'abord, une description d'une architecture SOA
SOA peut être décrit en trois couches, comme dans l'image ci-dessous. D'un côté nous avons le Fournisseur et, de l'autre côté nous avons le Consommateur, séparés par un Pont où les deux côtés de communiquer.

Le consommateur utilise un certain nombre d' Applications nécessaires à son activité et le fournisseur utilise des Composants qui fournissent ces applications avec l'information. Ils communiquent à travers un ensemble de Services à l'aide d'une architecture commune.


enter image description here

L'analogie
Imaginez une maison à la campagne, que dans de nombreux égards, est partie d'une communauté plus large, comme une ville ou d'une ville. La ville a ses propres systèmes complexes pour fournir de l'eau et de l'électricité, de la manipulation de l'assainissement, de transport et d'autres services publics. La Maison est le consommateur, dans ce modèle, la Ville (ou la communauté) est le fournisseur et les canalisations, les égouts, les lignes électriques, fibres optiques, etc. est l' Infrastructure dans laquelle ils communiquent.

Ce modèle pourrait, en gros, être comparé à un SOA. Les personnes dans la maison utilise un certain nombre de "demandes" comme les radiateurs, les ordinateurs, les toilettes, les lampes, chauffage par le sol, de baignoire, etc. Ces applications ne se soucient pas comment la ville génère de l'eau, crée de l'électricité ou de poignées de déchets aussi longtemps que cela fonctionne. Les composants de la ville sont des générateurs, des pompes à eau et de l'assainissement des zones. Il fournit à la maison avec tous ces besoins, mais il est à la maison à l'utiliser dans ce que jamais comme il l'entend.

J'espère que cela a donné au moins quelqu'un a une meilleure image d'une SOA.

27voto

Enno Shioji Points 12298

Supposons que vous avez quatre cuisiniers. Dans SOA, vous supposer qu'ils se détestent les uns les autres, de sorte que vous vous efforcez de les laisser parler les uns aux autres aussi peu que possible.

Comment faites-vous cela? Eh bien, vous allez tout d'abord définir les rôles et interface -- cuire 1 va faire la salade, faire cuire 2 va faire de la soupe, cuire 3 fera le steak, etc.. Alors vous allez placer les plats bien organisé sur la table (ce sont donc ces interfaces) et de dire, "tout le monde s'il vous plaît passer votre création dans votre attribué plats. Ne se soucient pas de quelqu'un d'autre.".

De cette façon, les quatre cuisiniers ont à parler les uns aux autres aussi peu que possible, ce qui est très bon dans le développement de logiciels-et pas nécessairement parce qu'ils se haïssent les uns les autres, mais pour d'autres raisons comme l'emplacement physique, l'efficacité dans la prise de décisions.

Cela signifie également que vous pouvez recombiner les plats (services) que vous le souhaitez. Par exemple, vous pourriez utiliser le dessert au service d'un café, ou tout simplement prendre de la soupe et de la combiner avec du pain que vous avez acheté auprès d'une autre entreprise pour un meilleur menu, ou laisser les autres restaurants de l'utilisation de votre salades combiner avec leurs plats, etc.

Un des plus grands succès de la mise en œuvre de la SOA a été chez Amazon. En raison de leur conception, ils pourraient ré-emballage de l'ensemble de leurs infrastructures et de le vendre comme Amazon Web Service.

*Ce n'est qu'un aspect de la SOA.

17voto

ewernli Points 23180

SOA est une architecture de style, mais aussi une vision sur la façon hétérogène application doit être développée et intégrée. Le but principal de la SOA est de passer d' applications monolithiques et ont lieu un ensemble de services réutilisables qui peuvent être composés pour créer des applications.

À mon humble avis, SOA n'a de sens qu'au niveau de l'entreprise, et ne signifie rien pour une application unique.

Dans beaucoup d'entreprise, chaque ministère a son propre ensemble d'applications d'entreprise, ce qui impliquait

  1. Fonctionnalité similaire ont été mis en œuvre à plusieurs reprises

  2. Des données (par exemple, un client ou un employé de données) doivent être partagées entre plusieurs applications

  3. Les Applications ont été centrées sur les ministères.

Avec la SOA, l'idée est d'avoir des services réutilisables être mis à la disposition de l'entreprise à l'échelle, de sorte que la demande peut être construit et composé de. La promesse de la SOA sont

  1. Pas besoin de ré-écrire des caractéristiques similaires au cours et plus (par ex. fournir à un client ou un employé de service)

  2. Facilite l'intégration des applications et l'accès pour commun des données ou des fonctionnalités

  3. L'entreprise centrée sur le développement des efforts.

La SOA vision implique un technologique maj ainsi que d'une organisation maj. Alors qu'elle résout un problème, il a également introduit d'autres, par exemple la sécurité est beaucoup plus difficile avec SOA avec application monolithique. Par conséquent, la SOA est l'objet d'un débat à savoir si ça fonctionne ou pas.

C'est le 1000ft vue de la SOA. Toutefois, elle ne s'arrête pas là. Il y a d'autres concepts en complément SOA comme l'orchestration des processus d'affaires (BPM), enterprise service bus (ESB), le traitement des événements complexes (CEP), etc. Ils ont tous de s'attaquer au problème de IL/d'affaires de l'alignement, qui est, comment IL être en mesure de soutenir l'entreprise de manière efficace.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X