45
Servicios Web SOAP Diego Armando Gómez M. [email protected] Sun Cer5fied Java Associated. Sun Cer5fied Java Programmer. Sun Cer5fied Web Component Developer. Sun Cer5fied Business Component Developer 5 Derechos reservados 2014

Web services SOAP con JAX-WS

Embed Size (px)

DESCRIPTION

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?

Citation preview

Page 1: Web services SOAP con JAX-WS

Servicios Web SOAP

Diego  Armando  Gómez  M.  [email protected]  Sun  Cer5fied  Java  Associated.  Sun  Cer5fied  Java  Programmer.  Sun  Cer5fied  Web  Component  Developer.  Sun  Cer5fied  Business  Component  Developer  5  

Derechos  reservados  2014  

Page 2: Web services SOAP con JAX-WS

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?  

Page 3: Web services SOAP con JAX-WS

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.  

Page 4: Web services SOAP con JAX-WS

Computación  distribuida  

Client-Server(C/S) silos

Web-based computing

Servers

Clients

Clients

Servers

Internet

PDA Cell Phone

Server

Laptop Kiosk

Workstation

Web Services/Peer-to-Peer

SOA computing

Page 5: Web services SOAP con JAX-WS

Tradicional  C/S  vs.  Servicios  Web  

" Within enterprise " Tied to a set of programming languages " Procedural " Usually bound to a particular transport " Tightly-coupled " Efficient processing (space/time)

"  Between enterprises "  Program language independent "  Message-driven "  Easily bound to different transports "  Loosely-coupled "  Relatively not efficient processing

Traditional C/S Web Service

Page 6: Web services SOAP con JAX-WS

Web  Applica5on  vs.  Web  Services  

" User-to-program interaction " Static integration of components " Monolithic service

"  Program-to-program interaction "  Possibility of dynamic integration of components (in the future) "  Possibility of service aggregation (in the future)

Web Application Web Service

Page 7: Web services SOAP con JAX-WS

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.  

Page 8: Web services SOAP con JAX-WS

Ejemplo  de  uso  de  los  Servicios  Web  

CRM

Logistica

Distribucion

Manofactura Internet XML

XML

XML

XML

“Crece la necesidad de un estándar liviano para intercambio de datos entre aplicaciones de negocio”

Page 9: Web services SOAP con JAX-WS

Estándares  de  los  servicios  Web  

Page 10: Web services SOAP con JAX-WS

Arquitectura  de  Servicios  Web  simple  

1. Service Registers PUBLISH

3. Client calls

Service BIND

2. Client Request Service Location

FIND

Web Service

Service Client

Registry

Page 11: Web services SOAP con JAX-WS

SOAP    (Simple  Object  Access  Protocol)  

Page 12: Web services SOAP con JAX-WS

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  

Page 13: Web services SOAP con JAX-WS

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.  

Page 14: Web services SOAP con JAX-WS

QUE  DEFINE  SOAP?  

S  Message  Envelope  

S  Encoding  Rules  

S  RPC  Conven5on  

S  Binding  with  underlying  protocols  

Page 15: Web services SOAP con JAX-WS

Formato  de  mensaje  SOAP  SOAP Envelope

SOAP Header

SOAP Message

Primary MIME part

(text/xml)

Attachment

Attachment

SOAP Body

Header Entry

Header Entry

Body Entry

Body Entry

Attachment

Page 16: Web services SOAP con JAX-WS

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  

Page 17: Web services SOAP con JAX-WS

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  

Page 18: Web services SOAP con JAX-WS

SOAP  MESSAGES  

Page 19: Web services SOAP con JAX-WS

WSDL  (Web  Services  Descrip5on  

Language)  

Page 20: Web services SOAP con JAX-WS

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.  

Page 21: Web services SOAP con JAX-WS

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.  

Page 22: Web services SOAP con JAX-WS

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.  

Page 23: Web services SOAP con JAX-WS

DEMO  WSDL  

S  Operaciones  mat  

Page 24: Web services SOAP con JAX-WS

UDDI  (Universal  Descrip5on,  

Discovery  and  Integra5on)  

Page 25: Web services SOAP con JAX-WS

ARQUITECTURA  SERVICIOS  WEB  

UDDI Registry

UDDI define una forma de publicar and encontrar información de servicios.

1. Service Registers PUBLISH

3. Client calls Service BIND

2. Client Request Service Location

FIND

Web Service

Service Client

Page 26: Web services SOAP con JAX-WS

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.  

Page 27: Web services SOAP con JAX-WS

COMUNICACIÓN  ENTRES  SERVICIOS  WEB  

Page 28: Web services SOAP con JAX-WS

COMUNICACIÓN  ENTRES  SERVICIOS  WEB  

El WS es publicado para que desarrolle una única tarea.

Sistema que publica El WS

Page 29: Web services SOAP con JAX-WS

COMUNICACIÓN  ENTRES  SERVICIOS  WEB  

Sistema que publica El WS

Las otras aplicaciones “consumen” esos Servicios.

Page 30: Web services SOAP con JAX-WS

COMUNICACIÓN  ENTRES  SERVICIOS  WEB  Sistema que publica

El WS

Clientes

HTTP JMS

XMPP

<XML>

<XML>

Page 31: Web services SOAP con JAX-WS

FUNCIONAMIENTO  “Sistemas de Empresa”

El sistema puede “mostrarle” a otros,

cuales funciones esta “publicando” usando

WSDL

<WSDL> “Sistemas Clientes”

Page 32: Web services SOAP con JAX-WS

FUNCIONAMIENTO  “Mi Sistema”

Otro Sistema

Es posible “preguntar” que sistema

esta publicando un Servicio determinado a

Un sistema de directorio UDDI

Page 33: Web services SOAP con JAX-WS

WEB  SERVICES  FRAMEWORK  PARA  JAVAEE  

Page 34: Web services SOAP con JAX-WS

JavaEE  y  los  Web  Services  

B2B Applications

B2C Applications

Web Services

Wireless Applications

Application Server Enterprise Information

Systems

Existing Applications

Page 35: Web services SOAP con JAX-WS

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)  

Page 36: Web services SOAP con JAX-WS

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  

Page 37: Web services SOAP con JAX-WS

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  

Page 38: Web services SOAP con JAX-WS

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/  

Page 39: Web services SOAP con JAX-WS

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/  

Page 40: Web services SOAP con JAX-WS

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/  

Page 41: Web services SOAP con JAX-WS

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.  

Page 42: Web services SOAP con JAX-WS

CONCLUSIÓN  

S  Es  posible  que  aplicaciones  en  diferentes  lenguajes  de  programación  ínter  operen.  

.Net Sistemas legados

PL/SQL

Java JEE

Page 43: Web services SOAP con JAX-WS

ENLACES  

S  hpp://java.sun.com/webservices/index.jsp  S  hpp://java.sun.com/blueprints/guidelines/designing_webservices/html/  

S  hpp://ws.apache.org/axis/  S  hpp://xfire.codehaus.org/  S  hpps://jax-­‐ws.dev.java.net/  

Page 44: Web services SOAP con JAX-WS

ENLACES  

S  hpp://webservices.xml.com/  S  hpps://blueprints.dev.java.net/books.html  S  hpps://blueprints.dev.java.net/servlets/ProjectDocumentList?folderID=3401&expandFolder=3401&folderID=0  

Page 45: Web services SOAP con JAX-WS

Información  de  contacto  

S  Si5o  Web:  www.vortexbird.com  S  Blog:  hpp://blog.vortexbird.com  S  Contacto  vía  mail:  [email protected]  S  Teléfonos:  +57    -­‐  (316  482  4629)  S  Cali,  Colombia