Computación distribuida.
Sistemas integrados.
Aplicaciones en diferentes lenguaje de programación y plataformas.
Nuevos términos XML, WSDL, SOAP, XML-RPC, ebXML, JAXB, JAX-WS, JAX-RPC, JAX-RS
Para que todo esto?
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
Web services SOAP con JAX-WS
1. Servicios Web
SOAP
Diego
Armando
Gómez
M.
dgomez@vortexbird.com
Sun
Cer5fied
Java
Associated.
Sun
Cer5fied
Java
Programmer.
Sun
Cer5fied
Web
Component
Developer.
Sun
Cer5fied
Business
Component
Developer
5
Derechos
reservados
2014
2. Introducción
S Computación
distribuida.
S Sistemas
integrados.
S Aplicaciones
en
diferentes
lenguaje
de
programación
y
plataformas.
S Nuevos
términos
XML,
WSDL,
SOAP,
XML-‐RPC,
ebXML,
JAXB,
JAX-‐
WS,
JAX-‐RPC,
JAX-‐RS
S Para
que
todo
esto?
3. Que
es
un
WebService?
S Un
WebService
es
una
pieza
de
soYware
iden5ficada
por
un
URI
(Uniform
Resource
Iden5fier).
S Su
medio
de
comunicación
se
fundamenta
en
el
uso
de
XML.
S XML
S XML
Namespace,
XML
Schema,
Xpath,
XSLT.
S SOAP,
WSDL,
eb-‐XML.
5. Tradicional
C/S
vs.
Servicios
Web
Traditional C/S
"
"
Within enterprise
Tied to a set of
programming languages
" Procedural
" Usually bound to a
particular transport
" Tightly-coupled
" Efficient processing
(space/time)
Web Service
" Between enterprises
" Program language
independent
" Message-driven
" Easily bound to different
transports
" Loosely-coupled
" Relatively not efficient
processing
6. Web
Applica5on
vs.
Web
Services
Web Application
" User-to-program
interaction
" Static integration of
components
" Monolithic service
Web Service
" Program-to-program
interaction
" Possibility of dynamic
integration of
components (in the
future)
" Possibility of service
aggregation (in the
future)
7. Caracterís5cas
de
un
Servicio
Web.
S Basado
en
XML.
S Orientado
a
los
mensajes.
S Independiente
del
lenguaje
de
programación.
S Localización
puede
ser
dinámica.
S Ensamble
dinámico
y
agregación
de
servicios
dinámica.
S Accedidos
por
Internet.
S Bajo
acoplamiento.
S Basado
en
estándares
de
la
industria.
8. Ejemplo
de
uso
de
los
Servicios
Web
Distribucion
XML
CRM
XML
Internet
Manofactura
XML
XML
Logistica
“Crece la necesidad de un estándar liviano para
intercambio de datos entre aplicaciones de negocio”
10. Arquitectura
de
Servicios
Web
simple
Registry
2. Client Request
Service Location
1. Service Registers
PUBLISH
Web
Service
FIND
3. Client calls
Service
BIND
Service
Client
12. SOAP
S Simple
Object
Access
Protocol
S Protocolo
similar
S IIOP
para
CORBA
S JRMP
para
RMI
S XML
es
usado
para
codificación
de
datos.
S Protocolos
basados
en
“texto”
vs.
Protocolos
“binarios”
S Soporta
XML-‐based
RPC
13. QUE
NO
ES
SOAP
S No
es
un
modelo
de
componentes
S Este
no
remplaza
objetos
y
componentes,
ejemplo
EJB,
JavaBeans.
S No
es
un
lenguaje
de
programación
S Este
no
remplaza
a
Java,
Groovy
S No
es
una
solución
para
todo.
S Este
no
remplaza
otras
tecnologías
usadas
en
computación
distribuida
como
RMI.
14. QUE
DEFINE
SOAP?
S Message
Envelope
S Encoding
Rules
S RPC
Conven5on
S Binding
with
underlying
protocols
15. Formato
de
mensaje
SOAP
SOAP Message
SOAP Envelope
SOAP Header
Primary MIME part
(text/xml)
Header Entry
Header Entry
Attachment
Attachment
Attachment
SOAP Body
Body Entry
Body Entry
16. SOAP
Message
Envelope
S Encoding
informa5on
S
Header
S
Op5onal
S
Could
contain
context
knowledge
S
Security
S Transac5on
S Body
S
RPC
methods
and
parameters
S
Document
types
S
Contains
applica5on
data
17. SOAP
Message
Envelope
S Reglas
y
expresiones
de
5pos
de
datos
definidos
en
XML
S Basado
W3C
XML
Schema
S Valores
simples
S int,
string,
char,
double,
float
.
S enumera5ons,
arrays
de
bites
S Valores
complejos
S Structs,
arrays,
complex
types
20. QUE
ES
WSDL?
S Lenguaje
de
Descripción
de
Servicios
Web
S Es
un
mecanismo
para
no5ficar
los
servicios
(funcionalidades)
que
un
sistema
esta
publicando
y
que
son
accesibles
a
terceros.
21. QUE
ES
WSDL?
S Endpoint
se
compone
de
dos
partes
S Definición
de
operaciones
y
mensajes
S Protocolo
de
red,
conectores
y
formato
de
mensajes.
S Porque
esta
separación?
S Mejora
la
reusabilidad.
22. PORQUE
WSDL?
S Permite
la
comunicación
automá5ca
S Maquinas
pueden
leer
el
WSDL
S Maquinas
pueden
invocar
un
servicio
definido
en
el
WSDL
S
Descubrible
por
un
registry.
S Arbitraje
S Herramientas
de
terceros
pueden
verificar
la
comunicación
basado
en
el
WSDL.
25. ARQUITECTURA
SERVICIOS
WEB
UDDI
Registry
2. Client Request
Service Location
FIND
1. Service Registers
PUBLISH
Web
Service
3. Client calls
Service
BIND
Service
Client
UDDI define una forma de publicar and encontrar
información de servicios.
26. UDDI
(Universal
Descrip5on,
Discovery
and
Integra5on)
S “Paginas
blancas”
S Direcciones,
contactos
e
iden5ficadores
conocidos.
S “Paginas
amarillas”
S Categorizacion
industrial.
S Industry:
NAICS
(Industry
codes
-‐
US
Govt.)
S Product/Services:
UN/SPSC
(ECMA)
S Loca5on:
Geographical
taxonomy
S “Paginas
verdes”
S Información
técnica
de
los
servicios.
31. FUNCIONAMIENTO
“Sistemas de Empresa”
El sistema puede
“mostrarle” a otros,
cuales funciones esta
“publicando” usando
WSDL
“Sistemas
Clientes”
<WSDL>
34. JavaEE
y
los
Web
Services
B2B
Applications
Existing
Applications
B2C
Applications
Web
Services
Application Server
Wireless
Applications
Enterprise
Information
Systems
35. JavaEE
y
los
Web
Services
S JavaEE
S Es
una
arquitectura
basada
en
diferentes
estándares
(IIOP,
RMI).
S Lleva
más
de
13
años
en
el
mercado,
en
un
momento
en
donde
XML
no
era
tan
popular.
S Los
contenedores
de
aplicaciones
Web
proveen
mecanismos
y
librerías
para
soportar
XML
y
SOAP
(JAXP
y
JAX-‐RPC,
JAX-‐WS,
JAX-‐RS)
S POJO
annota5on
(JSR
181)
36. JavaEE5
Web
Services
Metadata.
S JavaEE
S El
contenedor
provee
la
funcionalidad
de
WebServices
S @WebServices.
S Solo
basta
con
poner
las
anotaciones
en
las
clases
y
se
convierten
en
WebServices.
S @WebMethod
S Especificación
JSR181
37. FRAMEWORKS
S Java
provee
un
conjunto
de
u5lidades
y
librerías
(Motores
de
Web
Services)
S AXIS
S AXIS2
S Cel5x
S Xfire
S Apache
CXF
S Metro
(glassfish
project)
S Spring
Web
Services
S JBossWS
38. AXIS2
S Proyecto
WS
apache
S Framework
para
construcción
de
aplicaciones
cliente
servidor
SOAP
S Conjunto
de
Herramientas
S Monitor
de
paquetes
TCP/IP
S WSDL2Java
S Java2WSDL
S hpp://ws.apache.org/axis2/
39. XFire
S Proyecto
de
codehaus.
S Es
un
contenedor
de
Servicios
Web
S Usa
un
modelo
de
procesamiento
SOAP
messages
via
STAX.
S MyEclipse
provee
un
conjunto
de
u5lidades
para
desarrollo
con
Xfire.
S hpp://xfire.codehaus.org/
40. METRO
S Proyecto
de
dev.java.net.
S Soporta
el
estándar
de
JAX-‐WS.
S Provee
un
alto
rendimiento,
extensible,
fácil
de
usar.
S hpps://metro.dev.java.net/
41. CONCLUSIÓN
S Los
servicios
Web
provee
un
nuevo
paradigma
de
programación
para
comunicación
de
programa
a
programa.
S Los
servicios
web
son
basados
en
estándares
abiertos.
S La
plataforma
JEE
provee
un
gran
soporte
para
el
desarrollo
de
servicios
Web.
42. CONCLUSIÓN
S Es
posible
que
aplicaciones
en
diferentes
lenguajes
de
programación
ínter
operen.
Java JEE
Sistemas
legados
.Net
PL/SQL