Post on 24-Oct-2014
WebServices
Intro
2
IntroducciónWebServiceCaracterísticasTipos de Web ServiceJAX-WSJAX-RS
QuickStart SOAPRequemientosAmbienteGlassFish Metro
JAX-WSWSDLEndpointJava ClienteSOAP
WS-IQuickStart Rest
RequerimientosAmbienteJersey
JAX-RSWADLJSONEndpoint Java ClienteManejo de ErroresSeguridadBestPractices
PruebasSOAPUISOAPServiceRestService
Temario
WebService
WS Intro¿Qué es un WebService?
Como su nombre lo indica, un servicio web es un tipo de “webified application” (Habilitado para la web), es decir, una aplicación que generalmente se entrega a través de HTTP (Hyper Text Transport Protocol).
Un servicio web es una aplicación distribuida cuyos componentes se pueden implementar y ejecutar en distintos tipos de dispositivos.
Los servicios Web se pueden dividir a grandes rasgos en dos grupos, SOAP-based y REST-style.
3
cmp WebServ ice
Hello
HelloWebService
HelloWSEJB
HelloService
WS Intro
Principales CaracterísticasEstándares abiertos
HTTPXMLSOAP
InteroperabilidadWS-I Su objetivo es fomentar y promover la Interoperabilidad de Servicios Web (Web Services Interoperability - WS-I) sobrecualquier plataforma, sobre aplicaciones y sobre lenguajes de programación.
SOA (Arquitectura Orientada a Servicios)
4
GET /index.html HTTP/1.1 Host: www.example.com
SOAP
Arquitectura de MensajesUn mensaje SOAP es una transmisión unidireccional de un emisor a un receptorEl MEP (message exchange pattern) de solicitud / respuesta en un SOAP WS es una breve conversación en la que una solicitud inicia la conversión y la respuesta concluye la conversación.
5
Primitivas
Variable/Clases
Métodos
6
Tecnología/SOAP
URL
WS Intro
SOAP ServiceSe encuentra sobre un protocolo SOA (Service Oriented Architecture), los servicios web juegan un papel central en SOA para el diseño y desarrollo de software.
WSDL (Web Services Description Language)
XML Types (Extensible Markup Language)
SOAP (Simple Object Access Protocol)
Rest ServiceWADL (Web Application Description Language)
JSON (JavaScript Object Notation)
HTTP (Métodos nativos Hypertext Transfer Protocol)
7
REST Service, (REpresentational State Transfer), Roy Fielding creó el acrónimo en su tesis de Doctorado para describir un estilo arquitectónico en el diseño de servicios web.
Características:No cuenta con normasPocas herramientas Escasas bibliotecas de softwareEl REST se ve a menudo como un antídoto
contra la complejidad progresiva de los servicios web basados en SOAP.
REST necesita invocaciones del cliente para realizarsus operaciones por medio de HTTP, el cual cuenta con sus propios métodos.
Sitio Ejemplo: http://www.baseball-reference.com/
8
WS Intro
REST Service
Metodos HTTP y operaciones CRUD (Create, Read, Update Delete):
9
Respuestas:
• 404 .- El recurso No fue encontrado
• 200 .- La solicitud fue manejada con éxito
Los navegadores modernos sólo generan peticiones GET y POST
REST Service
WADLTrata de ser la contraparte del WSDL, lo cual no es oficial, solo es una iniciativa.
SOAP Services
REST Services
10
WSDL
WADL
WS Intro
JAX-WS (proporciona la base de proyecto Metro, en el interior de la comunidad GlassFish)
Especificación para construir SOAP Service.Incluida en Java 6Parte de Java EE 5 / 6RI Metro (pila de servicios web de alto rendimiento, ampliable y fácil de utilizar)
WSIT Tango (Web Services Interoperability Technologies)
Uso de Anotaciones
11
WS Intro
JAX-WS
12
Cliente Servidor
JAX-WS Runtime
JAX-WS Runtime
SOAP Request
WS Intro
JAX-WS
13
Java @
AppCLI
SOAP
WS Intro
JAX-WS ImplementacionesGlassFish Metro (RI)
http://metro.java.net/Apache Axis2
http://axis.apache.org/axis/Apache CXF
http://cxf.apache.org/Spring Web Services**
http://static.springsource.org/spring-ws/sites/2.0/Jboss WS
http://www.jboss.org/jbosswsJavaSE 6
14
WS Intro
JAX-RSEspecificación para construir Rest Service.HTTP/ URIParte de Java EE 6RI Jersey (implementación de referencia)
Uso de Anotaciones
15
WS Intro
JAX-RS
Client Rest
16
Cliente Servidor
JAX-RS Runtime
JAX-RS Runtime
HTTP Request
URL
WS Intro
JAX-RSClient
17
URL
JSON
WS Intro
JAX-RSServidor
18
URL
HTTP Method Contenido a Generar
WS Intro
JAX-RS ImplementacionesJersey (RI)
http://jersey.java.net/Apache CXF
http://cxf.apache.org/RestEasy
http://www.jboss.org/resteasy/Apache HttpComponents*
http://hc.apache.org/Java SE*
java.net
19
WS Intro
SOAPServices RestServices
20
VS
No cuenta con normasPocas herramientas Escasas bibliotecas de softwareWADL
un protocolo SOAWSDLXML Types
21
RestServices SOAPServices
WebServices
SOAP QuickStart
SOAP QuickStart
RequerimientosJDK6**JAVA_HOMEMyEclipseApplicationServer V5
Glassfish v2***WebLogic 11gJboss 6
OracleXEMaterial Curso
\\smprodtq2\software\WebService
23
SOAP QuickStart
Lista de pasos a realizarInstalar JDK 6, EclipseDescomprimir Application Server C:\bin\
Cambiar JDK C:\bin\glassfishV2\config\asenv.bat Configurar AS+EclipseImportar ProyectosIniciar AS
C:\bin\glassfishV2\bin\>asadmin start-domain MyEclipseusu:admin pwd:adminadmin
Modificar ConnectionPool : CambryPoolusu:hr pwd:je.zamora
URL: jdbc:oracle:thin:@ 127.0.0.1:1521:orcl
Revisar los elementos que integran la aplicación:CambryAdapterSoapConsola Administración AS http://localhost:4848
24
SOAP QuickStart
Consola Administración AShttp://localhost:4848/
25
WebService
DescripciónServicio
Cliente Pruebas
SOAP QuickStart
WSDL - HelloSoapServicehttp://localhost:8080/HelloSoapServiceService/HelloSoapService?wsdl
26
SOAP QuickStart
WSDL - HelloSoapServicehttp://localhost:8080/HelloSoapServiceService/HelloSoapService?wsdl
27
SOAP QuickStart
Cliente - HelloSoapServicehttp://localhost:8080/HelloSoapServiceService/HelloSoapService?tester
28
Operaciones (Metodos)
SOAP QuickStart
Cliente - HelloSoapServicehttp://localhost:8080/HelloSoapServiceService/HelloSoapService?tester
29
WebService
WSDL
30
WSDL
Lenguaje de Descripción del Web ServiceContrato entre un servicio y sus consumidoresIndispensable para crear un Cliente del ServicioXML
31
http://www.soamag.com/I27/0309-3.php
WSDL
Partes del Contratotypes
Proporciona la definición de los tipos de datos bajo algún esquema de definición de datos, por ejemplo XSD.Pueden ser importados de otro documento de definiciones
32
WSDL
Partes del ContratoMessages
Mensajes que implementa el Servicio. Construidos a partir de tipos de datos definidos en la sección anterior o importados.Definición de Variables.
33
WSDL
Partes del ContratoportType
Operaciones nombradas del Servicio. Cada operaciones tiene uno o mas mensajes.@WebMethod Java Interface
Java Métodos -> Operaciones
34
Interface
Métodos
WSDL
Partes del Contratobinding
Es donde enlazamos la abstracción (WSDL) con la implementación. Proporciona detalles concretos del servicio.El protocolo (aplicativo) de transporte será utilizado para mandar mensajes SOAP. http smtpEstilo del servicio: document RPC (@SOAPBinding)
(Remote Procedure Call, Llamada a Procedimiento Remoto)
Formato de datos utilizado en los mensajes SOAP literal encoded
35
WSDL
Partes del ContratoService
Define los endpoint donde el servicio se despachara.URL
36
WSDL
BindingWS-I
documentliteral
37
style use
document literal
document encoded
rpc literal
rpc encoded
WSDLRPC/encodedRPC/literalDocument/literal WDocument/literal
38
WSDL
BindingRPC -> JAX-RSNO WS-INo existe definición de tiposNO SOA
39
NO Types
Incrustados
WSDL
Java ClienteWSDLhttp://localhost:8080/cambry/HelloSoapServiceService?wsdl
C:\WS\MyEclipse\TestSoap>wsimport -s examples -p mx.ids.cambry.adapter.soap http://localhost:8080/cambry/HelloSoapServiceService?wsdl
40
WebServices
Endpoint
41
WS Endpoint
Implementacion Service Endpoint Interface (SEI)
Java InterfaceService Implementation Bean (SIB)
WebContainerPOJO
EJB Container Session Stateless
42
WEBContainer
EJBContainer
WS Endpoint
Service Endpoint Interface (SEI)
43
Java Interface Operaciones
WS-I
WS Endpoint
Service Endpoint BeanPOJO
http://localhost:8080/cambry/HelloSoapServiceImplService?wsdl
44
Java Interface
WebContext Class SEB Name + “Service”HelloSoapServiceImpl + “Service”
WS Endpoint
Service Endpoint BeanEJB Session stateless
http://localhost:8080/HelloSoapServiceImplService/HelloSoapServiceImpl?wsdl
45
Java Interface
WS Endpoint
Service Endpoint BeanEJB Session stateless V2
46
WS Endpoint
Service Endpoint BeanEJB Session stateless V2
47
WS Endpoint
SEB EJBWS-*TransaccionalidadSeguridadThread safetyIntances pooling
SEB POJOJava Servlet
48
WS Endpoint
Manejo de ErroresJava Exception & SOAP Message Fault
49
WS Endpoint
Manejo de ErroresJava Exception & SOAP Message Fault
50
WebServices
Clientes
51
WS Clientes
URL del WSDLhttp://localhost:8080/HelloSoapService/HelloService?wsdl
Archivo WSDL
52
WS Clientes
Desde la Línea de Comandos
53
54
PREGUNTAS