Publicado el 22 de Enero del 2019
873 visualizaciones desde el 22 de Enero del 2019
359,5 KB
27 paginas
:(%6HUYLFHV
,QWHURSHUDELOLGDGHQWUH$SOLFDFLRQHV
0RGHOR3URJUDPD3URJUDPD «33
&RQWHQLGR
• Servicios en la Web
• El papel de XML y la plataforma Java
• Las APIs de Java para XML
– JAXP
– JAXB
– JAX-RPC
– JAXR
– JAXM
• Ejemplo
– Códigos
– Instalación y ejecución
1
6HUYLFLRVHQOD:HE
• Es un servicio disponible en Internet que utiliza sistema de intercambio
de información vía XML y no es dependiente de ningún sistema
operativo ni de algún lenguaje de programación.
XML
Windows 2000
Perl
XML
Linux
Java
• Una aplicación envía una request a un servicio en una determinada
URL usando el protocolo SOAP encima de HTTP. El servicio Web recibe
la petición, la procesa y devuelve una respuesta.
• Ejemplo típico:
• un servicio Web de valores de bolsa donde la request solicita el
valor de una acción determinada y la respuesta ofrece ese
valor. En este caso la request y la response son partes del
mismo método de llamada.
6HUYLFLRVHQOD:HE
• Otro ejemplo es un servicio que ofrece una ruta eficiente para la
entrega de productos. En este caso, una empresa envía una request
con los destinos, el servicio Web los procesa y determina la ruta de
mínimo coste. En esta caso, el algoritmo que resuelve la ruta óptima
podría tardar y por tanto el response no debe formar parte de la
request.
• En muchos casos, una empresa puede ser consumidora de servicios
Web y al mismo tiempo ofrecer sus servicios Web a otras.
• Típico ejemplo es un distribuidor al por mayor tiene un rol de
consumidor cuando usa el servicio Web para comprobar si una
empresa le ofrece un producto determinado y será un
proveedor de servicio Web en el caso de que ofrezca a sus
clientes información de sus productos.
2
(OUROHGH;0/\ODSODWDIRUPD-DYD
• Los Web Services dependen de la habilidad de las
diferentes compañías (partes) en comunicarse entre sí
incluso si utilizan diferentes plataformas.
• XML (e;tensible 0arkup /anguage), es un lenguaje de
marcado que ofrece portabilidad de los datos. XML se usa
ya en casi todos los entornos Web y cada vez más, las
empresas apuestan por este lenguaje para intercambio de
datos.
• También la plataforma Java ha sido clave para la
evolución de esta tecnología. SUN tiene tiene una API
Java para XML haciendo la integración en las aplicaciones
muy interesante. KWWSMDYDVXQFRPZHEVHUYLFHV
5ROHVHQORV:HE6HUYLFHV
• Service Provider
– Implementa el servicio y lo hace disponible en Internet.
• Service Requestor
– Consumidor de servicios. Inicializa un nuevo servicio
Web creando una nueva conexión con y realiza
peticiones XML.
• Service Registry
– Directorio de servicios centralizado. El registry ofrece
un lugar centralizado donde los desarrolladores puedan
publicar nuevos servicios o encontrar los ya publicados.
3
/RV3URWRFRORVHQ:HE6HUYLFHV
• Service Transport
– HTTP, SMTP, FTP, …
• XML messaging
– XML-RPC, SOAP XML.
• Service Description
– WSDL
• Service Discovery
– UDDI
;0/53&
• Es un protocolo sencillo que utiliza mensajes XML para
realizar RPC.
• Las Request son codificadas en XML y enviadas vía HTTP
Post.
• Las XML Response son devueltas en el cuerpo de un
mensaje de Response HTTP.
• XML-RPC es independiente de la plataforma.
• Permite la comunicación entre aplicaciones diversas.
4
(MHPSORGH5HTXHVW ;0/53&
"[PO YHUVLRQ ‡·!
PHWKRG&DOO!
PHWKRG1DPH!ZHDWKHUJHW:HDWKHUPHWKRG1DPH!
SDUDPV!
SDUDPV!
PHWKRG&DOO!
SDUDP!YDOXH!YDOXH!SDUDP!
(MHPSORGH5HVSRQVH;0/53&
"[PO YHUVLRQ ‡·!
PHWKRG5HVSRQVH!
SDUDP!YDOXH!LQW!LQW!SDUDP!
SDUDPV!
SDUDPV!
PHWKRG5HVSRQVH!
5
62$36LPSOH2EMHFW $FFHVV3URWRFRO
• Es un protocolo basado en XML para el intercambio de
información entre computadores.
• Es independiente de la plataforma.
• La forma normal de usarlo es como RPC sobre HTTP.
• SOAP es más complejo que XML-RPC. Hace uso de XML
namespaces y de XML Schemas. Sin embargo, el cuerpo
de la Request SOAP especifica tanto el método a ejecutar
como los parámetros.
(MHPSORGHPHQVDMH62$3
9DORUGHEROVD
2$7
C%DE43*2 12F#G1IHI:KJ%L
-.-.-'
"!#$ %&'(&
!)*++,
*+/0 1*2 4365 3'
1>?@>$7BA
$91 491;:<4= $,
>>>>
$91 491;:?M@ 49NOD$,
$9$,
QPR P#+OS
LT$7U :?VRW)X;L
$=
Z915 4A
QPR %:?Z[#\],
QPR %:Z[#\F
^_7BA
9*,
QPR %:Z[#\],
492`0S
9N%I<4A
b%`<$a
QPR %:?Z[#\],
d_ 1;M@E*+I$36E`4 $3S
7c,
*+<7Bg$A
a]XTbih
7j,
d_ 1OM2E*+I$36E`4 4 %3S
_PR %:?Z[i\],
b%`<%a
$= $a
_P_ 4:?Z[#\Q,(Z915 4A
D1KO=$,
0F
2 e>%7BA
*T<47Bg%A
2 $a
>$7BA
*2D 47UE*'
1*2D 47UE*'
*+E4=4'
D1IO=$,
>$7BA
9*,(7fF#G+*2$7U :?V)W)X;La
$3N$@*2E4= 4915 4A
*+E4=4'
$=
$36N$*2E%= 492`0S
9N$
6
8
8
Y
a
Y
Y
Y
Y
a
Y
Y
Y
(MHPSORGHPHQVDMH62$3
C%DE43*2 12F#G1IHI:KJ%L
5HVSRQVHGH
!#$ %&'(&lkm4mU
n
1>?@>$7BA
$91 491;:<4= $,
>>>>
$91 491;:?M@ 49NOD$,
$=
QPR %:?Z[#\],
Z915 4A
9*,
QPR %:Z[#\F
D1KO=$,
9N%I<4A
492`0S
QPR %:Z[#\],
0F
b%`<$a
d_ 1OM2E*TI$36E`4 4 $3S
2 4W0 *=$9*2 e>%7BA
$3S
2 $a&1m4m$'
k0&
$3S
7c,
d_ 1;M@E*+I$36E`4 $3S
QPR %:Z[#\Q,(b%`<$a
$= $a
2 $a
2 4Wi *=$9*2 $a
_P_ 4:?Z[#\Q,(Z915 4A
QPR %:?Z[#\],
7j,
^_7BA
1*2D 47UE*'
D1IO=$,
>$7BA
*2D 47UE*'
*+E4=4'
>$7BA
$3N$@*2E4= 4915 4A
*+E4=4'
$=
$36N$*2E%= 492`0S
9N$
9*,(7fFiG2*2%7U :?V)W)X;La
:6’/:HE6HUYLFHV ’HVFULSWLRQ /DQJXDJH
• WSDL es una gramática XML para especificar
una interfaz pública de un servicio Web.
• Esta interfaz puede incluir información de:
• métodos disponibles,
• tipos de datos de los mensajes,
• protocolos a utilizar,
• dirección donde localizar el servicio.
7
8
8
Y
a
Y
Y
Y
Y
Y
Y
Y
(MHPSORGH:6’/
• < ?xml version= "1.0"?>
– < definitions name= "StockQuote"
targetNamespace= "http://example.com/stockquote.wsdl"
xmlns:tns= "http://example.com/stockquote.wsdl"
xmlns:xsd1= "http://example.com/stockquote.xsd"
xmlns:soap= "http://schemas.xmlsoap.org/wsdl/soap/"
xmlns= "http://schemas.xmlsoap.org/wsdl/">
– < types>
• < schema targetNamespace= "http://example.com/stockquote.xsd"
xmlns= "http://www.w3.org/2000/10/XMLSchema">
– < element name= "TradePriceRequest">
» < complexType>
» < all>
» < element name= "tickerSymbol" type= "string"/>
» < /all>
» < /complexType>
– < /element>
– < element name= "TradePrice">
» < complexType>
» < all>
» < element name= "price" type= "float"/>
» < /all>
» < /complexType>
– < /element>
• < /schema>
– < /types>
(MHPSORGH:6’/
< message name= "GetLastTradePriceInput">
< part name= "body" element= "xsd1:TradePriceRequest"/>
< /message>
< message name= "GetLastTradePriceOutput">
< part name= "body" element= "xsd1:TradePrice"/>
< /message>
< portType name= "StockQuotePortType">
< operation name= "GetLastTradePrice">
< input message= "tns:GetLastTradePriceInput"/>
< output message= "tns:GetLastTradePriceOutput"/>
< /operation>
< /portType>
o
8
(MHPSORGH:6’/
p_qr
{|K}1~2@Q1}|Kx1}
|1xz+
~Txz;
}6u2
O}1v||z;
~T}wl+#x|?Tv
;|6
vtxKr
s1uls1vwex4yRz?{|K}1~2@Q1}|Kx{1}1v4r
s1uz#|x4yRzI|Is1
@
s1tr
s1tr
s1ue
;|
s1t4r
qr
x4yRzt}1~2wex1s|z
p)
O}1v
|6vs1
+}
|OyRz;|6|
wl
2
O~21xwev
2
O}1v
}s.s1vwx4yRzI#x|?Tv
;|6
vtxKr
p)}x6v|r
~Txz+
}x6v|r
}s
p)
O}1v
2x@v1wl
}s%yRz;||
x
O}1v$~O|r
p_r
s|O
p)
O}1v
q}t1e1
Ox4yRz;
|Kx6v
z;1
p_r
s|;
p)}||;
z;1
|Kx6v
q}t1e1
Ox4yRz;
p)
O}1v
p_2}||O
}s%
p_2}x6v|r
p_qr
s1u$
s1tr
~Txz+
~Txes1vwx4yRz?{|K}1~2@Q1}|Kx1{x
r
p)
Ox
r
p)t}1~2wexs|Kv@|r
~Txp_2t}1~2wex1s|Kv|r
6
;|i
Ox
r
}s%
{|K}1~2@Q1}|Kx4r
s1uz+
s1tr
p_}
|)s1vwexyRz?{|K}1~2@Q1}|x1}
|Iz_qr
}~Tv|r
~T}w.2
;|K}1~2@1}|Kxz?
x
}s%yRz;||
p)
O}1v
p_}
|O
p_2
Ox
r
~Tx4
}s1
|r
sr
p_2txKr
}s%_]Kr
vtt46x
O
s1u$yRzI|s1
@
2x@vwl
str
8’’,8QLYHUVDO’HVFULSWLRQ’LVFRYHU\ DQG
,QWHJUDWLRQ RI :HE6HUYLFHV
• UDDI representa la capa de búsqueda de
servicios dentro de los protocolos Web Services.
• Es una especificación acerca de la información
de los registros distribuidos basados en la Web.
• http://www.uddi.org
9
r
r
8’’,8QLYHUVDO’HVFULSWLRQ’LVFRYHU\ DQG
,QWHJUDWLRQ RI :HE6HUYLFHV
• El componente principal de UDDI es el registro
de negocios UDDI.
• Consiste en información de los servicios en tres
formas diferentes:
– Páginas blancas
– Incluye dirección, contacto, …
– Páginas amarillas
– Incluye categoría de compañías según taxonomías
estándar.
– Páginas
Comentarios de: Web Services (0)
No hay comentarios