Documente Academic
Documente Profesional
Documente Cultură
XML
Servicio Web
Un servicio Web es una colección de protocolos y estándares empleados para
intercambiar datos entre aplicaciones y sistemas. Las aplicaciones, escritas en
diversos lenguajes de programación y ejecutándose en distintas plataformas
pueden utilizar los servicios Web para intercambiar datos sobre una red de
ordenadores como Internet de una forma similar a la comunicación entre
procesos en un solo ordenador. En los servicios Web, todos los datos se
intercambian se formatean con etiquetas XML.
XML
XML es un macro-lenguaje para la creación de lenguajes de propósito especial.
Es un subconjunto simplificado del SGML capaz de describir diferentes tipos de
datos. El propósito principal del lenguaje XML es el de facilitar la transferencia
de datos a través de diferentes plataformas, especialmente las conectadas a
Internet.
Los lenguajes basados en XML (RDF, RSS, XHTML, o SVG) se describen por si
mismos de una manera formal, permitiendo a ciertos programas modificar y
validar documentos en estos lenguajes sin saber de antemano su forma.
XML es un estándar del W3C. Otros muchos lenguajes están basados en XML
como por ejemplo XHTML, MathML, SVG, XUL, RSS y RDF.
Las empresas se percataron que era imposible crear una plataforma integrado
de forma individual, así que decidieron atacar el problema de raíz. Para esto
decidieron que en vez de crear la mejor plataforma integradora, era mejor
buscar un leguaje común de intercambio de información aprovechando los
estándares existentes en el mercado. Bajo este contexto nacen los Servicios
Web basados en XML.
1
Tecnologías Subyacentes
SOAP (Simple Object Access Protocol)
SOAP es un protocolo que proporciona un mecanismo estándar de empaquetar
mensajes. Este protocolo está pensado para el intercambio de información en
entornos descentralizados y distribuidos.
Usa las tecnologías relacionadas con XML a fin de definir un marco de trabajo
extensible para los mensajes. Provee una estructura de mensajes capaz de ser
intercambiada sobre una gran cantidad de protocolos de soporte. Este marco
ha sido diseñado con el fin de que fuera independiente del cualquier modelo de
programación y otras implementaciones de semánticas.
Ventajas
• No esta asociado con ningún lenguaje: los desarrolladores
involucrados en nuevos proyectos pueden elegir desarrollar con el último
y mejor lenguaje de programación que exista pero los desarrolladores
responsables de mantener antiguas aflicciones heredadas podrían no
poder hacer esta elección sobre el lenguaje de programación que
utilizan.
• No se encuentra fuertemente asociado a ningún protocolo de
transporte: La especificación de SOAP no describe como se deberían
asociar los mensajes de SOAP con HTTP. Un mensaje de SOAP no es más
que un documento XML, por lo que puede transportarse utilizando
cualquier protocolo capaz de transmitir texto.
• No está atado a ninguna infraestructura de objeto distribuido La
mayoría de los sistemas de objetos distribuidos se pueden extender, y
ya lo están alguno de ellos para que admitan SOAP.
• Aprovecha los estándares existentes en la industria: Los
principales contribuyentes a la especificación SOAP evitaron,
intencionadamente, reinventar las cosas. Optaron por extender los
estándares existentes para que coincidieran con sus necesidades. Por
ejemplo, SOAP aprovecha XML para la codificación de los mensajes, en
lugar de utilizar su propio sistema de tipo que ya están definidas en la
2
especificación esquema de XML. Y como ya se ha mencionado SOAP no
define un medio de trasporte de los mensajes; los mensajes de SOAP se
pueden asociar a los protocolos de transporte existentes como HTTP y
SMTP.
• Permite la interoperabilidad entre múltiples entornos: SOAP se
desarrollo sobre los estándares existentes de la industria, por lo que las
aplicaciones que se ejecuten en plataformas con dicho estándares
pueden comunicarse mediante mensaje SOAP con aplicaciones que se
ejecuten en otras plataformas.
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<m:reserva xmlns:m="http://empresaviajes.example.org/reserva"
env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
env:mustUnderstand="true">
<m:referencia>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</m:referencia>
<m:fechaYHora>2001-11-29T13:20:00.000-05:00</m:fechaYHora>
</m:reserva>
<n:pasajero xmlns:n="http://miempresa.example.com/empleados"
env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
env:mustUnderstand="true">
<n:nombre>Åke Jógvan Øyvind</n:nombre>
</n:pasajero>
</env:Header>
<env:Body>
<p:itinerario
xmlns:p="http://empresaviajes.example.org/reserva/viaje">
<p:ida>
<p:salida>Nueva York</p:salida>
<p:llegada>Los Angeles</p:llegada>
<p:fechaSalida>2001-12-14</p:fechaLlegada>
<p:horaSalida>última hora de la tarde</p:horaSalida>
<p:preferenciaAsiento>pasillo</p:preferenciaAsiento>
</p:ida>
<p:vuelta>
<p:salida>Los Angeles</p:salida>
<p:llegada>Nueva York</p:llegada>
<p:fechaSalida>2001-12-20</p:fechaSalida>
<p:horaSalida>media-mañana</p:horaSalida>
<p:preferenciaAsiento/>
</p:vuelta>
</p:itinerario>
<q:alojamiento
xmlns:q="http://empresaviajes.example.org/reserva/hoteles">
<q:preferencia>ninguna</q:preferencia>
</q:alojamiento>
</env:Body>
</env:Envelope>
3
contener otros elementos hijo en el sobre. El sobre puede contener un
elemento Header opcional que contiene información sobre el mensaje. En el
ejemplo anterior, la cabecera contiene dos elementos que describen a quien
compuso el mensaje, y posible receptor del mismo. El sobre debe contener un
elemento body el elemento body (cuerpo) contiene la carga de datos del
mensaje. En el ejemplo el cuerpo contiene una simple cadena de caracteres.
WSDL describe la interfaz pública a los servicios Web. Está basado en XML y
describe la forma de comunicación, es decir, los requisitos del protocolo y los
formatos de los mensajes necesarios para interactuar con los servicios listados
en su catálogo. Las operaciones y mensajes que soporta se describen en
abstracto y se ligan después al protocolo concreto de red y al formato del
mensaje.
4
Estructura:
• types: Esta etiqueta define las estructuras de datos que se utilizarán
para construir los mensajes de petición como de respuesta. Estas
estructuras de datos pueden construirse con cualquier lenguaje, pero lo
más normal es hacerlo con XML Schema. Este apartado es el más
complicado sobre todo cuando tengamos que construir estructuras de
datos muy complejas.
• message: Describe los mensajes que se van a intercambiar entre el
cliente y el Servicio Web. Un mensaje puede estar dividido en varias
partes, por ejemplo, si en un mensaje queremos enviar datos y una
imagen.
• portType: Define el conjunto de operaciones que soporta el Servicio
Web. Una operación no es más que un grupo de mensajes que serán
intercambiados. Cada operación puede enviar o recibir al menos un
mensaje cada vez.
5
• services: Este elemento indica donde se encuentra el Servicio usando la
etiqueta. Cada etiqueta define el formato de los mensajes, y la dirección
donde se encuentra el servicio que acepta mensajes en ese formato.
UDDI es uno de los estándares básicos de los servicios Web cuyo objetivo es
ser accedido por los mensajes SOAP y dar paso a documentos WSDL, en los
6
que se describen los requisitos del protocolo y los formatos del mensaje
solicitado para interactuar con los servicios Web del catálogo de registros.
Fuentes de Información
https://developer.mozilla.org
http://www.w3.org
http://en.wikipedia.org/
http://es.wikipedia.org/
http://www.desarrolloweb.com/
http://edgarramirez.wordpress.com
http://jmoraless.wordpress.com/