Comprensión inicial: SOA, SOAP, servicios web, WSDL, etc.
¿Qué es exactamente SOA?
La definición de SOA (arquitectura orientada a servicios) es una arquitectura orientada a servicios, lo que significa que el software se diseña en servicios de acuerdo con funciones. Estos servicios definen interfaces de forma estándar y se llaman a través de protocolos estándar. . Las interfaces y los métodos de llamada definidos por SOA son independientes de los lenguajes de programación y las plataformas operativas. En resumen, SOA se puede implementar basándose en diferentes tecnologías subyacentes, como CORBA y servicios web. CORBA rara vez se utiliza porque es demasiado complejo e inflado, por lo que la mayoría de los SOA mencionados hasta ahora se basan en tecnología de servicios web. En la implementación de servicios web, la interfaz de los servicios SOA está definida por XML.
Bajo el marco SOA, el desarrollo de software comienza con el análisis de procesos de negocios, utiliza métodos de modelado de negocios de componentes para identificar y analizar varios modelos de negocios e integra varias prácticas en ellos. Sobre esta base, se establecen casos de uso. Los casos de uso generan directamente BPEL, que se puede integrar en un marco de integración de servicios. El marco describe la información de varios servicios, unificando así todos los módulos en el ESB para formar un enorme almacén de servicios.
Separe la capa intermedia y cree metadatos de arquitectura intertécnica y lógica empresarial en la capa intermedia, convirtiéndola en una arquitectura intertécnica, herencia a largo plazo y acumulación continua de bibliotecas comerciales empresariales y la más Activos de información valiosos, es decir, una biblioteca de componentes orientada a servicios, y esta biblioteca de componentes de servicios también puede ser reutilizada por otras empresas sin depender de ninguna arquitectura técnica. Para exagerar, si todas las empresas de software utilizaran la arquitectura SOA, la industria del software mundial cambiaría por completo. Obviamente, dicho marco no es un producto, ni sólo una tecnología, sino una metodología para resolver problemas.
SOA puede ser aplicable a dos escenarios: el primero es la interconexión empresarial; el segundo es un sistema de transacciones cerrado que separa los metadatos y la lógica empresarial para crear reutilización. Por ejemplo, en el primer escenario, cuando las empresas entre diferentes empresas necesitan llamarse entre sí, se puede utilizar la tecnología SOA; en el segundo escenario, cuando el sistema necesita migrarse dentro de la empresa, los datos y el negocio originales están definidos por la tecnología SOA; El proceso se puede completar rápidamente.
SOA no es algo nuevo. Durante años, las organizaciones de TI han creado e implementado con éxito aplicaciones SOA. Fabricantes como BEA e IBM vieron su valor y siguieron su ejemplo. El objetivo de SOA es hacerlo más flexible, más receptivo a las necesidades de las unidades de negocio y permitir una empresa en tiempo real (ésta es la visión de Gartner para SOA). Rhonda de BEA propuso transformar la infraestructura de TI de BEA en SOA ya en junio de 2001 y logró buenos resultados en el control de toda la arquitectura empresarial, mejorando la eficiencia del desarrollo, acelerando la velocidad de desarrollo y reduciendo la personalización y la inversión en habilidades de personal.
SOA es una especificación para diseñar, desarrollar, aplicar y gestionar unidades de lógica distribuida (servicio) en un entorno informático. Esta definición determina la universalidad de SOA. SOA requiere que los desarrolladores diseñen software de aplicación desde una perspectiva de integración de servicios, incluso si los beneficios de hacerlo no son evidentes de inmediato. SOA requiere que los desarrolladores vayan más allá del software de aplicación y consideren la reutilización de servicios existentes o examinen cómo reutilizar los servicios. SOA fomenta el uso de tecnologías y métodos alternativos, como mecanismos de mensajería, para crear aplicaciones vinculando servicios en lugar de escribir código nuevo. Después de un marco adecuado, la aplicación de este mecanismo de mensajería permite a las empresas solo necesitar ajustar el modelo de servicio original, en lugar de verse obligadas a desarrollar un nuevo código de aplicación a gran escala, y pueden responder rápidamente a las tendencias cambiantes dentro del tiempo permitido por la empresa. condiciones del mercado.
SOA es más que una simple metodología de desarrollo: incluye gestión. Por ejemplo, después de aplicar SOA, los administradores pueden administrar fácilmente estas aplicaciones empresariales creadas en la plataforma de servicios en lugar de administrar módulos de aplicaciones individuales. El principio es que SOA facilita a los gerentes de la empresa obtener información sobre cuándo, por qué y qué lógica de negocios se ejecutó mediante el análisis de las llamadas mutuas entre servicios, ayudando así a los gerentes de empresas o arquitectos de aplicaciones a optimizar iterativamente sus procesos y aplicaciones de negocios empresariales.
Una de las ideas centrales de SOA es liberar las aplicaciones empresariales de las limitaciones de las soluciones orientadas a la tecnología y satisfacer fácilmente los cambios y las necesidades de desarrollo de los servicios empresariales. Una sola aplicación en un entorno empresarial no puede satisfacer las (variedades) de necesidades de los usuarios empresariales.
Incluso las soluciones ERP a gran escala no pueden satisfacer esta creciente y cambiante brecha de demanda y responder rápidamente al mercado. Los usuarios empresariales sólo pueden satisfacer sus necesidades empresariales existentes desarrollando continuamente nuevas aplicaciones y ampliando las existentes. Al centrarse en los servicios, las aplicaciones se pueden combinar para proporcionar procesos de negocio más completos y útiles. Por lo tanto, los sistemas de aplicaciones empresariales basados en SOA suelen reflejar más fielmente la combinación con el modelo de negocio. Los servicios analizan la tecnología desde una perspectiva de proceso de negocio: esto es de arriba hacia abajo. Esta visión es contraria a la visión general de los negocios impulsados por la tecnología disponible. Las ventajas de los servicios son claras: están integrados con los procesos de negocio y, por lo tanto, representan el modelo de negocio con mayor precisión y respaldan mejor los procesos de negocio. En cambio, podemos ver que el modelo de aplicación empresarial centrado en la aplicación obliga a los usuarios empresariales a limitar sus capacidades a las capacidades de la aplicación.
Los procesos empresariales son el aire que fluye a través del entramado empresarial, dando vida a los componentes del modelo de negocio y definiendo sus relaciones con mayor claridad. Los procesos definen métodos especializados de interacción con el modelo de negocio. Por ejemplo, la contabilidad puede ser una parte integral de un sistema de servicios empresariales, pero enviar facturas a los clientes es un proceso empresarial. Los servicios se definen para respaldar los procesos de negocio, por lo que a lo largo de todo el proceso se realizan las operaciones de ensamblaje y la implementación lógica de varios componentes del servicio en el proceso. Comprender los procesos de negocio es clave para personalizar los servicios.
Los métodos tradicionales de integración de aplicaciones (integración punto a punto, bus de mensajes empresariales o integración de middleware (EAI), integración basada en procesos de negocio) son complejos, costosos e inflexibles. Estos métodos de integración son difíciles de adaptar rápidamente a las crecientes necesidades basadas en los cambios comerciales modernos en las empresas. El desarrollo y la integración de aplicaciones basadas en arquitectura orientada a servicios (SOA) pueden resolver muchos de estos problemas.
SOA describe un conjunto perfecto de patrones de desarrollo para ayudar a las aplicaciones cliente a conectarse a los servicios. Estos patrones personalizan un conjunto de mecanismos para describir servicios, notificar y descubrir servicios y comunicarse con servicios.
A diferencia de los métodos tradicionales de integración de aplicaciones, en SOA, todos los patrones que rodean los servicios se implementan a través de tecnologías basadas en estándares. Lo mismo ocurre con la mayoría de los sistemas middleware de comunicaciones, como RPC, CORBA, DCOM, EJB y RMI. Sin embargo, su implementación no es perfecta y siempre surgen problemas a la hora de sopesar la interactividad y la aceptabilidad de la personalización estándar. SOA intenta eliminar estas deficiencias. Porque casi todos los sistemas middleware de comunicación tienen modos de procesamiento fijos, como funciones RPC, objetos CORBA, etc. Sin embargo, los servicios se pueden definir como funciones y objetos, aplicaciones, etc. Esto hace que SOA sea aplicable a cualquier sistema existente y permite que el sistema se integre sin ninguna personalización especial.
SOA ayuda a los sistemas de información empresarial a migrar a una arquitectura de "capa de salida", lo que significa que el sistema puede proporcionar interfaces de servicios web sin modificar los sistemas empresariales existentes porque ya se han utilizado para proporcionar interfaces de servicios web. encapsulación, por lo que SOA puede convertir rápidamente sistemas y aplicaciones en servicios sin modificar la arquitectura del sistema existente. SOA incluye no sólo información de aplicaciones empaquetadas, aplicaciones personalizadas y sistemas heredados, sino también funcionalidades y datos de la infraestructura de TI, como seguridad, gestión de contenidos y búsqueda. Debido a que las aplicaciones basadas en SOA pueden agregar fácilmente funcionalidades de estas arquitecturas de servicios básicos, las aplicaciones basadas en SOA pueden responder más rápidamente a los cambios del mercado y diseñar y desarrollar nuevas aplicaciones funcionales para unidades de negocios empresariales.
¿Qué es el jabón?
SOAP es la abreviatura de Protocolo Simple de Acceso a Objetos.
SOAP es un protocolo ligero de intercambio de información basado en XML en un entorno distribuido.
Comprensión de Soap:
El primer paso es comprender: SOAP = http+XML.
El segundo paso es comprender: SOAP codifica el uso de XML en parámetros de solicitud y respuesta, utilizando HTTP como método de transporte.
SOAP combina la flexibilidad y escalabilidad de la tecnología WEB madura basada en HTTP y XML.
Paso 3: Comprender: Específicamente, una implementación SOAP puede verse simplemente como una solicitud y respuesta HTTP que sigue las reglas de codificación SOAP.
Nota: SOAP es un protocolo independiente del lenguaje de programación. De hecho, muchos lenguajes han comenzado a soportar SOAP, como Java, C, c++ y JavaScript.
¿El origen del jabón? ¿Qué problema resuelve el jabón?
SOAP fue iniciado originalmente por Microsoft para resolver los problemas de alto consumo de recursos y peso ligero de MTS/COM. Posteriormente, fue aceptada paulatinamente por gigantes como IBM y se sumó a la investigación. Ahora se envió al W3C y se convirtió en un estándar de transmisión para aplicaciones de servicios web. La tecnología SOAP se utiliza principalmente para lograr la interoperabilidad entre una gran cantidad de programas y plataformas heterogéneos para que una amplia gama de usuarios pueda acceder a las aplicaciones existentes.
SOAP significa Protocolo Simple de Acceso a Objetos. De hecho, como su nombre indica, SOAP es muy sencillo. Es un protocolo basado en XML que permite que los componentes del programa y las aplicaciones se comuniquen entre sí mediante el protocolo estándar de Internet HTTP. SOAP es una plataforma independiente y no depende de lenguajes de programación. Es simple, flexible y fácilmente extensible. Actualmente, las aplicaciones pueden comunicarse entre sí mediante llamadas a procedimientos remotos (RPC) basadas en tecnologías DCOM y CORBA, pero HTTP no fue diseñado para este propósito. La aplicación de RPC en Internet es muy difícil y existen muchos problemas de compatibilidad y seguridad, porque los firewalls y servidores proxy a menudo bloquean este tipo de tráfico. La mejor manera de comunicarse entre aplicaciones es a través del protocolo HTTP, ya que HTTP es compatible con todos los navegadores y servidores de Internet. Por este motivo surgió el protocolo SOAP.
SOAP (Protocolo simple de acceso a objetos) es un protocolo simple para intercambiar información en un entorno descentralizado o distribuido. Es un protocolo basado en XML. Consta de cuatro partes: sobre SOAP, que define un marco para describir qué hay en el mensaje, quién lo envió, quién debe aceptarlo y procesarlo y cómo; reglas de codificación SOAP, que se utilizan para representar los datos que necesita la aplicación; utilizar Una instancia del tipo representación SOAP RPC, que representa un contrato para llamadas y respuestas a procedimientos remotos, que utiliza el protocolo subyacente para intercambiar información.
Aunque estas cuatro partes se definen como parte del SOAP general, funcionalmente se superponen y son independientes entre sí. En particular, las reglas de codificación y sobre se definen en diferentes espacios de nombres XML, lo que facilita la definición.
¿Qué es CXF?
Apache CXF = Celtix+XFire, el predecesor de Apache CXF es Apache CeltiXfire, y ahora ha pasado a llamarse oficialmente Apache CXF, en lo sucesivo denominado CXF. CXF hereda la esencia de Celtix y XFire, brinda soporte integral para JAX-WS y brinda soporte para varios enlaces, enlaces de datos, transmisiones y formatos, y puede usar código primero o WSDL según las necesidades del proyecto real. implementar la publicación y uso de servicios web. Actualmente es sólo un proyecto de incubación de Apache.
Apache CXF es un marco de servicios de código abierto que le ayuda a crear y desarrollar servicios utilizando API de programación front-end como JAX-WS. Estos servicios pueden admitir múltiples protocolos, como SOAP, XML/HTTP, RESTful HTTP o CORBA, y pueden ejecutarse en múltiples protocolos de transporte, como HTTP, JMS o JBI. CXF simplifica enormemente la creación de servicios, al tiempo que hereda la tradición de XFire y se puede integrar de forma natural y perfecta con Spring.
CXF contiene una gran cantidad de características funcionales, pero se centra principalmente en los siguientes aspectos:
Compatibilidad con estándares de servicios web: CXF admite varios estándares de servicios web, incluidos SOAP, perfil básico y WS. -Direccionamiento, WS-Policy, WS-ReliableMessaging y WS-Security.
Front-end: CXF admite varios modelos de programación "front-end". CXF implementa la API JAX-WS (siguiendo la versión 2.0 TCK de JAX-WS). También incluye un "front-end simple". permite la creación de clientes y puntos finales sin anotación. CXF admite los modelos de desarrollo de código y WSDL primero de Java.
Fácil de usar: CXF está diseñado para ser intuitivo y fácil de usar.
Hay una gran cantidad de API simples para crear rápidamente servicios de código primero, varios complementos de Maven también facilitan la integración, soporte para API JAX-WS, soporte para una configuración XML más simplificada en Spring 2.0 y más.
Soporta protocolos binarios y heredados: CXF es una arquitectura conectable que puede soportar enlaces de tipo XML y no XML, como JSON y CORBA.
Creemos un servicio web simple usando cxf.
En primer lugar, los paquetes requeridos por cxf: el sitio web muestra que se requieren los siguientes paquetes, pero los paquetes rojos no se utilizan en mi proyecto real.
Cada uno puede añadir paquetes de adaptación según sus propias necesidades.
cxf.jar
commons-log . jar
geronimo-activation.jar (o equivalente de Sun) //
geronimo- annotation.jar (o equivalente de Sun) // p >
geronimo-javamail.jar ( o equivalente de Sun) // p >
niti jar p >
jaxb-api.
jaxb-impl.jar
stax-api.jar//
XmlSchema.jar
wstx-asl.jar
p>xml-resolver.jar
Aplicaciones distribuidas y navegadores
Al estudiar el desarrollo actual de aplicaciones, encontrará una tendencia absoluta: la gente comienza a preferir aplicaciones de cliente ligero a los navegadores. Ciertamente, esto no se debe a que un cliente ligero proporcione una mejor interfaz de usuario, sino a que evita el alto costo de publicar una aplicación de escritorio. La publicación de aplicaciones de escritorio es costosa, en parte debido a problemas con la instalación y configuración de las aplicaciones, y en parte debido a problemas de comunicación entre clientes y servidores.
Las aplicaciones tradicionales de cliente enriquecido de Windows utilizan DCOM para comunicarse con el servidor y llamar a objetos remotos. Configurar DCOM para que funcione correctamente en una red grande será una tarea desafiante y una pesadilla para muchos ingenieros de TI. De hecho, muchos ingenieros de TI prefieren soportar las limitaciones funcionales que trae el navegador que ejecutar DCOM en la LAN. El resultado, en mi opinión, es una aplicación fácil de publicar, pero difícil de desarrollar y con una interfaz de usuario extremadamente limitada. En el caso extremo, gasta más dinero y tiempo, pero desarrolla una aplicación que es más débil desde la perspectiva del usuario. ¿No lo crees? Pregúntele a su contador qué piensa del nuevo software de contabilidad basado en navegador: la mayoría de los usuarios de programas empresariales quieren una interfaz de usuario de Windows más amigable.
En cuanto a la comunicación entre cliente y servidor, una solución perfecta es utilizar el protocolo HTTP para la comunicación. Esto se debe a que cualquier máquina que ejecute un navegador web utiliza el protocolo HTTP. Además, muchos cortafuegos actualmente están configurados para permitir únicamente conexiones HTTP.
Otro problema al que se enfrentan muchos programas comerciales es la interoperabilidad con otros programas. Si todas las aplicaciones utilizan COM o . NET y se ejecute en la plataforma Windows, el mundo será pacífico. Sin embargo, de hecho, la mayoría de los datos comerciales todavía se almacenan en mainframes en forma de archivos no relacionales (VSAM) y se accede a ellos mediante programas de mainframe escritos en lenguaje COBOL. Y hay muchos programas comerciales que se siguen escribiendo en varios lenguajes como C++, Java y Visual Basic. Ahora, todos los programas, excepto los más simples, necesitan integrar e intercambiar datos con aplicaciones que se ejecutan en otras plataformas heterogéneas. Estas tareas a menudo se logran a través de métodos especializados, como transferencia y análisis de archivos, colas de mensajes y API que solo funcionan en determinadas situaciones, como la comunicación avanzada de programa a programa (APPC) de IBM. Hasta ahora no existían estándares de comunicación de aplicaciones que fueran independientes de las plataformas, los modelos de construcción y los lenguajes de programación. Sólo a través del Servicio Web, el cliente y el servidor pueden comunicarse libremente utilizando HTTP, independientemente de la plataforma y el lenguaje de programación de los dos programas.
¿Qué es un servicio de red?
Los servicios web son una nueva plataforma para crear aplicaciones distribuidas interoperables.
Como programador de Windows, es posible que haya creado una aplicación distribuida basada en componentes utilizando COM o DCOM. COM es una muy buena tecnología de componentes, pero podemos citar fácilmente situaciones en las que COM no cumple los requisitos.
La Plataforma de Servicios Web es un conjunto de estándares que definen cómo las aplicaciones pueden lograr la interoperabilidad en la Web. Puede escribir servicios web en el idioma que desee, en cualquier plataforma que desee, siempre que podamos consultar y acceder a estos servicios a través de estándares de servicios web.
La plataforma de servicios web requiere un conjunto de protocolos para realizar la creación de aplicaciones distribuidas. Cualquier plataforma tiene su método de representación de datos y su sistema de tipos. Para lograr la interoperabilidad, la plataforma de servicios web debe proporcionar un conjunto de tipos de sistemas estándar para comunicar diferentes tipos de sistemas con diferentes plataformas, lenguajes de programación y modelos de componentes. En los sistemas distribuidos tradicionales, las plataformas basadas en interfaces proporcionan algunos métodos para describir interfaces, métodos y parámetros. De manera similar, la plataforma de servicios web debe proporcionar un estándar para describir el servicio web de modo que los clientes puedan obtener suficiente información para llamar al servicio web. Finalmente, debemos tener una forma de llamar a este servicio web de forma remota. Este método es en realidad un protocolo de llamada a procedimiento remoto (RPC). Para lograr la interoperabilidad, este protocolo RPC también debe ser independiente de la plataforma y del lenguaje de programación.
Los servicios web son una nueva rama de las aplicaciones web. Son aplicaciones modulares, autodescriptivas y autónomas que pueden publicarse, localizarse e invocarse a través de la web. Los servicios web pueden realizar cualquier función, desde solicitudes simples hasta procesamiento comercial complejo. Una vez implementadas, otras aplicaciones de servicios web pueden descubrir e invocar el servicio que implementan.
Un servicio web es una aplicación que puede mostrar mediante programación su funcionalidad en Internet y en la intranet utilizando protocolos de Internet estándar como el Protocolo de transferencia de hipertexto (HTTP) y XML. Puede pensar en los servicios web como programación de componentes en la web.
1 Historia
Tecnologías ampliamente utilizadas en redes:
◆TCP/IP: Protocolo de red universal utilizado por varios dispositivos.
◆HTML: Interfaz de usuario universal que puede mostrar datos mediante etiquetas HTML.
◆Java: escribe un lenguaje de programación de propósito general que pueda ejecutarse en cualquier lugar.
◆XML: Un lenguaje de expresión de datos universal, una forma sencilla de transmitir datos estructurados en la web.
Se caracterizan por ser abiertos y multiplataforma, y la apertura es la base de los servicios web.
2 Tendencias de desarrollo de redes
El contenido es más dinámico
◆El ancho de banda es más barato y más fácil de obtener.
◆El almacenamiento en memoria es más barato y más fácil de obtener.
La informática ubicua se ha vuelto más importante: una gran cantidad de dispositivos como teléfonos móviles, páginas web, ordenadores y PC se han vuelto omnipresentes en Internet, las plataformas se han vuelto más diversas y las tecnologías multiplataforma como a medida que XML se ha vuelto más importante.
¿Qué papel juegan los servicios web?
Estas tendencias significan que es importante procesar, manipular y resumir el contenido de forma más inteligente. Veamos cuatro tendencias predichas desde la perspectiva de los servicios web:
◆Contenido más dinámico: los servicios web deben poder combinar contenido de múltiples fuentes diferentes, incluidas acciones, clima, noticias, etc. En un entorno tradicional, cosas como niveles de inventario, órdenes de compra o información de catálogo provienen de sistemas de back-end.
Ancho de banda más barato: los servicios web pueden distribuir varios tipos de contenidos (audio, vídeo en streaming, etc.).
Almacenamiento más barato: los servicios web deben poder manejar grandes cantidades de datos de forma inteligente , lo que significa utilizar tecnologías como bases de datos, directorios LDAP, almacenamiento en búfer y software de equilibrio de carga para mantener la escalabilidad.
◆La informática ubicua es más importante: los servicios web no pueden exigir que los clientes utilicen una determinada versión del navegador tradicional de Windows, sino que deben admitir varios dispositivos, plataformas, tipos de navegador y varios tipos de contenido.
4 Dos tecnologías importantes
Para lograr este objetivo, los servicios web deben utilizar dos tecnologías:
◆XML XML es transmitir datos estructurados en la web. Una muy buena manera. Los servicios web deben manipular los datos de forma fiable y automatizada, HTML no será suficiente.
Sin embargo, XML hace que sea muy conveniente para los servicios web manejar datos, y la separación entre contenido y presentación es ideal.
◆SOAP SOAP utiliza mensajes XML para llamar a métodos remotos, lo que permite a los servicios web interactuar con máquinas remotas a través de la publicación y obtener métodos del protocolo HTTP, que es más robusto, flexible y fácil de usar.
Otras tecnologías, como UDDI y WSDL, están estrechamente integradas con XML y SOAP para el descubrimiento de servicios. </SPAN>.
Estas tres tecnologías constituyen la plataforma de servicios Web.
XML y XSD
Lenguaje de marcado extensible (XML) es el formato básico para representar datos en plataformas de servicios web. Además de ser fácil de construir y analizar, la principal ventaja de XML es que es independiente de plataforma y proveedor. La indiferencia es más importante que la superioridad técnica: los proveedores de software no elegirán tecnología inventada por sus competidores.
XML resuelve el problema de la representación de datos, pero no define un conjunto estándar de tipos de datos, y mucho menos cómo ampliar este conjunto de tipos de datos. Por ejemplo, ¿qué representan los números enteros? 16, 32 o 64? Estos detalles son importantes para lograr la interoperabilidad. XML Schema (XSD) desarrollado por W3C es un conjunto de estándares para resolver este problema. Define un conjunto estándar de tipos de datos y proporciona un lenguaje para ampliar este conjunto de tipos de datos. La plataforma de servicios web utiliza XSD como sistema de tipos de datos. Cuando crea un servicio web en un lenguaje como VB.NET o C#, todos los tipos de datos que utiliza deben convertirse a tipos XSD para cumplir con los estándares del servicio web. Es posible que la herramienta que utilice ya realice esta conversión automáticamente, pero usted puede modificar el proceso de conversión para adaptarlo a sus necesidades.
WSDL
¿Cómo les dices a otros las funciones y parámetros de tu servicio web cuando se llama a cada función? Puede escribir un conjunto de documentación usted mismo o incluso informar verbalmente a las personas que necesitan utilizar su servicio web. Estos métodos informales tienen al menos un problema grave: cuando los programadores se sientan frente a sus computadoras y quieren utilizar su servicio web, sus herramientas (como Visual Studio) no pueden ayudarlos porque no entienden su servicio web en absoluto. . La solución es proporcionar un documento de descripción formal en forma legible por máquina. El lenguaje de descripción de servicios web (WSDL) es un lenguaje basado en XML que se utiliza para describir servicios web y sus funciones, parámetros y valores de retorno. Debido a que está basado en XML, WSDL es legible tanto por máquinas como por humanos, lo que será un gran beneficio. Algunas de las últimas herramientas de desarrollo no sólo pueden generar documentos WSDL basados en sus servicios web, sino también importar documentos WSDL para generar código que llame a los servicios web correspondientes.