158 votes

JSON, REST, SOAP, WSDL et SOA: comment relient-ils tous ces liens?

Actuellement en train de faire certains examens, et je suis en difficulté par le biais de certains concepts. Ils ont tous été "évoqué" dans mes notes, vraiment, mais je ne comprenais pas vraiment comment ils sont tous liés ensemble. Aussi loin que ma compréhension est:

SOA - une solution pour rendre le service consommateurs/fournisseurs de communiquer. (comme je le comprends c'est le terme générique pour tout le reste)

WSDL - UN langage qui décrit le fournisseur de service.

SAVON - UN protocole XML 'wrapper' utilisé par les services pour envoyer des messages. Fonctionne en conjonction avec WSDL que de fournir des paramètres?

RESTE - UN modèle de conception est semblable à du SAVON dans une fonction, mais évite le fichier XML? (vraiment pas sûr à ce sujet)

JSON - Une alternative à XML qui utilise du javascript? (ce n'est pas sûr non plus)

La recherche autour de l'internet, il ne semble pas être une définition claire de ce que sont et comment ils s'articulent.

257voto

Anirudh Ramanathan Points 25113

Imaginez que vous êtes l'élaboration d'une application web et que vous décidez de découpler les fonctionnalités de la présentation de la demande, car il permet une plus grande liberté.

Vous créer une API et de laisser les autres de mettre en œuvre leur propre front-end sur elle ainsi. Ce que vous venez de faire ici est de mettre en œuvre une architecture SOA de la méthodologie, c'est à dire l'utilisation de web services.

Web services fonctionnels de construction-blocs accessible au-dessus de la norme Les protocoles de l'Internet indépendant des plates-formes et des langages de programmation.

Donc, vous concevez un mécanisme d'échange entre le back-end (web service) qui ne le traitement et la génération de quelque chose d'utile, et le front-end (ce qui consomme de la data), qui pourrait être n'importe quoi. (Web, mobile, ou une application de bureau, ou d'une autre web-service). La seule limitation est que le front-end et back-end doit "parler" le même "langage".


C'est là que SOAP et REST venir. Ils sont de façon standard vous choisirez de communiquer avec le service web.

SAVON:

SAVON à l'interne utilise le langage XML pour échanger des données. Les messages SOAP ont une structure rigide et de la réponse XML doit ensuite être analysées. WSDL est une spécification de ce que les demandes peuvent être faites, avec les paramètres, et ce qu'ils seront de retour. C'est une spécification complète de votre API.

RESTE:

Le REPOS est un concept de design.

Le World Wide Web est le plus grand de la mise en œuvre d'un système de conforme au RESTE de style architectural.

Il n'est pas aussi rigide que du SAVON. RESTful web services standard, d'Uri et des méthodes pour effectuer des appels vers le service web. Lorsque vous demandez un URI, il renvoie à la représentation d'un objet, que vous pouvez ensuite effectuer des opérations (par exemple, GET, PUT, POST, DELETE). Vous n'êtes pas limité à la cueillette XML pour représenter les données, vous pouvez choisir quelque chose de vraiment JSON (inclus)

Flickr API REST va plus loin et vous permet de renvoyer les images.


JSON et XML, sont fonctionnellement équivalents, et l'un ou l'autre pourrait être choisi. XML est considéré comme étant trop verbeux, et plus difficile à analyser, de sorte que beaucoup une fois, les données sont plus représentés de manière adéquate à l'aide de JSON. (E. g. la sérialisation)

C'est un choix tout de même.

31voto

Saman Gholami Points 979

WSDL : Web Service Description Language lorsque vous utilisez le service web et l'ajout d'un service web à votre projet, votre client ne sait pas à propos de web des Fonctions de service. le fichier WSDL a quelques descriptions sur les services web et etc. et le type de ce fichier est XML.

SOA : Service Oriented Architecture inclure l'ensemble de la programmation avec les services web les concepts et l'architecture.

JSON : lorsque vous sérialiser un objet javascript pour le type d'objet est le format JSON. imaginez que vous avez l'humain classe :

class Human{
 string Name;
 string Family;
 int Age;
}

et si vous avez des instances de cette classe :

Human h1 = new Human(){
  Name='Saman',
  Family='Gholami',
  Age=22
}

lors de la sérialisation de l'h1 objet JSON le résultat est :

  [h1:{Name:'saman',Family:'Gholami',Age:'22'}, ...]

javascript peut évaluer ce format en fonction eval() et de faire un tableau associatif de cette chaîne JSON.

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