Escolar Documentos
Profissional Documentos
Cultura Documentos
Intro
WebService
Introduccin
WebService Caractersticas Tipos de Web Service JAX-WS JAX-RS
QuickStart SOAP
Requemientos Ambiente GlassFish Metro
JAX-WS
WSDL Endpoint Java Cliente SOAP
Temario
JAX-RS
WADL JSON Endpoint Java Cliente Manejo de Errores Seguridad BestPractices
Pruebas
SOAPUI SOAPService RestService
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 aplicacin que generalmente se entrega a travs de HTTP (Hyper Text Transport Protocol). Un servicio web es una aplicacin distribuida cuyos componentes se pueden implementar y ejecutar en distintos tipos de dispositivos.
cmp WebServ ice
Los servicios Web se pueden dividir a grandes rasgos en dos grupos, SOAP-based y REST-style.
HelloWebService
HelloWSEJB
Hello
HelloService
WS Intro
Principales Caractersticas
Estndares abiertos HTTP XML SOAP Interoperabilidad
WS-I Su objetivo es fomentar y promover la Interoperabilidad de Servicios Web (Web Services Interoperability - WS-I) sobre cualquier plataforma, sobre aplicaciones y sobre lenguajes de programacin.
SOA
SOAP
Arquitectura de Mensajes
Un mensaje SOAP es una transmisin unidireccional de un emisor a un receptor El MEP (message exchange pattern) de solicitud / respuesta en un SOAP WS es una breve conversacin en la que una solicitud inicia la conversin y la respuesta concluye la conversacin.
Primitivas
Variable/Clases
Mtodos
Tecnologa/SOAP
URL
WS Intro
SOAP Service
Se encuentra sobre un protocolo SOA (Service Oriented Architecture), los servicios web juegan un papel central en SOA para el diseo y desarrollo de software.
WSDL (Web Services Description Language) XML Types (Extensible Markup Language) SOAP (Simple Object Access Protocol)
Rest Service
WADL (Web Application Description Language) JSON (JavaScript Object Notation) HTTP (Mtodos nativos Hypertext Transfer Protocol)
WS Intro
REST Service,
Caractersticas:
No cuenta con normas Pocas herramientas Escasas bibliotecas de software El REST se ve a menudo como un antdoto contra la complejidad progresiva de los servicios web basados en SOAP. REST necesita invocaciones del cliente para realizar sus operaciones por medio de HTTP, el cual cuenta con sus propios mtodos. Sitio Ejemplo: http://www.baseball-reference.com/
(REpresentational State Transfer), Roy Fielding cre el acrnimo en su tesis de Doctorado para describir un estilo arquitectnico en el diseo de servicios web.
REST Service
Metodos HTTP y operaciones CRUD (Create, Read, Update Delete):
200 .- La solicitud fue manejada con xito Los navegadores modernos slo generan peticiones GET y POST
REST Service
WADL
Trata de ser la contraparte del WSDL, lo cual no es oficial, solo es una iniciativa.
SOAP Services
WSDL
WADL
REST Services
10
WS Intro
JAX-WS
(proporciona la base de proyecto Metro, en el interior de la comunidad GlassFish)
Especificacin para construir SOAP Service. Incluida en Java 6 Parte de Java EE 5 / 6 RI Metro (pila de servicios web de alto rendimiento, ampliable y fcil de utilizar) WSIT Tango (Web Services Interoperability Technologies) Uso de Anotaciones
11
WS Intro
JAX-WS
Cliente Servidor
JAX-WS Runtime
SOAP Request
JAX-WS Runtime
12
WS Intro
JAX-WS
AppCLI
SOAP
Java @
13
WS Intro
JAX-WS Implementaciones
GlassFish 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/jbossws JavaSE 6
14
WS Intro
JAX-RS
Especificacin para construir Rest Service. HTTP/ URI Parte de Java EE 6 RI Jersey (implementacin de referencia) Uso de Anotaciones
15
WS Intro
JAX-RS
Cliente Servidor
JAX-RS Runtime
HTTP Request
JAX-RS Runtime
Client Rest
URL
16
WS Intro
JAX-RS
Client
URL JSON
17
WS Intro
JAX-RS
Servidor
URL
HTTP Method
Contenido a Generar
18
WS Intro
JAX-RS Implementaciones
Jersey (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
VS
20
RestServices
No cuenta con normas Pocas herramientas Escasas bibliotecas de software WADL
SOAPServices
un protocolo SOA WSDL XML Types
21
WebServices
SOAP QuickStart
SOAP QuickStart
Requerimientos
JDK6** JAVA_HOME MyEclipse ApplicationServer V5 Glassfish v2*** WebLogic 11g Jboss 6 OracleXE Material Curso \\smprodtq2\software\WebService
23
SOAP QuickStart
Lista de pasos a realizar
Instalar JDK 6, Eclipse Descomprimir Application Server C:\bin\ Cambiar JDK C:\bin\glassfishV2\config\asenv.bat Configurar AS+Eclipse Importar Proyectos Iniciar AS C:\bin\glassfishV2\bin\>asadmin start-domain MyEclipse usu:admin pwd:adminadmin Modificar ConnectionPool : CambryPool usu:hr pwd:je.zamora URL: jdbc:oracle:thin:@ 127.0.0.1:1521:orcl
24
SOAP QuickStart
Consola Administracin AS
http://localhost:4848/
Cliente Pruebas
25
SOAP QuickStart
WSDL - HelloSoapService
http://localhost:8080/HelloSoapServiceService/HelloSoapService?wsdl
26
SOAP QuickStart
WSDL - HelloSoapService
http://localhost:8080/HelloSoapServiceService/HelloSoapService?wsdl
27
SOAP QuickStart
Cliente - HelloSoapService
http://localhost:8080/HelloSoapServiceService/HelloSoapService?tester
Operaciones (Metodos)
28
SOAP QuickStart
Cliente - HelloSoapService
http://localhost:8080/HelloSoapServiceService/HelloSoapService?tester
29
WebService
WSDL
30
WSDL
Lenguaje de Descripcin del Web Service Contrato entre un servicio y sus consumidores Indispensable para crear un Cliente del Servicio XML
http://www.soamag.com/I27/0309-3.php
31
WSDL
Partes del Contrato
types Proporciona la definicin de los tipos de datos bajo algn esquema de definicin de datos, por ejemplo XSD. Pueden ser importados de otro documento de definiciones
32
WSDL
Partes del Contrato
Messages Mensajes que implementa el Servicio. Construidos a partir de tipos de datos definidos en la seccin anterior o importados. Definicin de Variables.
33
WSDL
Partes del Contrato
portType Operaciones nombradas del Servicio. Cada operaciones tiene uno o mas mensajes. @WebMethod Java Interface
Java Mtodos -> Operaciones
Interface
Mtodos
34
WSDL
Partes del Contrato
binding Es donde enlazamos la abstraccin (WSDL) con la implementacin. Proporciona detalles concretos del servicio. El protocolo (aplicativo) de transporte ser utilizado para mandar mensajes SOAP. http smtp Estilo del servicio: document RPC (@SOAPBinding)
(Remote Procedure Call, Llamada a Procedimiento Remoto)
35
WSDL
Partes del Contrato
Service Define los endpoint donde el servicio se despachara. URL
36
WSDL
Binding
WS-I document literal
WSDL
RPC/encoded RPC/literal Document/literal W Document/literal
38
WSDL
Binding
RPC -> JAX-RS NO WS-I No existe definicin de tipos NO SOA
NO Types
Incrustados
39
WSDL
Java Cliente
WSDL
http://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 Interface Service Implementation Bean (SIB) WebContainer
POJO
EJB Container
Session Stateless
WEB Container
EJB Container
42
WS Endpoint
Service Endpoint Interface (SEI)
WS-I
Java Interface
Operaciones
43
WS Endpoint
Service Endpoint Bean
POJO
WebContext Class SEB Name + Service HelloSoapServiceImpl + Service
http://localhost:8080/cambry/HelloSoapServiceImplService?wsdl
Java Interface
44
WS Endpoint
Service Endpoint Bean
EJB Session stateless
http://localhost:8080/HelloSoapServiceImplService/HelloSoapServiceImpl?wsdl
Java Interface
45
WS Endpoint
Service Endpoint Bean
EJB Session stateless V2
46
WS Endpoint
Service Endpoint Bean
EJB Session stateless V2
47
WS Endpoint
SEB EJB
WS-* Transaccionalidad Seguridad Thread safety Intances pooling
SEB POJO
Java Servlet
48
WS Endpoint
Manejo de Errores
Java Exception & SOAP Message Fault
49
WS Endpoint
Manejo de Errores
Java Exception & SOAP Message Fault
50
WebServices
Clientes
51
WS Clientes
URL del WSDL
http://localhost:8080/HelloSoapService/HelloService?wsdl
Archivo WSDL
52
WS Clientes
Desde la Lnea de Comandos
53
PREGUNTAS
54