Você está na página 1de 54

WebServices

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

WS-I QuickStart Rest


Requerimientos Ambiente Jersey

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

(Arquitectura Orientada a Servicios)

GET /index.html HTTP/1.1 Host: www.example.com

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):

Respuestas: 404 .El encontrado recurso No fue

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

Revisar los elementos que integran la aplicacin:


CambryAdapterSoap Consola Administracin AS http://localhost:4848

24

SOAP QuickStart
Consola Administracin AS
http://localhost:4848/

Cliente Pruebas

Descripcin Servicio WebService

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)

Formato de datos utilizado en los mensajes SOAP


literal encoded

35

WSDL
Partes del Contrato
Service Define los endpoint donde el servicio se despachara. URL

36

WSDL
Binding
WS-I document literal

style document document rpc rpc literal

use encoded literal encoded


37

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

Você também pode gostar