PDF de programación - XML, Servicios Web y Web Semántica

Imágen de pdf XML, Servicios Web y Web Semántica

XML, Servicios Web y Web Semánticagráfica de visualizaciones

Actualizado el 9 de Agosto del 2018 (Publicado el 28 de Mayo del 2018)
694 visualizaciones desde el 28 de Mayo del 2018
1,1 MB
29 paginas
Creado hace 18a (04/04/2006)
XML, Servicios Web y

Web Semántica

Departamento de Informática

Universidad de Oviedo

Servicios Web

Antecedentes y Justificación
SOAP, WSDL, UDDI
Utilización de Servicios Web
Creación de Servicios Web

Departamento de Informática

Universidad de Oviedo

1

Servicios Web
Posible definición

Aplicaciones auto-contenidas, auto-descritas que

pueden ser publicadas, localizadas e invocadas a
través de la Web
Una vez desarrolladas, otras aplicaciones (y otros
servicios Web) pueden descubrirlas e invocar el
servicio dado

Internet
Internet

Petición

Respuesta

Servicio

Web
URL

Servicios Web
Factores que influyeron en su aparición

Computación Distribuida: RPC, CORBA, RMI, DCOM

Sistemas fuertemente acoplados

Integración de aplicaciones: EAI (Enterprise Application Integration) 

Reacción frente a sistemas ERP monolíticos

Aparición de XML 

Adopción por principales industrias
XML‐RPC

Necesidad de intercambios B2B

Sistemas de integración EDI, RosettaNet, ebXML

Comercio electrónico y burbuja de Internet

Necesidad de nuevas fórmulas

Microsoft vs. Java

Compatibilidad

2

Servicios Web
Objetivos

Independencia del lenguaje y de la plataforma

Separación de especificación de la implementación

Interoperabilidad

Utilización de estándares: XML, SOAP, WSDL, UDDI...

Acoplamiento débil: Sistemas basados en mensajes

Interacciones síncronas y asíncronas

A través de Internet

Sin control centralizado
Utilización de Protocolos establecidos
Consideraciones de seguridad

Modularidad y Reusabilidad de servicios
Escalabilidad: Aplicaciones uno‐a‐uno frente a uno‐a‐muchos

Servicios Web
Principales Vocabularios

Protocolo de transporte

HTTP/HTTPs (principalmente)

Codificación de datos y mensajes

SOAP (Simple Object Access Protocol)

Descripción del servicio

WSDL (Web Service Description Language)

Búsqueda y localización de servicios 

UDDI (Universal Discovery, Description and Integration)

Otra definición

Programas accesibles en Internet que esponen su funcionalidad
recibiendo/enviando mensajes SOAP a través de HTTP(s) y describen su
interfaz en WSDL

3

Servicios Web
Principales Vocabularios

UDDI
UDDI

HTTPHTTP

o
o

btie
btie

e
e

ncu
ncu
n
n
e W
e W

e
e

registra
registra
publica W S DL
publica W S DL

ntra
ntra

S
S

D
D

L
L

peticióón SOAP (XML)
n SOAP (XML)
petici

Implementacióónn
Implementaci
servicio Web
servicio Web

respuesta SOAP (XML)
respuesta SOAP (XML)

Consumidor
Consumidor
servicio Web
servicio Web

Servicios Web
Arquitectura de Aplicaciones

Base Datos
Base Datos

Servicio Web
Servicio Web

SOAP
SOAP

X SLT
X SLT
XSLTXSLT

XMLXML

X
X

S
S

L
L

T
T

Dispositivo del
Dispositivo del

Cliente
Cliente

HTML
HTML

WMLWML

VoiceXML
VoiceXML

4

Servicios Web
Arquitectura de Aplicaciones

Facturacióónn
Facturaci

SOAP
SOAP

SOAP
SOAP

Internet
Internet

XMLXML

SOAP
SOAP

GestiGestióón den de
Usuarios
Usuarios

SOAP
SOAP

SOAP
SOAP

Conversióón den de
Conversi

Monedas
Monedas

Aplicacióónn
Aplicaci
del usuario
del usuario

SOAP
Evolución

SOAP: Define el formato de los mensajes
SOAP = Simple Object Access Protocol

Aunque tiene poco de objetos...

Evolución

Desarrollado a partir de XML-RPC
SOAP 1.0 (1999), 1.1 (2000), 1.2 (2002)
Participación inicial de Microsoft
Adopción posterior de IBM, Sun, etc.
Aceptación industrial

5

SOAP
Formato

Envelope
Envelope

Header
Header

Header Key
Header Key

Header Key
Header Key

BodyBody

<?xml version=‘1.0’ ?>
<soap:Envelope xmlns:soap=‘http://www.w3.org/2001/12/soap-envelope’

xmlns:p =‘http://www.mafia.it/pizzas’>

SOAP
Ejemplo

<soap:Header>

<p:prioridad> urgente </p:prioridad>
<p:origen>[email protected]</p:origen>

</soap:Header>
<soap:Body>

<p:encargo>

<p:pizza nombre=‘Margarita’>
<p:tamaño>familiar</p:tamaño>
<p:comentario>con mucho queso</p:comentario>
</p:pizza>
</p:encargo>
</soap:Body>
</soap:Envelope>

Cabecera
Cabecera

Contenido
Contenido

6

SOAP
Formato general

SOAP especifica el formato de mensajes

Es independiente del protocolo de transporte
Aunque se define un enlace (binding) con HTTP

envelope: Pueden especificarse datos globales

(codificación, espacios de nombres, etc.)
Contiene: header (opcional) + body (obligatorio)

body contiene datos en formato XML
header contiene meta‐información

Extensiones obligatorias/opcionales

SOAP
Header

header incluye información sobre el mensaje
Facilita futuras extensiones

Seguridad, transacciones, etc.

Información procesable por intermediarios
Atributos pre‐definidos

mustUnderstand (true/false)

Si el elemento no puede procesar dicha información 

devuelve un error

actor

Indica qué nodo debe procesar la información
Si no aparece, debe procesarla el nodo receptor final

7

SOAP
Fault

fault: Formato predefinido de mensajes de error
Se incluye el elemento fault en el cuerpo
Subelementos predefinidos

faultcode: Código del error

Predefinidos: VersionMismatch, MustUnderstand, 

DTDNotSupported, DataEncodingUnknown, 
Sender, Receiver

faultstring: Explicación legible por personas
detail: Información específica de la aplicación

Puede contener elementos XML

faultactor: URI del nodo que causó el error

<?xml version=‘1.0’ ?>
<soap:Envelope xmlns:soap=‘http://www.w3.org/2001/12/soap-envelope’>

SOAP
Fault

<faultcode>soap:Receiver’</faultcode>
<faultstring>Error al procesar</faultstring>
<detail>
<p:detalles xmlns:p=‘http://www.mafia.it/pizzas’>
<mensaje>La pizza Barbacoa no puede llevar

tanto queso</mensaje>

<soap:Body>

<soap:Fault>

</p:detalles>
</detail>
</p:pizza>
</soap:Fault>
</soap:Body>
</soap:Envelope>

8

SOAP
Codificación

Atributo encodingStyle define reglas de codificación
Algunos tipos básicos predefinidos

Enteros, cadenas, flotantes

Contiene reglas específicas para:

Estructuras
Arrays
Referencias

Se complementa con XML Schemas
Pueden definirse otros sistemas de codificación

Tipos báásicos
sicos
Tipos b

SOAP
Codificación

<?xml version=‘1.0’ ?>
<soap:Envelope xmlns:soap=‘http://www.w3.org/2001/12/soap-envelope’

xmlns:xsi=“http://www.w3.org/2001/XMLSchema”
encodingStyle=‘http://www.w3.org/2001/12/soap-encoding’>

<p:código xsi:type=‘soap:int’>234</p:comida>
<p:tamaño xsi:type =‘soap:string’>familiar</p:tamaño>

<soap:Body>
<p:pizza>

</p:pizza>
</soap:Body>
</soap:Envelope>

9

SOAP
Codificación

<Pizza xmlns=‘cualquier_URI’>

<código>234</código>
<nombre>Barbacoa</nombre>

</Pizza>

Estructuras
Estructuras

struct Pizza {
int código;
string nombre;
};

Arrays
Arrays

<pizzas xsi:type=‘soap:Array’ soap:arrayType=‘p:Pizzas[2]’>

<pizza> <código>234</código>

<nombre>Barbacoa</nombre>

</pizza>
<pizza><código>237</código>

<nombre>Barbacoa</nombre>

</pizza>

</pizzas>

soap:offset=‘[4]’>

<pizza> <código>234</código>

<nombre>Barbacoa</nombre>

</pizza>
<pizza><código>237</código>

<nombre>Barbacoa</nombre>

</pizza>

55ºº y 6y 6ºº
elemento
elemento

Arrays parciales
parciales
Arrays

SOAP
Codificación

<pizzas xsi:type=‘soap:Array’ soap:arrayType=‘p:Pizzas[10]’

</pizzas>
<pizzas xsi:type=‘soap:Array’ soap:arrayType=‘p:Pizzas[10]’>

<pizza soap:position=‘2’> <código>234</código>

<nombre>Barbacoa</nombre>

</pizza>
<pizza soap:position=‘5’ ><código>237</código>

<nombre>Barbacoa</nombre>

</pizza>

</pizzas>

22ºº y 5y 5ºº
elemento
elemento

10

SOAP
Ejemplo con HTTP

POST /Suma/Service1.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: longitod del mensaje
SOAPAction: "http://tempuri.org/suma"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope

<soap:Body>
<suma xmlns="http://tempuri.org/">

<a>3</a>
<b>2</b>

</suma>
</soap:Body>
</soap:Envelope>

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

SOAP
Ejemplo de respuesta

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: longitud del mensaje
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope

<soap:Body>
<sumaResponse xmlns="http://tempuri.org/">
<sumaResult>5</sumaResult>
</sumaResponse>
</soap:Body>
</soap:Envelope>

11

WSDL (Web Services Description Language)

WSDL
Evolución

Describe:

Qué puede hacer el servicio
Dónde reside
Cómo invocarlo

Vocabulario basado en capas

Es posible concentrarse en una capa cada vez

Evolución: Iniciativa conjunta de Ariba, IBM y Microsoft

(2001) Propuesto a W3C como recomendación (WSDL 1.1)
(2003) En desarrollo WSDL 2.0

WSDL
Estructura del documento

Tipos de datos usados en los mensajes (XML Schema)

Definición abstracta de los datos transmitidos.

Conjunto de operaciones abstractas

Protocolo concreto y especificaciones de los
formatos de las operaciones del mensaje

Especifica una dirección para el enlace definiendo
un único punto de destino

Colección de puntos de destino

definitions

types

message

portType

binding

port

service

12

<?xml version="1.0" encoding="utf-8" ?>
<definitions xmlns:s=. . .
<types>
<s:schema
<s:element name="suma">
<s:complexType>
<s:sequence>

<s:element minOccurs="1" maxOccurs="1" name="a" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="b" type="s:int" />

WSDL
Ejemplo

</s:sequence>

</s:complexType>
</s:element>

</message>
. . .

. . .
<message name="sumaSoapIn">

<part name="parameters" element="s0:suma" />

WSDL
Ejemplo

. . .
<portType name="ServicioSumaSoap">
<operation name="suma">
<input message="s0:sumaSoapIn" />

<output message="s0:sumaSoapOut" />

</operation>
</portType>
. . .
<binding name="ServicioSumaSoap" type="s0:ServicioSumaSoap">

<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="suma">
<soap:operation soapAction="http://tempuri.org/suma" style="document" />

<input> <soap:body use="literal" /> </input>
<output> <soap:body use="literal" /> </output>

</operation>

</binding>
<service name="ServicioSuma">
<port name="ServicioSumaSoap" binding="s0:ServicioSumaSoap">
<soap:address location="http://localhost/Suma/Service1.asmx" />
</port>
</service>
</definitions>

13

UDDI
Definición
  • Links de descarga
http://lwp-l.com/pdf11389

Comentarios de: XML, Servicios Web y Web Semántica (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad