You are on page 1of 28

Web Services

Introduccin a los Servicios Web


Carlos Carvajal G. Estudiante de Ing. Civil Electrnica UTFSM, 22/11/2010

ELO326-Seminario de Computadores II

Web Services
Qu es Web Services

Estndares usados

JAX-WS

RESTful

Axis

Ejemplos

ELO326-Seminario de Computadores II

Web Services
Qu es Web Services

Estndares usados

JAX-WS

RESTful

Axis

Ejemplos

ELO326-Seminario de Computadores II

Web Services
World Wide Web Consortium: "...un sistema de software diseado para soportar interaccin interoperable mquina a mquina sobre una red. ste tiene una interfaz descrita en un formato procesable por una mquina (especficamente WSDL). Otros sistemas interactan con los servicios web en una manera prescrita por su descripcin usando mensajes SOAP, tpicamente enviados usando HTTP con una serializacin XML en relacin con otros estndares relacionados con la web"

ELO326-Seminario de Computadores II

Web Services

Para humanos: Es un conjunto de tecnologas estndares de software para intercambio de datos entre aplicaciones como SOAP, WDSL y UDDI, las que pueden ser desarrolladas en una gran variedad de lenguajes para implementarse sobre muchos tipos de redes de computadores.

ELO326-Seminario de Computadores II

Web Services

Las organizaciones OASIS (Organization for the Advancement of Structured Information Standards) y W3C (World Wide Web Consortium) son los responsables de la estandarizacin y arquitectura de los servicios web. La industria cre la WS-I (Web Services Interoperability Organization) para incluir los estndares que garanticen y mejoren la interoperabilidad de los servicios web.

ELO326-Seminario de Computadores II

Web Services
Qu es Web Services

Estndares usados

JAX-WS

RESTful

Axis

Ejemplos

ELO326-Seminario de Computadores II

Web Services

Al conjunto de estndares usados se le conoce como el Web Services Protocol Stack, el que se compone de bsicamente 4 subconjuntos: Servicio de transporte Mensajera XML Descripcin del servicio Descubrimiento de servicios

ELO326-Seminario de Computadores II

Web Services

El servicio de transporte es el encargado del transporte de los mensajes entre aplicaciones sobre la red. Incluye varios protocolos de la capa de aplicacin, como: HTTP (Hyper Text Transfer Protocol) FTP (File Transfer Protocol) SMTP (Simple Mail Transfer Protocol) BEEP (Block Extensible Exchange Protocol) JMS (Java Message Service)

ELO326-Seminario de Computadores II

Web Services
La mensajera XML es la encargada de la codificacin de los mensajes en XML estndar para que as pueda ser interpretado en cualquiera de los nodos de la red. Dentro de sus componentes estn: REST (Representational State Transfer) RPC (Remote Procedure Calls) XML (eXtended Markup Language) XML-RPC SOAP (Simple Object Access Protocol)

ELO326-Seminario de Computadores II

Web Services
La descripcin del servicio web es necesaria pues ste necesita contar con una interfaz pblica, la cual es descrita por un formato llamado WSDL (Web Services Description Language), que presenta los elementos: Tipo : tipo de datos usado por los mensajes Mensaje : datos enviados entre nodos Tipo de puerto : Define las operaciones de entrada, salida, operacin (configuracin) y fallo Lmite : descripcin del protocolo Servicio : define el nodo de comunicacin

ELO326-Seminario de Computadores II

Web Services
Para el descubrimiento de servicios se utiliza la UDDI (Universal Description Discovery and Integration), que es un marco independiente de la plataforma para describir servicios, negocios e integrar servicios de negocios. La estructura de la UDDI se compone por : businessEntity : describe al proveedor del ws businessService : describe un conjunto lgico de uno o muchos servicios web bindingTemplate : describe la parte tcnica del ws tModel[10] : representa especificaciones tcnicas, metadatos, nombre puntero URL y es un WSDL

ELO326-Seminario de Computadores II

Web Services

ELO326-Seminario de Computadores II

Web Services
Hay tambin algunas especificaciones adicionales que han sido desarrolladas con el nimo de extender las capacidades de los servicios web. stas son las WS-* : WS-Security WS-Reliability WS-ReliabilityMessaging WS-Adressing WS-Transaction WS-Coordination

ELO326-Seminario de Computadores II

Web Services
Qu es Web Services

Estndares usados

JAX-WS

RESTful

Axis

Ejemplos

ELO326-Seminario de Computadores II

Web Services
La API de Java para servicios web XML (JAX-WS) es una API para crear servicios web. Su implementacin de referencia es parte del proyecto GlassFish (como JAXWS RI, que es parte de la distribucin Metro). JAX-WS es una de las piezas claves de la WSIT (Web Services Interoperability Technology, las WS-*). JAX-WS 2.0 reemplaz a JAX-RPC en la JEE5 y el nombre apunta directamente al cambio de la metodologa RPC a la actual, basada en "documentos". (Actual : 2.2.1)

ELO326-Seminario de Computadores II

Web Services
Qu es Web Services

Estndares usados

JAX-WS

RESTful

Axis

Ejemplos

ELO326-Seminario de Computadores II

Web Services
REST es una tcnica de arquitectura de software para sistemas distribuidos de hipermedia (conjunto de mtodos para escribir, disear o componer contenidos que tengan texto, video, audio, mapas u otros medios, y que adems tenga la posibilidad de interactuar con los usuarios). Bsicamente cualquier interfaz web que utilice XML y HTTP es llamada REST en la actualidad. RESTful es usado para denominar a los sistemas que siguen los principios REST. Sus seguidores son los RESTafaris.

ELO326-Seminario de Computadores II

Web Services
REST afirma que la web ha disfrutado de escalabilidad gracias a diseos clave, como : Protocolo cliente/servidor sin estado Operaciones bien definidas (CRUD de HTML) Sintxis universal (a travs de URIs) Uso de Hipermedios (HTML o XML) JAX-RS es la API de Java para servicios web RESTful. http://tomayko.com/writings/rest-to-my-wife

ELO326-Seminario de Computadores II

Web Services
Una de las caractersticas importantes de REST son los recursos (elementos de informacin), los que son accedidos a travs de las URIs (Uniform Resource Identifier), que son cadenas cortas que identifican inequvocamente a un recurso (normalmente URI = URL + URN). Esto lo diferencia de RPC (proc. remotos) Para el manejo de recursos, tanto clientes como servidores se comunican a travs de una interfaz estndar (HTTP) e intercambian representaciones de los recursos (los ficheros que se descargan y envan).

ELO326-Seminario de Computadores II

Web Services
Algunos ejemplos de implementaciones basadas en REST presentes en la web : Blogs (descarga de RSS o Atom que son XML que contienen listas de enlaces a otros recursos) Amazon, eBay y Yahoo! entre otros tienen APIs para desarrolladores basadas en REST Ruby on Rails y Catalyst soportan REST va MVC Jersey, del proyecto Glassfish Zope, servidor de aplicaciones en Python (especficamente en su publicador de objetos)

ELO326-Seminario de Computadores II

Web Services
Qu es Web Services

Estndares usados

JAX-WS

RESTful

Axis

Ejemplos

ELO326-Seminario de Computadores II

Web Services
Apache Axis2 es un motor de servicios web / SOAP / WDSL, sucesor de Axis, un conocido stack SOAP. Consiste en una implementacin en Java y una en C, llamadas Axis2/Java y Axis2/C. En la arquitectura de Axis2 se mantiene lo bueno de Axis1.x, como los handlers. Axis2 soporta SOAP 1.1 y 1.2, junto con soporte para los populares servicios web REST. La misma implementacin lgica ofrece las interfaces WS-* y REST/POX simultneamente.

ELO326-Seminario de Computadores II

Web Services
Algunos de sus mdulos son : Apache Sandesha2 (WS-ReliableMessaging) Apache Kandula2 (WS-Coordination y WS-Atomic Transaction) Apache Rampart (WS-Security) Adems, Axis2 posee como parte de su ncleo un mdulo de WS-Addressing. Apache Axis2 est construido sobre Apache AXIOM, un modelo de objetos XML del tipo "pull".

ELO326-Seminario de Computadores II

Web Services
Qu es Web Services

Estndares usados

JAX-WS

RESTful

Axis

Ejemplos

ELO326-Seminario de Computadores II

Web Services
Referencias W3 Schools
http://www.w3schools.com/webservices/

Wikipedia
http://en.wikipedia.org/wiki/Web_service http://en.wikipedia.org/wiki/Java_API_for_XML_Web_Services http://en.wikipedia. org/wiki/Web_Services_Interoperability_Technology http://en.wikipedia.org/wiki/Representational_State_Transfer

JAX-WS Reference Implementation


https://jax-ws.dev.java.net/

ELO326-Seminario de Computadores II

Web Services

Referencias RESTful Web Services


http://www.oracle.com/technetwork/articles/javase/index-137171. html

RESTEasy - JBoss Community


http://jboss.org/resteasy

Apache Axis2
http://ws.apache.org/axis2/

ELO326-Seminario de Computadores II

Web Services
Introduccin a los Servicios Web
Carlos Carvajal G. Estudiante de Ing. Civil Electrnica UTFSM, 22/11/2010

ELO326-Seminario de Computadores II

You might also like