Contacts

Services Web XML. Examiner la technologie. Quels sont les services Web et pourquoi ils sont importants

service Web, service Web (Eng. Service Web) - identifié par le système logiciel d'adresse Web avec des interfaces normalisées.

Les services Web peuvent interagir entre eux et applications tierces À travers des messages basés sur des protocoles spécifiques \u003d

  • XML-RPC.
  • etc.

Le service Web est une unité de modularité lors de l'utilisation de l'architecture d'application axée sur les services.

Dans la vie quotidienne, les services Web sont appelés services rendus sur Internet.
Dans cette consommation, le terme nécessite des éclaircissementsQue ce soit sur la recherche, le Webmail, le stockage de documents, fichiers, signets, etc.
Ces services Web peuvent être utilisés indépendamment de l'accès à Internet, de l'ordinateur ou du navigateur.

Architecture

Comme indiqué sur la figure, vous pouvez distinguer trois instances qui interagissent dans le service Web. Nous traduisons leurs noms en tant que client, interprète et annuaire (demandeur de service, prestataire de services et courtier de service).

Lorsque le service est conçu, l'entrepreneur l'enregistre dans le catalogue où les clients potentiels peuvent le trouver. Le client, trouver le service approprié dans l'annuaire, importe sa spécification WSDL et développe son logiciel en fonction de celui-ci. WSDL décrit le format des demandes et des réponses échangées par le client et l'entrepreneur pendant le travail.. Les normes suivantes sont utilisées pour assurer l'interaction:

  • Langue de balisage extensible pour stocker et transférer des données structurées;
  • Messagerie sur la base de données XML;
  • : Description Langue interfaces externes Services Web XML;
  • Interface de reconnaissance universelle, descriptions et intégration (découverte universelle, description et intégration).

Répertoire des services Web et des informations sur les entreprises fournissant des services Web à une utilisation universelle ou à des entreprises spécifiques. Bien que UDDI existe, cependant, uniquement dans les petits réseaux de marque et n'a pas encore trouvé très répandu Ouvrir en ligne.

Méthodes de développement

Il existe des moyens d'automatisation du développement des services Web, séparés en deux groupes principaux.

Lorsque vous développez à partir de la baisse, la mise en œuvre des classes de mise en œuvre est écrite et le service de documentation des fichiers WSDL est généré à partir de leur texte source. L'inconvénient de cette méthode est l'exposition aux classes Java changements fréquents. Lorsque vous approchez-vous de haut en bas, WSDL est préparé d'abord et un squelette de classe Java en est généré, en mettant en œuvre le service. Ce chemin est considéré comme plus difficile, mais conduit à des décisions plus propres et de meilleures décisions protégées des modifications. Bien que le format des messages communiquant avec lesquels le client et l'artiste ne changent pas, les modifications de chacun d'eux ne violent pas l'interaction. Cette technique est parfois appelée "contrat d'abord", car le point de départ est WSDL ("contrat" \u200b\u200bentre le client et l'artiste interprète).

Dignité

  1. Services Web fournissent interaction systèmes logiciels Indépendamment de la plate-forme. Par exemple, Windows-C # -Clent peut communiquer avec un serveur Java sous Linux.
  2. Les services Web sont basés sur des normes ouvertes et des protocoles. Merci utilisation XML facile à développer et à déboguer des services Web est atteint.
  3. Utiliser le protocole Internet fournit Interaction http des systèmes logiciels via un pare-feu. C'est un avantage significatif par rapport à la technologie telle que Corba, DCOM ou Java RMI. D'autre part, service Web non lié à http - d'autres protocoles peuvent être utilisés -.

désavantages

  1. Peu de performances et de trafic réseau plus importantpar rapport aux technologies DCOM RMI, Corba, en utilisant des messages XML texte. Cependant, sur certains serveurs Web, il est possible de configurer la compression de trafic réseau.
  2. Aspects de la sécurité. Les services Web responsables doivent utiliser le codage, il est possible de nécessiter une authentification de l'utilisateur. Est HTTPS ou des solutions telles que la signature XML, le cryptage XML ou SAML sont préférées ici, que le développeur soit résolu.

Exemples

Exigences entre les compagnies aériennes et les agences de voyages. Le premier est fourni par des informations utiles sur les services Web que la seconde est utilisée lors de la recherche d'offres optimales à leurs clients.

Google de 2002 à 2009 a fourni un service Web qui a permis aux clients de rechercher information nécessaire Sur Internet tout comme les utilisateurs ordinaires. Pour plus de commodité, il est incomparablement, par exemple, avec une analyse automatique des pages Google HTML-Texte.

Amazon.com a un service Web fournissant divers services Web (quelque chose "comme service" - Technologies de cloud)

Le topic en-tête est vraiment une question, car Je ne sais moi-même pas ce que j'essaie d'abord de travailler avec cela dans cet article. La seule chose que je peux garantir que le code soumis ci-dessous fonctionnera, mais mes phrases ne seraient que des hypothèses et des suppositions sur la façon dont je comprends moi-même tout cela. Alors allons-y ...

introduction

Il est nécessaire de commencer avec le fait que le concept de services Web a été créé. Au moment de ce concept, il y avait déjà des technologies qui permettent aux applications d'interagir à distance, où un programme pourrait entraîner une méthode dans un autre programme, qui pourrait être lancée sur un ordinateur situé dans une autre ville ou même au pays. Tout cela est abrégé appelé RPC (appel de procédure à distance - appel de la procédure à distance). Les technologies de Corba peuvent être apportées en tant qu'ex exemples et pour Java - RMI (méthode à distance invoquant - méthodes d'appel à distance). Et tout semble être bien en eux, surtout à Corba, parce que Vous pouvez travailler avec elle dans n'importe quel langage de programmation, mais quelque chose manquait toujours. Je crois que le Minus Corba est que cela fonctionne par certains de leurs protocoles réseau Au lieu d'un simple http, qui va briser n'importe quel pare-feu. L'idée du service Web était de créer un tel RPC, qui sera lancée dans des packages HTTP. Ainsi a commencé le développement de la norme. Quels sont les concepts de base de cette norme:
  1. SAVON.. Avant d'appeler une procédure distante, vous devez décrire cet appel à Fichier XML.e Savon de format. Le savon n'est que l'un des nombreux marquages \u200b\u200bXML, utilisés dans les services Web. Tout ce que nous voulons envoyer quelque part à l'aide de HTTP, vous tourez d'abord en une description XML du savon, puis enveloppé dans le package HTTP et est envoyé à un autre ordinateur sur le réseau TCP / IP.
  2. WSDL. Il y a un service Web, c'est-à-dire Le programme dont les méthodes peuvent être appelées à distance. Mais la norme nécessite qu'une description soit apportée à ce programme, qui stipule que "Oui, vous ne vous trompez pas - c'est vraiment un service Web et vous pouvez causer de telles méthodes." Une telle description semble un autre fichier XML qui a un autre format, nommément WSDL. Ceux. WSDL est juste un fichier de description de service Web XML et rien de plus.
Pourquoi demandez-vous si brièvement? Et plus en détail, il est impossible? C'est probablement possible, mais pour cela, vous devrez contacter de tels livres tels que Masnin T. "Java Web Services". Là pour les 200 premières pages vont description détaillée Chaque étiquette de standards SOAP et WSDL. Vaut-il la peine de le faire? À mon avis, il n'y a pas, parce que Tout cela est créé sur Java automatiquement et il vous suffit d'écrire le contenu des méthodes supposées être supprimées. Donc, en Java, une telle API est apparue comme Jax-RPC. Si quelqu'un sait quand ils disent que Java a une telle API, cela signifie qu'il existe un paquet avec un ensemble de classes qui encapsulent la technologie en question. JAX-RPC a développé une longue période à partir de la version à la version et est finalement transformée en JAX-WS. WS, évidemment, signifie WebService et pourrait penser qu'il s'agit d'un simple RPC renommant au mot populaire. Ce n'est pas comme ça parce que Maintenant, les services Web sont éloignés de l'idée initiale et vous permettent de ne pas appeler simplement des méthodes distantes, mais aussi d'envoyer des messages au format SOAP. Pourquoi en ai-je besoin, je ne sais pas encore, il est peu probable que la réponse ici soit "au cas où il aura soudainement besoin." Je voudrais moi-même apprendre des camarades plus expérimentés. Eh bien, le dernier, puis il restait encore Jax-R pour les services Web dites reposants, mais c'est le sujet d'un article séparé. Cette introduction peut être complétée, car Ensuite, nous apprendrons à travailler avec JAX-WS.

Approche générale

Services Web Il y a toujours un client et un serveur. Le serveur est notre service Web et parfois il s'appelle terminal de fin (tel que le point final, où les messages SOAP proviennent du client). Nous devons faire ce qui suit:
  1. Décrivez l'interface de notre service Web
  2. Mettre en œuvre cette interface
  3. Exécuter notre service Web
  4. Écrivez un client et appelez à distance la méthode de service Web souhaitée
L'exécution du service Web peut être faite différentes façons: Décrivez la classe avec la méthode principale et lancez le service Web directement sous forme de serveur, ou de l'avoir sur le serveur Tomcat Type ou tout autre. Dans le second cas, nous n'avons-nous pas de nouveau serveur et n'ouvre pas un autre port de l'ordinateur et ne parlons simplement pas au conteneur de servlet Tomcat, que "nous avons écrit ici les classes du service Web, les publient, s'il vous plaît, à Tous ceux qui vous appellent, notre service Web pourrait-il utiliser. En indépendance de la méthode de lancement d'un service Web, le client aura le même client.

Serveur

Démarrer l'idée et créer un nouveau projet Créer un nouveau projet. Nous spécifions le nom Hellowebservice. Et cliquez sur le bouton Suivant, Bouton suivant TERMINER.. Dans le dossier src Créer un paquet ru.javarush.ws.. Dans ce forfait, créez une interface HellowebService: Package ru. Javarush. WS; // c'est annotations, c'est-à-dire façon de célébrer nos cours et nos méthodes // comme apparenté à la technologie de service Web Importer Javax. JWS. Webmethod; Importer Javax. JWS. Service Web; Importer Javax. JWS. SAVON. SOAPTBINDING; // Nous disons que notre interface fonctionnera comme service Web @Service Web. // Nous disons que le service Web sera utilisé pour appeler des méthodes @Soapbinding (style \u003d soaginage. Style. RPC) Interface publique HellowerService ( // nous disons que cette méthode peut être appelée à distance @WebMethod String Public String gethellostring (nom de cordes); ) Dans ce code, les classes de WebService et Webmethod sont les soi-disant annotations et ne font que lorsque nous marquons notre interface et sa méthode en tant que service Web. La même chose s'applique à la classe de savon. La seule différence est que la soja est un résumé avec des paramètres. Dans ce cas, le paramètre Style est utilisé avec une valeur que les intervenants que le service Web ne fonctionnera pas via des documents, mais comme un RPC classique, c'est-à-dire Appeler la méthode. Implémentons la logique de notre interface et créons une classe HelloweebServiceImpl dans notre package. En passant, je note que la fin de la classe sur implication est un accord de Java, selon lequel signifie implémenter des interfaces (IPL - à partir de la mise en œuvre de mot, c'est-à-dire la mise en œuvre). Ce n'est pas une exigence et vous êtes libre d'appeler la classe comme vous le souhaitez, mais les règles du bon ton nécessitent: Package RU. Javarush. WS; // le même résumé, comme lors de la description de l'interface, Importer Javax. JWS. Service Web; // mais ici est utilisé avec le paramètre EndpointInterface, // indiquant le nom complet de la classe d'interface de notre service Web @Webservice (EndpointInterface \u003d "ru.javarush.ws.hotherebservice") Classe publique HelloweFserviceImpl Implémente HelloweService (@Override publique String gethellostring (nom de cordes) ( // retourne juste des salutations Retourner "bonjour," + nom + "!" ; )) Démarrons notre service Web en tant que serveur indépendant, c'est-à-dire Sans la participation de tous les serveurs Tomcat et d'applications (c'est le sujet d'une conversation séparée). Pour ce faire, dans la structure du projet dans le dossier src Créez un paquet de ru.javarush.endpoint, et nous créerons une classe HelloweebservicePublisher avec la méthode principale: Package RU. Javarush. point final; // classe, pour démarrer un serveur Web avec des services Web Importer Javax. Xml. WS. Point final; // classe de notre service Web Importer ru. Javarush. WS. HelloweebserviceImpl; Classe publique HelloweServicePublisher (Public standing vide Main (String .. args) ( // Exécutez un serveur Web au port 1986 // et à l'adresse indiquée dans le premier argument, // exécuter un service Web transmis dans le deuxième argument Point final. Publier ( "http: // localhost: 1986 / WSS / Hello", New HellogeeSserviceImpl ()); )) Commençons maintenant cette classe en cliquant sur Maj + f10.. Dans la console, rien n'apparaîtra, mais le serveur est en cours d'exécution. Ceci peut être vu dans le navigateur dans le navigateur http: // localhost: 1986 / WSS / Hello? WSDL. La page qui s'est ouverte, d'une part, prouve que nous avons un serveur Web (http: //) sur le port de 1986 et, d'autre part, il affiche la description de la WSDL de notre service Web. Si vous arrêtez l'application, la description sera indisponible, comme le service Web lui-même, afin que nous ne le ferons pas, mais nous allons passer à la rédaction du client.

Client

Dans le dossier de projet src Créez un paquet de ru.javarush.client, et de la classe HellowebServiceclient avec la méthode principale: Package RU. Javarush. Client; // besoin d'obtenir une description WSDL et à travers elle // Atteignez le service de service le plus Importer Java. RAPPORTER. URL; // une telle expecne se produira lorsque vous travaillez avec l'objet URL Importer Java. RAPPORTER. Malformedurlexception; // CLASSES POUR RESISTER XML-KU avec la description de la WSDL // et atteindre l'étiquette de service dedans Importer Javax. Xml. Espace de noms. Qname; Importer Javax. Xml. WS. Un service; // Interface de notre service Web (nous avons besoin de plus) Importer ru. Javarush. WS. Helloweebservice; Classe publique HelloweBserviceclient (chaîne statique vide (String args) jette malformedurlexception ( // Créer un lien vers la description WSDL URL URL \u003d nouvelle URL ( "http: // localhost: 1986 / WSS / Hello? WSDL") ; // Les paramètres de concepteurs suivants consultent la première étiquette de description WSDL - Définitions // 1er argument Voir l'attribut cibleNamespace // 2e argument Nous regardons l'attribut Nom Qname qname \u003d nouveau QName ("http://ws.javarush.ru/", "hellogeeqserviceimplservice"); // Maintenant, nous pouvons accéder à la balise de service dans la description de la WSDL, Service de service. \u003d Service. Créer (URL, QName); // Suite à la balise de port investi dans elle à // Obtenir un lien vers un service Web éloigné de nous Hellobservice hello \u003d service. Getport (hellowebservice. Classe); // horray! Maintenant tu peux appeler méthode à distance Système. En dehors. Println (bonjour. Gethellostring ("Javarush")); )) J'ai donné le maximum de commentaires sur le code dans la liste. Je n'ai rien à ajouter, alors je cours (Shift + F10). Nous devons voir le texte: Bonjour, Javarush! Si vous n'avez pas vu, alors avez apparemment oublié de démarrer le service Web.

Conclusion

Dans ce sujet a été présenté excursion courte dans les services Web. Encore une fois, je dirai qu'une grande partie de ce que j'ai écrit, c'est de mes suppositions sur la façon dont cela fonctionne et que je ne devrais donc pas faire confiance beaucoup. Je serai reconnaissant si les gens compétents me corrigeront, parce que j'apprendrai quelque chose. UPD.

Annotation: Zones d'utilisation. Avantages. Caractéristiques du développement de services Web pour plateforme.net. Description et détection de service Web

Quel est le service Web XML?

Comme les technologies de l'information développent, différentes approches des programmes d'écriture: modulaires programmation, axé sur les événements programmation, axé sur les composants programmation et conception. La poursuite logique de ces approches est devenue axée sur le service développement de logiciels.

L'utilisation d'approches axées sur les services nous permet de parler de réutilisation (réutilisation) sur le niveau macro (niveau de service), contrairement au micro-niveau (niveau d'objet). Une approche axée sur les services implique l'utilisation de normes simples et généralement acceptées, ce qui permet aux applications les plus différentes d'utiliser la fonctionnalité de chacun. Les services peuvent être écrits en utilisant une variété de langages de programmation sur diverses plateformes. De plus, les services peuvent être déployés séparément ou dans le package logiciel à tout moment du globe et fourniront ainsi un accès à leur fonctionnalité de réseau.

Nom service (service) Ressource Mise en œuvre d'une fonction d'entreprise et possédant les propriétés suivantes:

  • est réutilisé;
  • déterminé par une ou plusieurs interfaces explicites technologiquement indépendantes;
  • faiblement associé à d'autres ressources similaires et peut être causée par des protocoles de communication, offrant la possibilité d'interaction entre les ressources entre eux.

Un cas particulier du service est XML Web -Service.

Service Web XML - Ceci est un type particulier d'offre Web, qui:

  • déployé sur un serveur Web;
  • publier des méthodes Web pouvant être causées par des clients externes;
  • attend la réception des demandes HTTP qui sont des commandements des défis des méthodes Web;
  • effectue des méthodes Web et renvoie les résultats.

Contrairement au site Web traditionnel, Web -service n'a aucune interface utilisateur. Au lieu de cela, il possède une interface logicielle, c'est-à-dire Web -service fournit des fonctions (méthodes Web) pouvant être causées à distance (par exemple, sur Internet). Web -service n'est pas destiné à servir les utilisateurs finaux. Sa tâche est de fournir des services à d'autres applications, qu'il s'agisse d'expression Web, d'applications avec graphique interface utilisateur ou des applications de console.

Web -Service peut fournir des informations en temps réel sur les cours de promotion, vérifier les cartes de crédit ou signaler les prévisions météorologiques. Les services Web sont aussi divers que des applications ordinaires.

Web -Service n'est pas la propriété d'une entreprise particulière. Il s'agit d'une norme industrielle basée sur des protocoles ouverts (savon, http, etc.). Web -service est déployé sur différentes plates-formes (y compris sur les serveurs exécutant Windows ou UNIX). Web -service peut être développé en utilisant de nombreux outils de développement (à partir de éditeur de texte Avant la famille Microsoft Visual Studio).

Les méthodes de la plupart des services de service Web sont appelées les enregistrements HTTP contenant des messages SOAP SOAP - Il s'agit de la langue XML (VOCABULAIRE XML) pour appeler des procédures à distance pour HTTP et d'autres protocoles ( description complète Savon http://www.w3.org/tr/soap).

Place de service Web parmi d'autres technologies de l'appel à distance

Il existe de nombreux protocoles et technologies d'appel à distance: Modèle d'objet composant distribué Microsoft (DCOM), l'architecture de courtier d'objet de gestion d'objet (Corba), l'invocation de la méthode à distance du soleil (RMI) ,. Remotage net, Services Web XML.

Toutes ces technologies axées sur les composants (DCOM, Corba et RMI) ont été utilisées avec succès dans les applications intranet. Ils fournissent une architecture fiable et évolutive. Cependant, lors de l'utilisation de ces technologies, deux problèmes graves surviennent sur Internet. Premièrement, ils interagissent mal les uns avec les autres. Toutes les technologies fonctionnent avec des objets, mais diffèrent considérablement en détail: la gestion du cycle de vie, le soutien des concepteurs et le degré de soutien de l'héritage. Le second, plus aspect important C'est que l'orientation sur l'interaction RPC conduit à la construction de systèmes fortement connectés basés sur des appels évidents de méthodes d'objet.

Contrairement à ces technologies, XML Web Services et. Remotage net complètement implémenter approche orientée objet Pour la programmation Web.

Service Web XML. - Composant fournissant Internet -Clients défini d'API ou de méthodes Web. XML est inclus dans le nom, car Web -services et leurs clients l'utilisent pour échanger des données. Sur la base du service Web sont des normes ouvertes, telles que HTTP, XML (Protocole d'accès d'objet simple - SOAP (Protocole d'accès d'objet simple - Standard Intenet, décrivant comment les applications peuvent interagir, c'est-à-dire appeler les autres méthodes à l'aide de HTTP et d'autres protocoles ). La tâche principale du service Web est de garantir une interaction inter-programme. De nombreux travaux sur les serveurs UNIX et les nettoyages Windows sont adressés à eux. Les données transmises à WebServis sont sérialisées en XML et sont transmises à des packages SOAP. Les métadonnées sur le contenu de ces messages sont stockées dans les régimes Web -Service Web de la SMDL et XSD. Le principal avantage de cette approche est la lisibilité des métadonnées. Le développeur peut facilement afficher la description complète du service Web et même créer son propre module, désassembling SOAP -Paskets.

.NET Remoting. Fournit une infrastructure pour les objets distribués. Il est beaucoup plus compliqué par la simple architecture de service Web basée sur le transfert de messages. . La télécommande nette comprend le transfert de paramètres par référence et valeur, rappels, activation multiple des objets et politiques de gestion du cycle de vie. Pour utiliser les capacités spécifiées, l'application cliente devrait posséder toutes les technologies. Données dans. La télécommande nette est transmise au format binaire ou du savon. Toutefois, dans tous les cas, les métadonnées sur la structure des informations transmises sont contenues dans un environnement d'exécution sociable. Sans environnement d'exécution général basé (CLR), l'application client ne sera pas en mesure de démonter spécifique. En-têtes de savon en télécommandes nettes. C'est à dire. La télécommande nette apporte des exigences de manière substantielle par rapport au service Web.

Développement de services Web sur plateforme.net

Il existe de nombreuses façons d'écrire Web -service. Ils peuvent être développés manuellement ou à l'aide de l'impression de savon fournie par Microsoft, IBM, etc. Écrire un service Web -Service avec en utilisant Microsoft.. NET a deux avantages:

  • .NET Cadre simplifie de manière significative le processus de développement en fournissant la bibliothèque de classe et l'automatisation de certaines étapes de développement;
  • Les services Web écrits avec .NET Framework sont des applications gérées. C'est-à-dire dans de telles applications, il n'y a pas de problèmes de fuites de mémoire, de pointes et d'autres points initialisés de manière incorrecte. problèmes typiques Programmation.

Créature

Nous développerons un simple service Web de l'additionVice, qui ajoute deux chiffres. Il ne disposera que d'une méthode d'addition qui accepte deux entiers en tant que paramètre et renvoie également un entier. AdditionVice démontre plusieurs principes importants pour la programmation des services Web à l'aide de Microsoft .NET Framework.

  • Les services Web sont implémentés en tant que fichiers ASMX. ASMX est une extension de nom de fichier spécial, enregistrée pour ASP .NET (plus précisément, pour le gestionnaire ASP.NET HTTP dans le fichier de configuration principale ASP .NET Machine.Config.
  • Les fichiers ASMX commencent par @webservice Directive. Cette directive doit contenir au moins l'attribut de classe spécifiant la classe à partir duquel le service Web consiste.
  • Les classes de service Web peuvent avoir des attributs WebService facultatifs. Dans cet exemple, un tel attribut attribue le nom du service Web et une description affichée sur la page HTML lorsque l'utilisateur appelle le navigateur AddService.asmx.
  • Les méthodes Web sont déclarées en attribuant des méthodes ouvertes de classe d'attributs WebMethod. Pour les méthodes auxiliaires utilisées à l'intérieur, mais inaccessible aux clients externes, cet attribut n'est tout simplement pas spécifié.
  • Http, xml et savon "invisible". Travailler avec des données XML et des messages SOAP effectue .NET Framework.

AddService.asmx.<%@ WebService language="C#" Class="AddService" %> Utilisation du système à l'aide de System.Web.Services Classe AddService (Public int Ajouter (int A, int b) (retour A + B))

Malgré les petites tailles, AddService.asmx est un service Web à part entière si vous l'installez sur un serveur Web avec ASP.NET. Ses méthodes sont appelées à l'aide de savon, HTTP GET et HTTP POST, et il peut renvoyer les résultats en tant que réponses de savon ou comme simples coquilles XML.

À l'aide du code d'arrière-plan, les classes de service Web peuvent être extraites des fichiers ASMX dans des fichiers distincts.

Utilisation de support des services Web types de données complexes en tant que paramètres d'entrée ou de sortie. Les types de données sophistiqués sont pris en charge, car XML facilite la série de types de données. Toutefois, lors du test automatique du service Web ASP .NET ne génère pas de pages de test pour les méthodes recevant des types de données complexes. En effet, il est impossible de transférer des types de données complexes Méthode Web à l'aide de HTTP GET et POST.

Les services Web vous permettent d'appeler vos méthodes asynchrone. L'appel asynchrone renvoie immédiatement le contrôle, peu importe la quantité de service Web nécessaire au traitement des appels. Les appels asynchrones sont utiles si le traitement des appels nécessite un temps considérable. L'application fait un appel, puis continue de fonctionner sans attendre le résultat d'appel et reçoit plus tard les résultats d'un appel asynchrone. Obtenir le résultat se produit lorsque rappeler Méthode Web à une demande d'application pratique soit en vous souscrivant à notifier la fin du traitement de l'appel au service Web (mécanisme des délégués).

Les services Web peuvent être créés à l'aide d'outils Instrumental, par exemple, Microsoft Visual Studio 2005. Pour créer des services Web, il existe un type séparé de service Web ASP .NET. Visual Studio génère un fichier ASMX, un fichier de code d'arrière-plan pour décrire les classes de service Web, un fichier de configuration de service Web, etc. Lorsque vous démarrez le projet, une compilation des classes de service et l'ouverture du fichier ASMX dans la fenêtre du navigateur se produisent. .

Description des services Web avec des contrats

Pour que d'autres développeurs utilisent le service supplémentaire, ils doivent savoir quelles méthodes fournies, quels protocoles soutiennent, signatures de méthodes et l'adresse du service Web (URL). Toutes ces informations et d'autres peuvent être décrites dans WSDL (langage de description du service Web).


Détection de service Web

Comment les autres développeurs apprennent-ils sur l'existence d'une addiction?

Premièrement, en utilisant la discothèque (réduction de la découverte de mot) - le mécanisme de fichier de recherche de services Web locaux, c'est-à-dire le mécanisme d'obtention d'une liste de services Web disponibles à partir de fichiers disco postés sur des serveurs Web. En outre, les fichiers Disco contiennent des enregistrements sur l'emplacement des contrats de services disponibles sur WSDL. Le fichier disco est un fichier XML avec des enregistrements.

Il est également possible d'utiliser des fichiers VSDisco similaires aux fichiers disco, mais leur contenu résulte de la recherche dynamique des services Web dans ces répertoires et de tous les sous-répertoires de sous-répertoire. ASP .NET affiche l'extension du nom de fichier.Vsdisco sur http-pro-Botchik, qui le trouve dans ce catalogue Et ses sous-répertoires asmx et disco et renvoie un document disco généré de manière dynamique. Pour des raisons de sécurité, une recherche dynamique dans un certain nombre de versions .NET Framework est désactivée, mais elle peut être activée en modifiant les enregistrements de fichier machine.config.

Mais comment est la recherche de services Web dans réseau mondial? Pour rechercher des services Web dans le réseau mondial Microsoft, IBM et Ariba ont développé conjointement UDDI (découverte et intégration de description universelle) - Spécification de la construction bases distribuées Données qui vous permettent de rechercher des services Web. UDDI est soutenu par des centaines d'entreprises. Les sites UDDI eux-mêmes sont des services Web. Tout le monde peut publier son registre basé à UDDI. La plupart des développeurs n'utilisent jamais directement l'API UDDI. Au lieu de cela, l'UDDI enregistre l'appel outils Développement. Ils génèrent également les classes de shell de services Web détectés et sélectionnés.

RÉSULTATS

XML Web -Service est un composant logiciel fournissant la fonctionnalité que le plus différents systèmesSoutenir les normes telles que XML et les clients HTTP de WebService peuvent être à la fois locaux et applications distantes. Web -service vous permet de créer des structures qui facilitent l'intégration de divers systèmes basés sur de simples normes généralement acceptées.

Le service Web est un programme sur lequel d'autres autres Internet (HTTP) sont accessibles. Par exemple, supposons que vous ayez une fonctionnalité qui fournit du texte au format HTML. Le but de l'application est un navigateur Web qui affiche les résultats et la personne sera en mesure de lire facilement ce texte sur la page.

D'autre part, l'audience cible du service Web est d'autres programmes ou d'autres services Web qui consomment des données desservies par le service Web. Habituellement, la sortie est effectuée dans une langue standard, qui peut être comprise par d'autres programmes. Prenez l'exemple ci-dessus si le service Web affiche le texte au format XML, les autres services Web pouvant lire ou comprendre XML peuvent utiliser cette sortie.

Le principal avantage du service Web est que les applications peuvent être écrites dans n'importe quelle langue, mais elles peuvent échanger des données et échanger des données les unes avec les autres via le service Web. Applications de programmeÉcrit dans différentes langages de programmation et travailler sur différentes plates-formes peut utiliser des services Web pour échanger des données via Internet (http). C'est l'interaction (par exemple, entre Java et Python, ou applications Windows et Linux) associé à l'utilisation de normes ouvertes (XML, SOAP, HTTP).

  • SOAP (accès de protocole simple aux objets)
  • UDDI (description universelle, détection et intégration)
  • WSDL (description du service Web Langue)

Combien de types différents de services Web y a-t-il?

Tout d'abord, il existe deux types de services Web, un simple protocole d'accès objet (SOAP) et un transfert d'état représentatif (repos).

  • Le service Web SOAP accepte le format XML et génère une sortie au format XML.
  • Le service Web de repos est plus polyvalent et peut recevoir XML, ainsi que JSON en tant que requête et génère une sortie à XML, ainsi que dans JSON ou même HTML.

Cette question peut être étudiée sur la nôtre.

19 réponses

Définition simple: le service Web est une fonction à laquelle d'autres programmes Internet sont accessibles (HTTP). Pour clarifier un peu lorsque vous créez un site Web sur PHP, qui affiche HTML, son objectif est un navigateur et, en outre, une personne lisant une page dans le navigateur. Le service Web n'est pas destiné aux personnes, mais plutôt pour d'autres programmes.

Ainsi, votre site Web PHP, qui génère un entier aléatoire, peut être un service Web s'il affiche un entier dans le format pouvant être utilisé par un autre programme. Cela peut être au format XML ou au format si d'autres programmes peuvent comprendre la sortie.

La définition complète est évidemment plus compliquée, mais vous avez demandé un anglais simple.

Explication simplifiée et non technique: Web servlet permet au programme de parler avec une page Web, au lieu d'utiliser votre navigateur pour ouvrir une page Web.

Exemple: je peux aller à maps.google.com et entrez votre adresse personnelle, ainsi que voir où j'habite dans mon navigateur.

Mais que si vous écrivez programme d'ordinateurOù voulez-vous prendre l'adresse et montrer une jolie carte, tout comme Google Maps?

Eh bien, vous pouvez écrire parfaitement nouveau programme Cartographie de zéro ou vous pouvez appeler le service Web que les cartes de Google fournissent, envoyez-la l'adresse et renvoient la carte graphique de l'emplacement que vous pouvez afficher dans votre programme.

Il y en a beaucoup d'autres, car certains des autres messages entrent, mais le résultat est qu'il permet de votre application ou d'extraire des informations, ou de transférer des informations à certaines ressources. Quelques autres exemples:

Oui, il s'agit d'un service Web simple.

Les services Web ne sont rien de plus qu'un mécanisme de requête / réponse qui permet au client d'accéder à distance / modifier des données. Il existe des normes officielles pour les services Web (savon, SOA, etc.), mais votre page simple est également un service.

Le principal inconvénient de l'impression sur la page est que votre service retournera HTML. Les formats de données préférés sont JSON et XML, car la plupart des cadres clients (et des cadres de serveur) sont conçus à l'aide de JSON et de XML.

Donc, si vous changez de service de retour:

un nombre aléatoire

... un nombre aléatoire

il serait plus utile pour la plupart des clients

En termes plus simplifiés, le service Web est ce qui fournit des données en tant que service HTTP. Bien sûr, ce n'est pas le cas ... mais il est proche.

Services Web standard Utilisez le protocole de savon qui définit et la structure de message, et XML est un format de données.

Les services Web sont conçus pour créer des applications créées en utilisant technologies différentes, pourrait interagir les uns avec les autres sans problèmes.

Des exemples de services Web sont des choses comme Weather.com, fournissant des informations météorologiques que vous pouvez utiliser sur votre site Web ou UPS, qui fournit une méthode de citation de citations ou de suivi de paquets.

Le libellé est changé par rapport au savon, car ce n'est pas toujours un savon, comme je l'ai mentionné, mais j'aimerais le rendre plus compréhensible. La clé fournit des données comme un service et non un élément de l'interface utilisateur.

Le service Web est différent du site Web que le service Web fournit des informations consommées par des logiciels et non par des personnes. En conséquence, nous parlons habituellement des services json, XML ou SOAP exposés.

Les services Web sont des composants essentiels de «Mashups». Mashups est lorsque des informations de nombreux sites sont automatiquement agrégées dans un nouveau service utile. Par exemple, il y a des sites combinés Google Maps avec des informations sur les rapports de police pour vous donner représentation graphique Sur le crime dans votre région. Un autre type de mashup serait de recevoir de vraies données sur les réserves fournies par un autre site et de les combiner avec une fausse application de trading pour créer un «jeu de marché» sur le marché boursier.

Les services Web sont également utilisés pour fournir des nouvelles (voir RSS), les derniers éléments ajoutés au site, des informations sur les nouveaux produits, des podcasts et d'autres fonctions remarquables qui font un tour Web moderne.

J'espère que cela aidera!

Pour la plupart des sites que vous avez pages HTMLque vous visitez lorsque vous utilisez votre navigateur. Ce sont des pages lues par une personne (après la visualisation de votre navigateur), où de nombreuses données peuvent être encombrées, car cela a du sens pour les personnes.

Maintenant, imaginez que quelqu'un veut utiliser certaines de ces données. Ils peuvent télécharger votre page et commencer à filtrer tout le "bruit" pour obtenir les données dont vous avez besoin, mais la plupart des sites Web ne sont pas construits de manière à ce que les données à 100% soient certainement placées au même endroit pour tous les éléments, de sorte que Un complément est encombrant, il devient également peu fiable.

Entrez des services Web.

Le service Web est ce que le site Web propose d'offrir à ceux qui souhaitent lire, mettre à jour et / ou supprimer des données de votre site. Vous pouvez l'appeler "Backdoor" pour vos données. Au lieu de soumettre des données dans le cadre d'une page Web, elle est fournie à l'avance d'une certaine manière où certaines des plus populaires sont XML et JSON. Il existe plusieurs façons de communiquer avec le service Web, d'utiliser SOAP, d'autres, des services Web de repos "A, etc.

Ce qui est caractéristique de tous les services Web, c'est qu'ils sont des pages Web équivalentes lisibles à la machine que le site offre aux autres. Cela signifie que d'autres personnes souhaitant utiliser des données peuvent envoyer une demande de certaines données faciles à démonter et à utiliser. Sur certains sites, vous devrez peut-être spécifier le nom d'utilisateur / mot de passe dans la requête pour des données confidentielles, tandis que d'autres sites permettent à quiconque d'extraire les données dont ils peuvent avoir besoin.

Meilleure explication sur langue Anglaise Expliqué à l'analogie:

  • Les pages Web permettent aux gens de communiquer et de coopérer les uns avec les autres.
  • Les services Web permettent aux programmes de communiquer et de coopérer les uns avec les autres.

Votre exemple PHP est un service Web pour cette définition, car la sortie peut être utilisée par un autre programme. Mais en fait, l'écran de racloir HTML n'est pas un moyen fiable ou pris en charge pour créer des services Web.

Le service Web est un ensemble de protocoles ouverts et de normes utilisées pour échanger des données entre applications ou systèmes. Les applications logicielles écrites dans différentes langues de programmation et fonctionnant sur différentes plates-formes peuvent utiliser des services Web pour échanger des données réseaux informatiques, comme Internet, une manière similaire à la communication interprocesseur sur un ordinateur. Cette compatibilité (par exemple, entre les applications Java et Python, Windows et Linux) est liée à l'utilisation de normes ouvertes (XML, SOAP, HTTP).

Tous les services Web standard fonctionnent à l'aide des composants suivants:

  • SOAP (objets de protocole d'accès simples)
  • UDDI (description universelle, détection et intégration)
  • WSDL (description du service Web Langue)

Cela fonctionne comme ceci:

WebService est une technologie selon laquelle deux ou plusieurs applications Web distantes interagissent mutuellement sur le réseau / Internet. Il peut être mis en œuvre à l'aide de Java, .NET, PHP, etc.

Caractéristiques du service Web: -

Le système d'exploitation fournit l'interface GUI (et CLI) avec laquelle vous pouvez interagir. Il fournit également une API avec laquelle vous pouvez interagir avec des logiciels.

De même, le site Web fournit des pages HTML avec lesquelles vous pouvez interagir et peut également fournir une API, qui offre les mêmes informations et opérations par programme. Ou ces services ne peuvent être disponibles que via l'API sans l'interface utilisateur appropriée.

Le service Web utilisé par les développeurs de logiciels concerne généralement une opération effectuée sur un serveur distant et appelée à l'aide de la spécification XML / SOAP. Comme dans toutes les définitions, il y a des nuances, mais c'est l'utilisation la plus courante du terme.

Un moyen simple d'expliquer le service Web est ::

  • Le service Web est un moyen de communication entre deux appareils électroniques sur le World Wide Web.
  • On peut appeler un processus que le programmateur utilise pour communiquer avec le serveur.
  • Pour appeler ce processus, le programmeur peut utiliser du savon, etc.
  • Les services Web sont créés en plus des normes ouvertes, telles que TCP / IP, HTTP

L'avantage du service Web est que, par exemple, vous développez une pièce de code V.NET et vous souhaitez utiliser Java pour utiliser ce code. Vous pouvez interagir directement avec la couche d'abstraction et ne sait pas que la technologie a été conçue pour développer du code.

Comme @vincent Ramdhanie a déclaré que le service Web n'est pas destiné à afficher / consommer l'utilisateur final et un autre programme. Ainsi, la logique technique de votre programme sera la suivante:

Dans le cas d'un programme normal

Utilisateur sur le site Web -\u003e HTML / JS / JQuery, etc. - Donnez-moi un nombre aléatoire -\u003e votre programme

votre programme -\u003e Générer un nombre aléatoire -\u003e Génère HTML et encapsulate O / P -\u003e Retour à l'utilisateur



Avez-vous aimé l'article? Partagez-le