Está en la página 1de 29

XML, Servicios Web y

Web Semntica

Departamento de Informtica
Universidad de Oviedo

Servicios Web
Antecedentes y Justificacin
SOAP, WSDL, UDDI
Utilizacin de Servicios Web
Creacin de Servicios Web

Departamento de Informtica
Universidad de Oviedo

Servicios Web
Posible definicin
Aplicaciones auto-contenidas, auto-descritas que
pueden ser publicadas, localizadas e invocadas a
travs de la Web
Una vez desarrolladas, otras aplicaciones (y otros
servicios Web) pueden descubrirlas e invocar el
servicio dado
Peticin

Internet

Servicio
Web
Respuesta

URL

Servicios Web
Factores que influyeron en su aparicin
ComputacinDistribuida:RPC,CORBA,RMI,DCOM
Sistemasfuertementeacoplados
Integracindeaplicaciones:EAI(Enterprise Application Integration)
ReaccinfrenteasistemasERPmonolticos
AparicindeXML
Adopcinporprincipalesindustrias
XMLRPC
NecesidaddeintercambiosB2B
SistemasdeintegracinEDI,RosettaNet,ebXML
ComercioelectrnicoyburbujadeInternet
Necesidaddenuevasfrmulas
Microsoftvs.Java
Compatibilidad

Servicios Web
Objetivos
Independencia dellenguajeydelaplataforma
Separacindeespecificacindelaimplementacin
Interoperabilidad
Utilizacindeestndares:XML,SOAP,WSDL,UDDI...
Acoplamientodbil:Sistemasbasadosenmensajes
Interaccionessncronas yasncronas
AtravsdeInternet
Sincontrolcentralizado
UtilizacindeProtocolosestablecidos
Consideracionesdeseguridad
Modularidad yReusabilidad deservicios
Escalabilidad: Aplicacionesunoaunofrenteaunoamuchos

Servicios Web
Principales Vocabularios
Protocolodetransporte
HTTP/HTTPs (principalmente)
Codificacindedatosymensajes
SOAP(SimpleObject AccessProtocol)
Descripcindelservicio
WSDL(WebService Description Language)
Bsquedaylocalizacindeservicios
UDDI(UniversalDiscovery,Description and Integration)
Otra definicin
Programas accesibles en Internet que esponen su funcionalidad
recibiendo/enviando mensajes SOAP a travs de HTTP(s) y describen su
interfaz en WSDL

Servicios Web
Principales Vocabularios
UDDI
ra
L
ist
g
SD
re
W
a
HTTP
lic
b
u
p

en
ob
cu
tie
en
ne
tra
W
SD
L

petici
peticin SOAP (XML)

Implementaci
Implementacin
servicio Web

respuesta SOAP (XML)

Consumidor
servicio Web

Servicios Web
Arquitectura de Aplicaciones
Dispositivo del
Cliente

Base Datos

HTML
LT
XS

XML
SOAP
Servicio Web

XSLT

WML

XS
LT

VoiceXML

Servicios Web
Arquitectura de Aplicaciones
Facturaci
Facturacin

SOAP

SOAP
Internet

SOAP

XML

SOAP

Gesti
Gestin de
Usuarios

Aplicaci
Aplicacin
del usuario

SOAP
Conversi
Conversin de
Monedas

SOAP
Evolucin
SOAP: Define el formato de los mensajes
SOAP = Simple Object Access Protocol
Aunque tiene poco de objetos...
Evolucin
Desarrollado a partir de XML-RPC
SOAP 1.0 (1999), 1.1 (2000), 1.2 (2002)
Participacin inicial de Microsoft
Adopcin posterior de IBM, Sun, etc.
Aceptacin industrial

SOAP
Formato
Envelope
Header
Header Key
Header Key

Body

SOAP
Ejemplo

<?xml version=1.0 ?>


<soap:Envelope xmlns:soap=http://www.w3.org/2001/12/soap-envelope
xmlns:p =http://www.mafia.it/pizzas>
<soap:Header>
<p:prioridad> urgente </p:prioridad>
<p:origen>pepe@oviedo.es</p:origen>
</soap:Header>
<soap:Body>
<p:encargo>
<p:pizza nombre=Margarita>
<p:tamao>familiar</p:tamao>
<p:comentario>con mucho queso</p:comentario>
</p:pizza>
</p:encargo>
</soap:Body>
</soap:Envelope>

Cabecera

Contenido

SOAP
Formato general
SOAPespecifica elformato demensajes
Esindependiente delprotocolo detransporte
Aunque sedefineunenlace(binding)conHTTP
envelope:Pueden especificarse datos globales
(codificacin,espacios denombres,etc.)
Contiene:header(opcional)+body(obligatorio)
bodycontiene datos enformato XML
headercontiene metainformacin
Extensiones obligatorias/opcionales

SOAP
Header
header incluyeinformacinsobreelmensaje
Facilitafuturasextensiones
Seguridad,transacciones,etc.
Informacinprocesableporintermediarios
Atributospredefinidos
mustUnderstand (true/false)
Sielelementonopuedeprocesardichainformacin
devuelveunerror
actor
Indicaqu nododebeprocesarlainformacin
Sinoaparece,debeprocesarlaelnodoreceptorfinal

SOAP
Fault
fault:Formatopredefinidodemensajesdeerror
Seincluyeelelementofault enelcuerpo
Subelementos predefinidos
faultcode:Cdigodelerror
Predefinidos:VersionMismatch,MustUnderstand,
DTDNotSupported,DataEncodingUnknown,
Sender,Receiver
faultstring:Explicacinlegibleporpersonas
detail:Informacinespecficadelaaplicacin
PuedecontenerelementosXML
faultactor:URIdelnodoquecaus elerror

SOAP
Fault
<?xml version=1.0 ?>
<soap:Envelope xmlns:soap=http://www.w3.org/2001/12/soap-envelope>
<soap:Body>
<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>
</p:detalles>
</detail>
</p:pizza>
</soap:Fault>
</soap:Body>
</soap:Envelope>

SOAP
Codificacin
Atributo encodingStyle definereglas decodificacin
Algunos tipos bsicos predefinidos
Enteros,cadenas,flotantes
Contiene reglas especficas para:
Estructuras
Arrays
Referencias
Secomplementa conXMLSchemas
Pueden definirse otros sistemas decodificacin

SOAP
Codificacin
Tipos b
bsicos
<?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>
<soap:Body>
<p:pizza>
<p:cdigo xsi:type=soap:int>234</p:comida>
<p:tamao xsi:type =soap:string>familiar</p:tamao>
</p:pizza>
</soap:Body>
</soap:Envelope>

SOAP
Codificacin
Estructuras
struct Pizza {
int cdigo;
string nombre;
};

<Pizza xmlns=cualquier_URI>
<cdigo>234</cdigo>
<nombre>Barbacoa</nombre>
</Pizza>

Arrays
<pizzas xsi:type=soap:Array soap:arrayType=p:Pizzas[2]>
<pizza> <cdigo>234</cdigo>
<nombre>Barbacoa</nombre>
</pizza>
<pizza><cdigo>237</cdigo>
<nombre>Barbacoa</nombre>
</pizza>
</pizzas>

Arrays parciales

SOAP
Codificacin

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


soap:offset=[4]>
5 y 6
6
<pizza> <cdigo>234</cdigo>
elemento
<nombre>Barbacoa</nombre>
</pizza>
<pizza><cdigo>237</cdigo>
<nombre>Barbacoa</nombre>
</pizza>
</pizzas>
<pizzas xsi:type=soap:Array soap:arrayType=p:Pizzas[10]>
<pizza soap:position=2> <cdigo>234</cdigo>
2 y 5
5
<nombre>Barbacoa</nombre>
elemento
</pizza>
<pizza soap:position=5 ><cdigo>237</cdigo>
<nombre>Barbacoa</nombre>
</pizza>
</pizzas>

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
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<suma xmlns="http://tempuri.org/">
<a>3</a>
<b>2</b>
</suma>
</soap:Body>
</soap:Envelope>

SOAP
Ejemplo de respuesta
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
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<sumaResponse xmlns="http://tempuri.org/">
<sumaResult>5</sumaResult>
</sumaResponse>
</soap:Body>
</soap:Envelope>

11

WSDL
Evolucin
WSDL (Web Services Description Language)
Describe:
Qu puede hacer el servicio
Dnde reside
Cmo invocarlo
Vocabulario basado en capas
Es posible concentrarse en una capa cada vez
Evolucin: Iniciativa conjunta de Ariba, IBM y Microsoft
(2001) Propuesto a W3C como recomendacin (WSDL 1.1)
(2003) En desarrollo WSDL 2.0

WSDL
Estructura del documento
definitions
types

Tipos de datos usados en los mensajes (XML Schema)

message

Definicin abstracta de los datos transmitidos.

portType

Conjunto de operaciones abstractas

binding
port
service

Protocolo concreto y especificaciones de los


formatos de las operaciones del mensaje
Especifica una direccin para el enlace definiendo
un nico punto de destino
Coleccin de puntos de destino

12

WSDL
Ejemplo

<?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" />
</s:sequence>
</s:complexType>
</s:element>
...
<message name="sumaSoapIn">
<part name="parameters" element="s0:suma" />
</message>
...

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
Definicin
UDDI(UniversalDiscovery,Description and Integration)
ConsorcioformadoporIBM,Hp,Sun,Microsoft,Oracle,etc.
UDDI1.0(2000)Fundacindelregistro
UDDI2.0(2001)Alineacinconestndaresytaxonomadeservicios
msflexible
UDDI3.0(2002)Interaccindeimplementacionespblicasyprivadas

2partes
Descripcindenegocios
Pginasblancas(informacindecontacto)

amarillas(informacindelaindustria)

verdes(informacintcnicayespecificaciones)

Registrodeservicios

UDDI
Definicin
Provider: Informacin sobre la
entidad que ofrece el servicio

tModel: Descripciones de
especificaciones de servicios

0n

Service: Informacin
descriptiva sobre una familia
particular de ofertas
0n

Binding contiene referencias


a tModels.
tModels. Estas referencias
declaran las especificaciones
del interfaz
0n

Binding: Informacin tcnica


sobre un punto de entrada a un
servicio

14

UDDI
Funcionamiento
1.
1.

El
El desarrollador
desarrollador construye
construye un
un
servicio
servicio para
para convertir
convertir
monedas
monedas

servicio Web
conversi
conversin

2.
2.

El
El desarrollador
desarrollador registra
registra yy
clasifica
clasifica el
el servicio
servicio Web
Web

5.
5.

El
El usuario
usuario construye
construye una
una
aplicaci
n que
aplicaci
aplicacin
que consuma
consuma el
el
servicio
Web
directamente
servicio Web directamente

SOAP

Servicios
UDDI

3.
3.

El
El usuario
usuario pregunta
pregunta aa UDDI
UDDI por
por
servicios
n
conversi
servicios de
de conversi
conversin

4.
4.

El
El usuario
usuario determina
determina el
el servicio
servicio
de
n m
s apropiado
conversi
m
de conversi
conversin
ms
apropiado

Utilizacin de un Servicio Web


Ejemplos
Consltar listadosdeserviciosWeb
www.xmethods.net
www.bindingpoint.com

Pueden
ejecutarse

15

Utilizacin de servicios Web


Ejemplos: Google

Utilizacin de servicios Web


Ejemplos: Amazon

16

Implementacin de Servicios Web


Posibilidades
Java
APIs deSun:JAXRPC,JAXM,SAAJ,
LibrerasdeApache:Axis

Microsoft.NET
ASP.NET paraC#,VBasic,etc.
MSSOAPToolkit

Otros:
SOAP::Lite(Perl),NuSOAP (PHP),Axis (C++)

Implementacin de Servicios Web


APIs de Java
SAAJ (SOAP with Attachments API for Java)
Tratar mensajes SOAP como objetos Java
JAX-RPC (Java API for XML based RPC)
Modelo de programacin
Conversin WSDL/XML Java
Manejo de SOAP y SOAP con Attachments
API para cliente: WSDL, Invocacin y proxy dinmico
JWSDL
Acceso a descripciones WSDL
JAXR (Java API for XML Registries)
Acceso a registros de servicios Web (UDDI)

17

Implementacin de Servicios Web


Apache Axis
Sucesor deApacheSOAP(softwareabierto)
Soporta JAXRPCySAAJ
Arquitectura flexibleyextensible

Necesita servidor deaplicaciones (por ejemplo Tomcat)

Validar la instalacin:
http://localhost:8080/axis

Implementacin de Servicios Web


Creacin de un Cliente

WSDL

adaptador

stubs

Descripcin
del servicio

WSDL2Java

clases Java
generadas

javac

cliente

cdigo
cliente

18

Implementacin de servicios Web


Creacin de un cliente
1.- Acceder a WSDL
http://petra.euitio.uniovi.es/~labra/ws/suma.php?wsdl
Almacenar como suma.wsdl
2.-Generar stubs
> java org.apache.axis.wsdl.WSDL2Java -p suma suma.wsdl
3.- Comprobar clases generadas
> ls suma/*.java
ServicioSuma.java
ServicioSumaBindingStub.java

ServicioSumaLocator.java
ServicioSumaPortType.java

4.- Compilar clases generadas


> javac suma/*.java

Implementacin de servicios Web


Creacin de un cliente
ClienteSuma.java
import suma.*;
public class ClienteSuma {
public static void main(String[ ] args) throws Exception {
try {
ServicioSuma
s = new ServicioSumaLocator();
ServicioSumaPortType p = loc.getServicioSumaPort();
System.out.println("2 + 3 = " + p.suma(2,3));
} catch (Exception e) {
System.err.println("Excepcin: " + e);
}
}
}

4.- Compilar cliente


> javac CienteSuma.java
5.-Ejecutar cliente
> java ClienteSuma
2+3=5

19

Implementacin de un servicio Web


WSDL2Java
WSDL2Java genera las siguientes clases:
Para cada servicio
Una interfaz del servicio
Una implementacin del servicio (locator)
Para cada binding
Una clase stub que implementa la interfaz
Para cada portType
Una interfaz Java que permite acceder a las operaciones del servicio
Para cada entrada en la seccin de tipos (type)
Una clase Java
Un holder (una clase con un nico valor de dicha clase)

ServicioSuma
suma

ServicioSuma
s = new ServicioSumaLocator();
ServicioSumaPortType p = loc.getServicioSumaPort();
p.suma(2,3);

Implementacin de un servicio Web


Creacin de un cliente
Ejercicio:ConsultartemperaturadelaeropuertodeAvils...

http://live.capescience.com/wsdl/GlobalWeather.wsdl
ClienteTemp.java
public class ClienteTemp {
public static void main(String args[]) throws Exception {
try {
GlobalWeather_ServiceLocator loc = new GlobalWeather_ServiceLocator();
GlobalWeather_Port s = loc.getGlobalWeather();
System.out.println("Temperatura en Aeropuerto de Asturias: " +
s.getWeatherReport("LEAS").getTemperature().getString());
} catch (Exception e) {
System.err.println("Excepcin: " + e);
}
}
}

20

Implementacin de Servicios Web


Creacin de un Servicio Web
Mtodosimple:JWS
Suma.jws
public class Suma {
public int suma(int a, int b) {
return a + b;
}
}

Almacenar en:
<TOMCAT>\webapps\axis\Suma.jws

http://localhost:8080/axis/Suma.jws

Implementacin de Servicios Web


Creacin de un Servicio Web
UtilizarJWStienesuslimitaciones
Debedisponersedelcdigofuente
Loserroresaparecenentiempodeejecucin
Laclasenopuedetenerpackage
Slosepuedentransferirdatossimples
Nosepuedeconfigurarelservicio
Mtodoriguroso:WSDD(WebService Deployment Descriptor)
Permitedesplegar(deploy)yquitar(undeploy)servicios
Puedenutilizarseservicioscompilados
ControldelasConversionesdetipos

21

Implementacin de Servicios Web


Creacin de un Servicio Web
ServSuma.java
package ServSuma;
public class ServSuma {
public int suma(int a, int b){
return (a + b);
}
}

1.- Compilar servicio


> javac ServSuma.java
2.-Copiar ServSuma.class a
<TOMCAT>/webapps/WEB-INF/classes/ServSuma/ServSuma.class
Tambin puede dejarse un .jar en WEB-INF/lib

Implementacin de Servicios Web


Creacin de un Servicio Web
deploy.wsdd
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="ServSuma" provider="java:RPC">
<parameter name="className" value="ServSuma.ServSuma"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>

3.- Desplegar servicio


> java org.apache.axis.client.AdminClient deploy.wsdd
Processing file deploy.wsdd
<Admin>Done processing</Admin>
Puede ser necesario reiniciar servidor
4.- Acceder a
http://localhost:8080/axis/services/ServSuma

22

Implementacin de Servicios Web


Otras caractersticas de Axis
Invocacin dinmica
Dynamic Invocation Interface
Invocacin mediante Proxy
Conversin Java2WSDL
Permite generar WSDL a partir de clases/interfaces
Java
Generacin de ficheros WSDD para deploy/undeploy
Seguridad
Otros protocolos de transporte

Interoperabilidad
Acceso desde .NET a servicio en Java
1. AccesoaWSDLycreacindeStubs (oproxys)
> wsdl http://localhost:8080/axis/services/ServSuma?wsdl
...
Writing file 'C:\usr\labra\cursos\XMLInnova\WebServ\ClienteNet\ServSumaService.cs'.

EnalgunasversionesesnecesarioeditarServSumaService.cs ymodificar
this.URLparaqueincluyaelpuerto8080
2. Compilacindeproxys
> csc /t: library ServSumaService.cs
using System;

3. Creacindecliente

cliente.cs
4. Compilacindecliente

public class ClienteSumaNet {


public static void Main() {
ServSumaService srv = new ServSumaService();
Console.WriteLine("2 + 3 = {0}", srv.suma(2,3));
}}

> csc cliente.cs /reference:ServSumaService.cs

5. Ejecucin

> cliente
2+3=5

23

Interoperabilidad
Servicios Web en .NET

Interoperabilidad
Servicios Web en .NET

24

Interoperabilidad
Servicios Web en .NET

suma.php

Interoperabilidad
Servicios Web en PHP

<?php
include "nusoap.php";

$namespace = "http://petra.euitio.uniovi.es/~labra/ws/suma.php?wsdl";
$servidor = new soap_server;
$servidor -> configureWSDL ("ServicioSuma", $namespace,
"http://petra.euitio.uniovi.es/~labra/ws/suma.php");
$servidor -> wsdl -> schemaTargetNamespace = $namespace;
$servidor -> register ('suma', array ('a' => 'xsd:float', 'b' => 'xsd:float'),
array ('return' => 'xsd:float'),
'http://petra.euitio.uniovi.es/~labra/ws/suma.php', '', '', '', '' );
$servidor -> service ($HTTP_RAW_POST_DATA);
function suma ($a, $b) {
if (!$a || !$b) {
return new soap_fault ("Client", "", "Se necesitan dos argumentos");
}
if ((gettype ($a) != "integer" && gettype ($a) != "double") ||
(gettype ($b) != "integer" && gettype ($b) != "double")) {
return new soap_fault ("Client", "", "El tipo debe ser entero o real");
}
return $a + $b;
}
?>

25

Arquitecturas Orientadas a Servicios


Modelo tradicional
Datos
IVA

Algoritmos
IVA
Algoritmos
Envo

Aplicacin
Integrada

Compilacin

Aplicacin

Tiempo de
construccin

Fuente
datos

datos
envo

Tiempo de
configuracin

Tiempo de
ejecucin

Arquitecturas Orientadas a Servicios


Modelo Orientado a Servicios
servicio
clculo
IVA

Aplicacin

Compilacin

Aplicacin
Integrada

servicio
gastos
envo
Tiempo de
construccin

Tiempo de
ejecucin

26

Arquitecturas Orientadas a Servicios


Principales caractersticas
Importanciadelasinterfaces
Descripcinrigurosadeinterfaces(legiblespormquinas)
Recomendacin:PartirdeWSDL+XMLSchema
Modelosdbilmenteacoplados
Sistemasdecomunicacinasncrona
Estilodocumentovs.estiloRPC
Colasdemensajes
Ej.Solicitarunlibro
Interoperabilidad
Independenciadelenguajesyplataformas
Adaptacindearquitecturasyaexistentes
Utilizacindeestndares
ModeloRESTvs SOAP

Servicios Web
Retos
Gestin de servicios Web
WSDM - Web Services Distribution Management
Agregacin de servicios
Ejemplo. Reserva de avin + hotel
Evolucin de los servicios
Cambio de la Interfaz
Modelizacin de procesos de negocios
BPEL - Business Process Execution Language
Contratos, facturacin
Quin gana dinero? Qu pasa cuando algo falla?
Seguridad y fiabilidad
XML Security
Calidad de servicios
Tiempos de respuesta, soporte, monitorizacin, etc.

27

Servicios Web
Mitos...

Web para ordenadores?


... no confundir con Web semntica
Nueva arquitectura?
...en realidad, usan arquitecturas ya existentes
Obligarn a cambiar de plataformas?
... es posible incorporar sistemas heredados
Lengua universal para las aplicaciones?
...no proporcionan semntica, slo una sintaxis comn
Nuevo modelo de negocios?
...el negocio es el servicio, no la forma en que se suministra
Ventaja competitiva?
...peligro de adoptar tecnologa inmadura.
Enlace automtico a socios desconocidos?
...modelo de negocio no desarrollado
Estndares bien definidos?
...algunos se estn desarrollando y otros ni siquiera se han
desarrollado
Es lo mismo que .NET?
...Independiente de plataforma...

Ms informacin
www.wsindex.org
InformacindeserviciosWebyWebsemntica
www.searchwebservices.com
PortaldeserviciosWeborientadoaempresas
www.webservices.org
SobreserviciosWeb
www.xmethods.net
ListadeserviciosWeb
www.soapware.org
PortalsobreSOAP
www.w3c.org/2002/ws
EspecificacionesrelacionadasconserviciosWeb

28

Repaso...
Tecnologas XML
DefinicindeXML
DTD
Namespaces
XMLSchema
TransformacindeXML
XSL=XSLT+XPath +XSLFO
VocabulariosXML
XHTML,MathML,SVG,SMIL,WML,VoiceXML
TratamientodeXML
SAX,DOM,JAXP,JAXB
TransportedeXML:ServiciosWeb
SOAP,WSDL,UDDI

29

También podría gustarte