PDF de programación - Introducción a los Servicios Web - Java

Imágen de pdf Introducción a los Servicios Web - Java

Introducción a los Servicios Web - Javagráfica de visualizaciones

Publicado el 13 de Febrero del 2019
664 visualizaciones desde el 13 de Febrero del 2019
896,2 KB
58 paginas
Creado hace 15a (16/01/2009)
Introducción a los
Servicios Web

Ingeniería del Software II

Curso 2008/2009

Sergio Ilarri Artigas

[email protected]

Índice

Introducción
Servicios Web SOAP

SOAP
WSDL
UDDI
APIs

Servicios Web REST
CORBA vs. Servicios Web

Introducción (I)

“In simple terms a Web Service is an
application or business logic that is
accessible using standard Internet
protocols.”

Fuente: http://faq.javaranch.com/java/WebServicesFaq

Introducción (II)

”Can I access a web service from any
application?

Yes, if your application supports XML
based object request and response.”

Fuente: http://faq.javaranch.com/java/WebServicesFaq

Introducción (III)

Service-oriented architecture (SOA) is an evolution of distributed
computing based on the request/reply design paradigm for
synchronous and asynchronous applications. An application's
business logic or individual functions are modularized and
presented as services for consumer/client applications. What's key
to these services is their loosely coupled nature; i.e., the service
interface is independent of the implementation. Application
developers or system integrators can build applications by
composing one or more services without knowing the services'
underlying implementations.

Fuente: http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html

Fuente: http://geekandpoke.typepad.com/geekandpoke/2007/01/the_consultants.html

Introducción (IV)

Idea: utilizar la web como mecanismo

de transporte “universal”

Un servicio web proporciona una serie
de puntos de acceso o endpointsque
pueden invocarse remotamente
Accesibles a través de HTTP

Tecnologías

web

(normalmente)

Peticiones y respuesta en XML

(normalmente)

Introducción (V)

HTML

Web

Aplicación

Web

Aplicación

Web

XML

Web

Servicio

Web

Introducción (VI)

Mensajería
SOAP, XML

Descripción
WSDL, XML Schema

Descubrimiento
UDDI

Seguridad
TLS, SSL

Introducción (VII)

Dos aproximaciones:

1. Aproximación basada en SOAP



Estilo RPC

Tecnologías: SOAP, WSDL, UDDI

2. Aproximación REST

Representational Style Transfer
Nuevo estilo arquitectónico
Tecnologías: HTTP 1.1, XML

SW SOAP: SOAP (I)

Simple Object Access Protocol(inicialmente)
Protocolo para el intercambio de mensajes

(peticiones y respuestas) con estructura en XML

Estándar del W3C: versiones 1.1 y 1.2
Es sólo un formato de mensajes
Métodos de transporte:

HTTP (normalmente; atraviesa firewalls)
SMTP
FTP
JMS (Java Message Service)


SW SOAP: SOAP (II)

Servicios en SOAP:

Servicio: conjunto de puertos
Puerto: ofrece un conjunto de operaciones
Operaciones:

Nombre, parámetros (E, S, E/S), valor de

retorno, faults(excepciones)
Síncronas (RPC) o asíncronas

SW SOAP: SOAP (III)

SOAP estandariza la estructura de los

mensajes de petición/respuesta:
Envelope:elemento raíz, header+body
Header(opcional)
Body(obligatorio): contenido del mensaje

SW SOAP: SOAP (IV)

Ejemplo de petición SOAP sobre HTTP

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">

<m:GetStockPrice>

<m:StockName>IBM</m:StockName>

</m:GetStockPrice>

</soap:Body>

</soap:Envelope>

Fuente: http://www.w3schools.com

SW SOAP: SOAP (V)

Ejemplo de respuesta SOAP sobre HTTP

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">

<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>

</m:GetStockPriceResponse>

</soap:Body>

</soap:Envelope>

Fuente: http://www.w3schools.com

SW SOAP: WSDL (I)

Web Services Description Language
Especificación en XMLde las operaciones que ofrece

un servicio web (su interfaz):
Puertos, operaciones, tipos de datos

Versiones:

Versión 1.1 (WC3 Note, 2001)
Versión 2.0 (W3C Recommendation, 2007)

Compilador de WSDL (APIs):
Stuben el cliente (patrón Proxy)
Skeletonen el servidor (patrón Adapter)
En Axis: Java2WSDLy WSDL2Java

(http://ws.apache.org/axis/java/user-guide.html)

Podríamos manejar
los mensajes SOAP
nosotros

SW SOAP: WSDL (II)

Elementos básicos:

Definición de las operaciones (tipos de puertos):

<portType> (≈ módulo de lenguaje de programación)

Definición de los mensajes (inputy output de operaciones):

<message>

“Partes”

Parámetros “In”, “Out”, e “InOut”
Valor de retorno
Excepción (fault)

Definición de los tipos de datos de los mensajes de petición

y de respuesta (XML Schema, tipos SOAP): <types>

Definición de los protocolos de comunicación: <binding>
Definición de una dirección: <port>
Definición de servicios (conjuntos de puertos): <service>

SW SOAP: WSDL (III)

<definitions> Elemento raíz

<types> Tipos de datos que se transmiten

<message> Mensajes que se transmiten

<portType> Operaciones soportadas

<binding> Cómo se transmiten los mensajes por la red

<service> Dónde se localiza el servicio

SW SOAP: WSDL (IV)

1. Service Definition Layer



Tipos de datos
Tipos de mensajes

Operaciones



Servicios

2. Binding Layer



Protocolos de comunicación
Formatos de datos:



SOAP, HTTP, tipos MIME, etc.

Propiedades
abstractas

Propiedades
concretas

SW SOAP: WSDL (V)

Ejemplo

<message name="getTermRequest">

<part name="term" type="xs:string"/>

</message>

<message name="getTermResponse">

<part name="value" type="xs:string"/>

</message>

<portType name="glossaryTerms">

<operation name="getTerm">

<input message="getTermRequest"/>
<output message="getTermResponse"/>

</operation>

</portType>

Fuente: http://www.w3schools.com

SW SOAP: WSDL (VI)

Tipos de operaciones (WSDL 1.1):

(1)

Fuente: http://www2.roguewave.com/support/docs/leif/leif/html/webservicesug/5-2.html

SW SOAP: WSDL (VII)

Ejemplo One-way

<message name="newTermValues">

<part name="term" type="xs:string"/>
<part name="value" type="xs:string"/>

</message>

<portType name="glossaryTerms">

<operation name="setTerm">
<input name="newTerm"

message="newTermValues"/>

</operation>

</portType >

Fuente: http://www.w3schools.com

SW SOAP: WSDL (VIII)

Tipos de operaciones (WSDL 1.1):

(2)

Fuente: http://www2.roguewave.com/support/docs/leif/leif/html/webservicesug/5-2.html

SW SOAP: WSDL (IX)

Ejemplo Request-Response

<message name="getTermRequest">

<part name="term" type="xs:string"/>

</message>

<message name="getTermResponse">

<part name="value" type="xs:string"/>

</message>

<portType name="glossaryTerms">

<operation name="getTerm">

<input message="getTermRequest"/>
<output message="getTermResponse"/>

</operation>

</portType>

Fuente: http://www.w3schools.com

SW SOAP: WSDL (X)

Tipos de operaciones (WSDL 1.1):

(3)

Fuente: http://www2.roguewave.com/support/docs/leif/leif/html/webservicesug/5-2.html

SW SOAP: WSDL (XI)

Ejemplo Solicit-Response

<message name="RenewResponse">

<part name="RenewResponse" type="xsd:string"/>

</message>

<message name="RenewRequest">

<part name="RenewRequest" type="xsd:string"/>

</message>

<portType name=“weather">

<operation name="weatherUpdateRenew">
<output message="tns:RenewRequest"/>
<input message="tns:RenewResponse"/>

</operation>

</portType>

Fuente: http://www2.roguewave.com/support/docs/leif/leif/html/webservicesug/5-2.html

SW SOAP: WSDL (XII)

Tipos de operaciones (WSDL 1.1):

(4)

Fuente: http://www2.roguewave.com/support/docs/leif/leif/html/webservicesug/5-2.html

SW SOAP: WSDL (XIII)

Ejemplo Notification

<message name="getSummaryResponse">

<part name="weatherData" type="wsx:WeatherSummary"/>

</message>

<portType name=“weather">

<operation name="weatherNotification">

<output message="tns:getSummaryResponse"/>

</operation>

</portType>

Fuente: http://www2.roguewave.com/support/docs/leif/leif/html/webservicesug/5-2.html

SW SOAP: WSDL (XIV)

Patrones de intercambio de mensajes (MEPs)

en WSDL 2.0:
In-Only
Robust In-Only
In-Out
In-Optional-Out
Out-Only
Robust Out-Only
Out-In
Out-Optional-In

http://www.w3.org/TR/2004/WD-wsdl20-extensions-20040803/#meps

SW SOAP: WSDL (XV)

Un bindingespecifica el protocolo y formato de datos

para un puerto (hijos soap:binding y operation)

Atributos del elemento binding

Name: el nombre que se da al binding
Type: referencia al puerto para el binding

Atributos del nodo hijo soap:binding

Usando más de un
puerto, es posible ligar
un portType a más de
un protocolo

Style : "rpc"o "document”
Transport : protocolo SOAP (Ej., HTTP, SMTP, FTP, JMS)

Nodo hijo operation

Define las operaciones que expone el puerto
Para cada operación, se indica la acción SOAP
Además, se debe especificar cómo se codifica la entrada y la

salida (ej., “literal”)

SW SOAP: WSDL (XVI)

Ejemplo de binding

<binding type="glossaryTerms" name="b1">
<soap:binding style="document"

transport="http://schemas.xmlsoap.org/soap/http" />

<soap:operation soap
  • Links de descarga
http://lwp-l.com/pdf15189

Comentarios de: Introducción a los Servicios Web - Java (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad