Web Services 4 Java

Post on 24-Oct-2014

124 views 1 download

Tags:

Transcript of Web Services 4 Java

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