SlideShare una empresa de Scribd logo
Trabajo:
Presentado por:
Catedrático:
Laura Cortes Monge
pág. 2
SERVICIOS WEB
Los Servicios Web son uno de los pilares de los proyectos de integración, ya que
permiten la comunicación entre aplicaciones de distinto lenguaje ejecutadas sobre
cualquier plataforma.
La arquitectura SOA favorece en gran medida el mantenimiento y escalabilidad de
las aplicaciones, disminuyendo el acoplamiento de módulos.
SERVICIOS WEB EN JAVAEE
Java EE presenta dos API’s para el desarrollo de Servicios Web:
 JAX-RPC
 JAX-WS.
La plataforma JavaEE, incluye soporte para servicios web, utilizando el protocolo
SOAP, a través del API JAX-WS
JavaEE API para XML Servicios Web
La implementación de referencia se denomina Metro, es desarrollada por Oracle y
viene incluida dentro del servidor de aplicaciones GlassFish.
Servicios Web en JavaEE y JDK
En el caso de Jboss, la implementación de referencia viene incluida en el
componente JBossWS, dentro del servidor de aplicaciones JBoss.
A partir de la version 6 (update 4), la plataforma JavaEE estándar (JDK), incluye las
APIs para trabajar con JAX-WS y JAXB, fundamentales para el consumo de
servicios web.
Definiendo un Servicio Web
Laura Cortes Monge
pág. 3
SERVICIOS WEB
Implementar un Servicio Web
 Crear la lógica del negocio del Servicio Web. Primero necesitamos
escribir una clase Java que implemente la lógica de negocio del servicio
Web. Será una clase Java que simula un servicio de citas de stocks.
 Desplegar la clase Java en el servidor SOAP. Necesitamos convertir la
clase Java en un Servicio Web. Mostraremos como desplegar la clase Java
en un servidor SOAP usando la herramienta de despliegue de WASP.
 Generar las clases de acceso para los clientes. Una aplicación cliente
usa un objeto proxy para acceder al Servicio Web. En el momento de la
solicitud, el proxy acepta una llamada a un método Java desde la aplicación
y la traduce en un mensaje XML. En el momento de la respuesta, el proxy
recibe el mensaje de respuesta SOAP, lo traduce en objetos Java y devuelve
el resultado a la aplicación cliente.
 Desarrollar la aplicación cliente. La aplicación cliente trata el proxy como
un objeto Java estándar que facilita la comunicación con un Servicio Web.
SERVICIOS WEB EN PERL
SOAP::Lite es un conjunto de módulos de Perl que proveen una interfaz simple y
liviana para el protocolo SOAP, tanto en el lado cliente como en el del servidor.
SOAP::Lite es actualmente el kit de desarrollo de Servicios Web para Perl más
difundido y utilizado.
SOAP::Lite provee clases para implementar funcionalidades de un cliente SOAP,
varios servidores, soporte a datos y muchas otras tareas.
Soporte de Protocolos
 Soporta las especificaciones SOAP 1.1 y SOAP 1.2.
 Incluye XMLRPC::Lite, una implementación del protocolo XML-RPC en el
lado del cliente y del servidor. Entre los protocolos de trasporte disponibles,
están HTTP, SMTP, POP3 y TCP.
 Soporta publicación y peticiones UDDI del lado del cliente, a través de un
API.
Interoperabilidad
Se han realizado pruebas de interoperabilidad con diferentes implementaciones:
Apache SOAP, Frontier, Microsoft SOAP, Microsoft .NET, DevelopMentor,
XMethods, 4s4c, Phalanx, Kafka, SQLData, Lucin (en Java, Perl, C++, Python, VB,
COM, XSLT).
Laura Cortes Monge
pág. 4
SERVICIOS WEB
Protocolos de Transporte
 Provee implementaciones de servidores TCP con multiservidor “no-
bloqueante”
 Soporta transporte sobre Jabber, MQSeries y SMTP.
 Provee compresión transparente para HTTP.
 Soporta el protocolo HTTPS.
 Provee soporte para proxy.
 Provee implementaciones de servidor POP3.
 Soporta M-POST y redirección HTTP.
Ejemplo de la utilización del lenguaje Perl para exponer un servicio web
#!/usr/bin/perl -w
# Servicio web de ejemplo
package Cafetera;
use strict;
# Este es el constructor
sub new{
my $proto = shift;
my $class = ref($proto) || $proto;
my $tasas = 0;
bless($tasas,$class);
}
sub prepararCafe{
shift;
my $tasas = shift;
print STDERR "Llamado con el parámetro $tasas";
return "Se prepararon ".$tasas." tasas";
}
1;
#!/usr/bin/perl -w
# Servidor SOAP
use SOAP::Transport::HTTP;
use Cafetera;
#En el parámetro dispatch_to se especifica la ruta a los módulos disponibles
my $daemonio = SOAP::Transport::HTTP::Daemon
-> new(LocalAddr => 'localhost', LocalPort => 8070)
-> dispatch_to('/home/tesis/thewala/preparacion/P.5-IP/productos/servicio-en-perl','Cafetera')
;
print "La url del daemonio es:".$daemonio->url()." ";
$daemonio->handle();
Código fuente de un módulo de Perl
que implementa una clase llamada
“Cafetera”, con un único método
llamado “prepararCafe”, que recibe
como parámetro el número de tasas
y devuelve como resultado un
mensaje indicando el número de
tasas preparadas
</perl> Desde éste momento, cualquier aplicación puede empezar a consumir el
servicio web, si sabe cómo invocarlo. A continuación se muestra un cliente del
servicio hecho en Perl con SOAP::Lite:
Laura Cortes Monge
pág. 5
SERVICIOS WEB
SERVICIOS WEB EN PHP
Crear servicios usando únicamente php es que no hay forma de generar
automáticamente los ficheros WSDL. Estos ficheros son los encargados de describir
el servicio con las funciones que contiene y los parámetros que utilizan para que de
esta forma cualquier programador pueda hacer uso del servicio.
Cliente
 La creación de un cliente de un servicio web con PHP.
 Con la descripción del servicio al que queremos acceder (fichero wsdl),
obtendremos acceso a todos los métodos que ofrece el servicio web.
Servidor
La creación del servidor requiere crear un fichero php (en nuestro ejemplo
server.php) que contendrá las llamadas a las clases SOAP correspondientes al
servidor. En este mismo fichero se puede incluir la definición de la clase que
implementará todos los métodos exportados.
Generación del WSDL
 Hay herramientas que te permiten su generación del WSDL.
 Consiste en crear un constructor para nuestra clase y, en él, sobrescribir una
serie de arrays.
$objClienteWS = new SoapClient('Ws_Ejemplo.wsdl');
$resultado = $objClienteWS->ejemplo('Hola');
print_r($resultado);
require_once 'SOAP/Server.php';
class Prueba_Server {
function ejemplo($cadena){
return strrev($cadena);
}
}
$server = new SOAP_Server;
$server->_auto_translation = true;
$soapclass = new Prueba_Server();
$server->addObjectMap($soapclass,'urn:Prueba_Server');
$server->service($HTTP_RAW_POST_DATA);
require_once 'SOAP/Server.php';
class Prueba_Server {
function Prueba_Server(){
$this->__dispatch_map['ejemplo'] =
array(
'in' => array('cadena' => 'string',
),
'out' => array('cadena' => 'string'),
);
}
Laura Cortes Monge
pág. 6
SERVICIOS WEB
SERVICIOS WEB DE GOOGLE
 APIs de datos de Google – http://code.google.com/intl/es/apis/gdata/
Las APIs de datos de Google constituyen un sencillo protocolo estándar para leer e
introducir datos en la Web. Las APIs de datos de Google son un protocolo basado
en los formatos de sindicación Atom 1.0 y RSS 2.0, y en el Atom Publishing Protocol
(APP). Múltiples servicios de Google tienen APIs de datos, entre ellos: Google Base,
Blogger, Google Calendar, Google Docs y Álbumes web de Picasa.
 API de datos de Blogger - http://code.google.com/intl/es/apis/blogger/
La API de datos de Blogger permite a las aplicaciones cliente ver y actualizar
contenido de Blogger como feeds de la API de datos de Google. Las aplicaciones
cliente pueden utilizar esta API de datos de Google para crear nuevas entradas en
blogs, editar o eliminar entradas existentes y encontrar entradas que cumplan una
serie de criterios determinados.
 APIs de FeedBurner – http://code.google.com/intl/es/apis/feedburner/
FeedBurner ofrece servicios web que permiten interactuar con funciones de
generación de información y administración de feeds. A través de las funciones que
ofrece esta biblioteca.
 Autenticación de cuentas de
Google – http://code.google.com/intl/es/apis/accounts/
La API de ClientLogin permite incorporar accesos programáticos en aplicaciones
móviles o de escritorio, mientras que la API AuthSub ofrece a las aplicaciones web
la posibilidad de acceder a la cuenta de Google del usuario sin gestionar la
información de acceso del mismo.
 API de Google AdSense – http://code.google.com/intl/es/apis/adsense/
La API de Google AdSense permite integrar en tu web o en tu plataforma de
alojamiento de blogs el registro en AdSense, la administración de anuncios y los
informes. Tanto tú como tus usuarios podréis obtener ingresos a partir del contenido
web alojado en tu sitio mostrando anuncios relevantes.
 API de Google AdWords - http://www.google.com/apis/adwords/
La API de Google AdWords (beta) permite una integración directa tanto para
anunciantes como para terceros con la plataforma publicitaria AdWords.
 APIs AJAX de Google – http://code.google.com/intl/es/apis/ajax/
Las APIs AJAX de Google permiten crear sitios web completos y dinámicos
utilizando únicamente JavaScript y HTML.
Laura Cortes Monge
pág. 7
SERVICIOS WEB
 API AJAX de Google Search – http://code.google.com/intl/es/apis/ajaxsearch/
La API AJAX de Google Search te permitirá insertar un sencillo cuadro de búsqueda
de Google dinámico en tu sitio web y mostrar los resultados, o utilizar los resultados
de búsqueda de forma innovadora automáticamente.
 APIs de Google Apps – http://code.google.com/intl/es/apis/apps/
Google Apps también admite de forma universal la ampliación de servicios
individuales con los gadgets de Google, Google Calendar, Google Docs y Google
Talk.
 API de datos de Google Base – http://code.google.com/intl/es/apis/base/
Con la API de datos de Google Base puedes consultar datos de Google Base para
crear aplicaciones y mashups, así como introducir y administrar artículos de Google
Base de forma automática. La aplicación podrá incluir información nueva en Google
Base, actualizar o eliminar artículos existentes y ejecutar consultas especializadas
para buscar resultados con complejos atributos de búsqueda.
 Herramientas y APIs de Google
Calendar – http://code.google.com/intl/es/apis/calendar/
La API de datos de Google Calendar y otras herramientas te ofrecen muchas
posibilidades: crear una interfaz de usuario web para el calendario de tu grupo,
generar un calendario público con la información de la base de datos de eventos de
tu organización, crear gadgets de Google y muchas cosas más.
 API de datos para la lista de Google
Docs – http://code.google.com/intl/es/apis/documents/
La API de datos para la lista de Google Docs permite a las aplicaciones cliente
acceder a los documentos guardados en Google Docs a través de feeds de la API
de datos de Google.
 API de gadgets de Google – http://code.google.com/intl/es/apis/gadgets/
Los gadgets de Google son sencillas miniaplicaciones HTML y JavaScript dentro de
iFrames que se pueden insertar en páginas web y otras aplicaciones. Las bibliotecas
integradas de JavaScript facilitan la creación de gadgets con fichas, contenido
Flash, almacenamiento persistente, reajuste dinámico de tamaño y más.
 Google Gears – http://code.google.com/intl/es/apis/gears/
Google Gears es una extensión de software libre para navegadores que te permite
crear aplicaciones web que se ejecutan sin conexión. Así, te permite almacenar y
ofrecer recursos de la aplicación a nivel local, almacenar información a nivel local
en una base de datos relacional en la que se puede buscar y ejecutar JavaScript
asíncrono para mejorar la capacidad de respuesta de la aplicación.
Laura Cortes Monge
pág. 8
SERVICIOS WEB
 API de Google Maps – http://code.google.com/intl/es/apis/maps/
La API de Google Maps permite crear innovadoras aplicaciones geográficas online
e integrar mapas y referencias geográficas en sitios web.
 Feeds Atom de
Gmail - http://gmail.google.com/support/bin/answer.py?answer=13465
Este sencillo mecanismo de feeds permite leer etiquetas o mensajes recibidos en
Gmail mediante cualquier agregador que admita el formato de feeds Atom XML.
 Autenticación de cuentas de
Google – http://code.google.com/intl/es/apis/accounts/
La API de ClientLogin permite incorporar accesos programáticos en aplicaciones
móviles o de escritorio, mientras que la API AuthSub ofrece a las aplicaciones web
la posibilidad de acceder a la cuenta de Google del usuario sin gestionar la
información de acceso del mismo.
 API de datos para la lista de Google
Docs – http://code.google.com/intl/es/apis/documents/
La API de datos para la lista de Google Docs permite a las aplicaciones cliente
acceder a los documentos guardados en Google Docs a través de feeds de la API
de datos de Google. Las aplicaciones cliente pueden solicitar una lista de los
documentos de texto o de las hojas de cálculo de un usuario y subirlos a Google
Docs.

Más contenido relacionado

La actualidad más candente

2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
Samuel Marrero
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
omicx
 
MVC en CakePHP 2.0
MVC en CakePHP 2.0MVC en CakePHP 2.0
MVC en CakePHP 2.0
Saúl Vázquez
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
José Alfredo Ramírez
 
9.laravel
9.laravel9.laravel
Curso Java Avanzado 3 Js Ps
Curso Java Avanzado   3 Js PsCurso Java Avanzado   3 Js Ps
Curso Java Avanzado 3 Js Ps
Emilio Aviles Avila
 
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
Emilio Aviles Avila
 
Tutorial de ASP
Tutorial de ASPTutorial de ASP
Tutorial de ASP
Leo_Mini
 
Primefaces
PrimefacesPrimefaces
Primefaces
Vortexbird
 
Laravel vc
Laravel vcLaravel vc
Laravel vc
Victor Cusco
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
Facundo E. Goñi Perez
 
Resumen jee
Resumen jeeResumen jee
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
ea2014G3
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jsp
dtbadboy0
 
Apache Camel - Parte II
Apache Camel - Parte IIApache Camel - Parte II
Apache Camel - Parte II
Abimael Desales López
 
Apache Camel
Apache CamelApache Camel
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
Carlos Zantana
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Emilio Aviles Avila
 
Pleased to meet you, Laravel
Pleased to meet you, LaravelPleased to meet you, Laravel
Pleased to meet you, Laravel
Rolando Caldas
 
Rails Plugins. Javier Ramirez
Rails Plugins. Javier RamirezRails Plugins. Javier Ramirez
Rails Plugins. Javier Ramirez
javier ramirez
 

La actualidad más candente (20)

2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
MVC en CakePHP 2.0
MVC en CakePHP 2.0MVC en CakePHP 2.0
MVC en CakePHP 2.0
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
 
9.laravel
9.laravel9.laravel
9.laravel
 
Curso Java Avanzado 3 Js Ps
Curso Java Avanzado   3 Js PsCurso Java Avanzado   3 Js Ps
Curso Java Avanzado 3 Js Ps
 
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
 
Tutorial de ASP
Tutorial de ASPTutorial de ASP
Tutorial de ASP
 
Primefaces
PrimefacesPrimefaces
Primefaces
 
Laravel vc
Laravel vcLaravel vc
Laravel vc
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Resumen jee
Resumen jeeResumen jee
Resumen jee
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jsp
 
Apache Camel - Parte II
Apache Camel - Parte IIApache Camel - Parte II
Apache Camel - Parte II
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
 
Pleased to meet you, Laravel
Pleased to meet you, LaravelPleased to meet you, Laravel
Pleased to meet you, Laravel
 
Rails Plugins. Javier Ramirez
Rails Plugins. Javier RamirezRails Plugins. Javier Ramirez
Rails Plugins. Javier Ramirez
 

Similar a Servicios web

Servicios web java, php, perl, google
Servicios web java, php, perl, googleServicios web java, php, perl, google
Servicios web java, php, perl, google
Octavio Izucar Martinez
 
Servicios web
Servicios webServicios web
Servicios web
itoomac02
 
Servicios web
Servicios webServicios web
Servicios web
itoomac02
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, java
Faby Marcos Solis
 
Servicio web java php perl google
Servicio web  java php perl googleServicio web  java php perl google
Servicio web java php perl google
SeveredDRA
 
Servicios web
Servicios webServicios web
Servicios web
Alan Flores Gaspar
 
Servicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y GoogleServicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y Google
Armando Nuñez Ramos
 
Servicio web
Servicio web Servicio web
Servicio web
Yael67
 
Servicios web
Servicios webServicios web
Servicios web
Joel Balderrama Rosas
 
Servicios web
Servicios webServicios web
Servicios web
Joel Balderrama Rosas
 
Servicios web
Servicios webServicios web
Tema servlets
Tema servletsTema servlets
Tema servlets
simeonhuamanchao
 
Tema servlets
Tema servletsTema servlets
Tema servlets
simeonhuamanchao
 
Tema servlets
Tema servletsTema servlets
Tema servlets
simeonhuamanchao
 
Tema servlets
Tema servletsTema servlets
Tema servlets
simeonhuamanchao
 
Servicios Web II.ppt
Servicios Web II.pptServicios Web II.ppt
Servicios Web II.ppt
DiegoRomn20
 
Servicios web
Servicios webServicios web
Servicios web
Emilio Sarabia
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
Yair Ambrocio
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
Ander Martinez
 
Programación en Internet
Programación en InternetProgramación en Internet
Programación en Internet
Fernando Solis
 

Similar a Servicios web (20)

Servicios web java, php, perl, google
Servicios web java, php, perl, googleServicios web java, php, perl, google
Servicios web java, php, perl, google
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, java
 
Servicio web java php perl google
Servicio web  java php perl googleServicio web  java php perl google
Servicio web java php perl google
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y GoogleServicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y Google
 
Servicio web
Servicio web Servicio web
Servicio web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Servicios Web II.ppt
Servicios Web II.pptServicios Web II.ppt
Servicios Web II.ppt
 
Servicios web
Servicios webServicios web
Servicios web
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
 
Programación en Internet
Programación en InternetProgramación en Internet
Programación en Internet
 

Servicios web

  • 2. Laura Cortes Monge pág. 2 SERVICIOS WEB Los Servicios Web son uno de los pilares de los proyectos de integración, ya que permiten la comunicación entre aplicaciones de distinto lenguaje ejecutadas sobre cualquier plataforma. La arquitectura SOA favorece en gran medida el mantenimiento y escalabilidad de las aplicaciones, disminuyendo el acoplamiento de módulos. SERVICIOS WEB EN JAVAEE Java EE presenta dos API’s para el desarrollo de Servicios Web:  JAX-RPC  JAX-WS. La plataforma JavaEE, incluye soporte para servicios web, utilizando el protocolo SOAP, a través del API JAX-WS JavaEE API para XML Servicios Web La implementación de referencia se denomina Metro, es desarrollada por Oracle y viene incluida dentro del servidor de aplicaciones GlassFish. Servicios Web en JavaEE y JDK En el caso de Jboss, la implementación de referencia viene incluida en el componente JBossWS, dentro del servidor de aplicaciones JBoss. A partir de la version 6 (update 4), la plataforma JavaEE estándar (JDK), incluye las APIs para trabajar con JAX-WS y JAXB, fundamentales para el consumo de servicios web. Definiendo un Servicio Web
  • 3. Laura Cortes Monge pág. 3 SERVICIOS WEB Implementar un Servicio Web  Crear la lógica del negocio del Servicio Web. Primero necesitamos escribir una clase Java que implemente la lógica de negocio del servicio Web. Será una clase Java que simula un servicio de citas de stocks.  Desplegar la clase Java en el servidor SOAP. Necesitamos convertir la clase Java en un Servicio Web. Mostraremos como desplegar la clase Java en un servidor SOAP usando la herramienta de despliegue de WASP.  Generar las clases de acceso para los clientes. Una aplicación cliente usa un objeto proxy para acceder al Servicio Web. En el momento de la solicitud, el proxy acepta una llamada a un método Java desde la aplicación y la traduce en un mensaje XML. En el momento de la respuesta, el proxy recibe el mensaje de respuesta SOAP, lo traduce en objetos Java y devuelve el resultado a la aplicación cliente.  Desarrollar la aplicación cliente. La aplicación cliente trata el proxy como un objeto Java estándar que facilita la comunicación con un Servicio Web. SERVICIOS WEB EN PERL SOAP::Lite es un conjunto de módulos de Perl que proveen una interfaz simple y liviana para el protocolo SOAP, tanto en el lado cliente como en el del servidor. SOAP::Lite es actualmente el kit de desarrollo de Servicios Web para Perl más difundido y utilizado. SOAP::Lite provee clases para implementar funcionalidades de un cliente SOAP, varios servidores, soporte a datos y muchas otras tareas. Soporte de Protocolos  Soporta las especificaciones SOAP 1.1 y SOAP 1.2.  Incluye XMLRPC::Lite, una implementación del protocolo XML-RPC en el lado del cliente y del servidor. Entre los protocolos de trasporte disponibles, están HTTP, SMTP, POP3 y TCP.  Soporta publicación y peticiones UDDI del lado del cliente, a través de un API. Interoperabilidad Se han realizado pruebas de interoperabilidad con diferentes implementaciones: Apache SOAP, Frontier, Microsoft SOAP, Microsoft .NET, DevelopMentor, XMethods, 4s4c, Phalanx, Kafka, SQLData, Lucin (en Java, Perl, C++, Python, VB, COM, XSLT).
  • 4. Laura Cortes Monge pág. 4 SERVICIOS WEB Protocolos de Transporte  Provee implementaciones de servidores TCP con multiservidor “no- bloqueante”  Soporta transporte sobre Jabber, MQSeries y SMTP.  Provee compresión transparente para HTTP.  Soporta el protocolo HTTPS.  Provee soporte para proxy.  Provee implementaciones de servidor POP3.  Soporta M-POST y redirección HTTP. Ejemplo de la utilización del lenguaje Perl para exponer un servicio web #!/usr/bin/perl -w # Servicio web de ejemplo package Cafetera; use strict; # Este es el constructor sub new{ my $proto = shift; my $class = ref($proto) || $proto; my $tasas = 0; bless($tasas,$class); } sub prepararCafe{ shift; my $tasas = shift; print STDERR "Llamado con el parámetro $tasas"; return "Se prepararon ".$tasas." tasas"; } 1; #!/usr/bin/perl -w # Servidor SOAP use SOAP::Transport::HTTP; use Cafetera; #En el parámetro dispatch_to se especifica la ruta a los módulos disponibles my $daemonio = SOAP::Transport::HTTP::Daemon -> new(LocalAddr => 'localhost', LocalPort => 8070) -> dispatch_to('/home/tesis/thewala/preparacion/P.5-IP/productos/servicio-en-perl','Cafetera') ; print "La url del daemonio es:".$daemonio->url()." "; $daemonio->handle(); Código fuente de un módulo de Perl que implementa una clase llamada “Cafetera”, con un único método llamado “prepararCafe”, que recibe como parámetro el número de tasas y devuelve como resultado un mensaje indicando el número de tasas preparadas </perl> Desde éste momento, cualquier aplicación puede empezar a consumir el servicio web, si sabe cómo invocarlo. A continuación se muestra un cliente del servicio hecho en Perl con SOAP::Lite:
  • 5. Laura Cortes Monge pág. 5 SERVICIOS WEB SERVICIOS WEB EN PHP Crear servicios usando únicamente php es que no hay forma de generar automáticamente los ficheros WSDL. Estos ficheros son los encargados de describir el servicio con las funciones que contiene y los parámetros que utilizan para que de esta forma cualquier programador pueda hacer uso del servicio. Cliente  La creación de un cliente de un servicio web con PHP.  Con la descripción del servicio al que queremos acceder (fichero wsdl), obtendremos acceso a todos los métodos que ofrece el servicio web. Servidor La creación del servidor requiere crear un fichero php (en nuestro ejemplo server.php) que contendrá las llamadas a las clases SOAP correspondientes al servidor. En este mismo fichero se puede incluir la definición de la clase que implementará todos los métodos exportados. Generación del WSDL  Hay herramientas que te permiten su generación del WSDL.  Consiste en crear un constructor para nuestra clase y, en él, sobrescribir una serie de arrays. $objClienteWS = new SoapClient('Ws_Ejemplo.wsdl'); $resultado = $objClienteWS->ejemplo('Hola'); print_r($resultado); require_once 'SOAP/Server.php'; class Prueba_Server { function ejemplo($cadena){ return strrev($cadena); } } $server = new SOAP_Server; $server->_auto_translation = true; $soapclass = new Prueba_Server(); $server->addObjectMap($soapclass,'urn:Prueba_Server'); $server->service($HTTP_RAW_POST_DATA); require_once 'SOAP/Server.php'; class Prueba_Server { function Prueba_Server(){ $this->__dispatch_map['ejemplo'] = array( 'in' => array('cadena' => 'string', ), 'out' => array('cadena' => 'string'), ); }
  • 6. Laura Cortes Monge pág. 6 SERVICIOS WEB SERVICIOS WEB DE GOOGLE  APIs de datos de Google – http://code.google.com/intl/es/apis/gdata/ Las APIs de datos de Google constituyen un sencillo protocolo estándar para leer e introducir datos en la Web. Las APIs de datos de Google son un protocolo basado en los formatos de sindicación Atom 1.0 y RSS 2.0, y en el Atom Publishing Protocol (APP). Múltiples servicios de Google tienen APIs de datos, entre ellos: Google Base, Blogger, Google Calendar, Google Docs y Álbumes web de Picasa.  API de datos de Blogger - http://code.google.com/intl/es/apis/blogger/ La API de datos de Blogger permite a las aplicaciones cliente ver y actualizar contenido de Blogger como feeds de la API de datos de Google. Las aplicaciones cliente pueden utilizar esta API de datos de Google para crear nuevas entradas en blogs, editar o eliminar entradas existentes y encontrar entradas que cumplan una serie de criterios determinados.  APIs de FeedBurner – http://code.google.com/intl/es/apis/feedburner/ FeedBurner ofrece servicios web que permiten interactuar con funciones de generación de información y administración de feeds. A través de las funciones que ofrece esta biblioteca.  Autenticación de cuentas de Google – http://code.google.com/intl/es/apis/accounts/ La API de ClientLogin permite incorporar accesos programáticos en aplicaciones móviles o de escritorio, mientras que la API AuthSub ofrece a las aplicaciones web la posibilidad de acceder a la cuenta de Google del usuario sin gestionar la información de acceso del mismo.  API de Google AdSense – http://code.google.com/intl/es/apis/adsense/ La API de Google AdSense permite integrar en tu web o en tu plataforma de alojamiento de blogs el registro en AdSense, la administración de anuncios y los informes. Tanto tú como tus usuarios podréis obtener ingresos a partir del contenido web alojado en tu sitio mostrando anuncios relevantes.  API de Google AdWords - http://www.google.com/apis/adwords/ La API de Google AdWords (beta) permite una integración directa tanto para anunciantes como para terceros con la plataforma publicitaria AdWords.  APIs AJAX de Google – http://code.google.com/intl/es/apis/ajax/ Las APIs AJAX de Google permiten crear sitios web completos y dinámicos utilizando únicamente JavaScript y HTML.
  • 7. Laura Cortes Monge pág. 7 SERVICIOS WEB  API AJAX de Google Search – http://code.google.com/intl/es/apis/ajaxsearch/ La API AJAX de Google Search te permitirá insertar un sencillo cuadro de búsqueda de Google dinámico en tu sitio web y mostrar los resultados, o utilizar los resultados de búsqueda de forma innovadora automáticamente.  APIs de Google Apps – http://code.google.com/intl/es/apis/apps/ Google Apps también admite de forma universal la ampliación de servicios individuales con los gadgets de Google, Google Calendar, Google Docs y Google Talk.  API de datos de Google Base – http://code.google.com/intl/es/apis/base/ Con la API de datos de Google Base puedes consultar datos de Google Base para crear aplicaciones y mashups, así como introducir y administrar artículos de Google Base de forma automática. La aplicación podrá incluir información nueva en Google Base, actualizar o eliminar artículos existentes y ejecutar consultas especializadas para buscar resultados con complejos atributos de búsqueda.  Herramientas y APIs de Google Calendar – http://code.google.com/intl/es/apis/calendar/ La API de datos de Google Calendar y otras herramientas te ofrecen muchas posibilidades: crear una interfaz de usuario web para el calendario de tu grupo, generar un calendario público con la información de la base de datos de eventos de tu organización, crear gadgets de Google y muchas cosas más.  API de datos para la lista de Google Docs – http://code.google.com/intl/es/apis/documents/ La API de datos para la lista de Google Docs permite a las aplicaciones cliente acceder a los documentos guardados en Google Docs a través de feeds de la API de datos de Google.  API de gadgets de Google – http://code.google.com/intl/es/apis/gadgets/ Los gadgets de Google son sencillas miniaplicaciones HTML y JavaScript dentro de iFrames que se pueden insertar en páginas web y otras aplicaciones. Las bibliotecas integradas de JavaScript facilitan la creación de gadgets con fichas, contenido Flash, almacenamiento persistente, reajuste dinámico de tamaño y más.  Google Gears – http://code.google.com/intl/es/apis/gears/ Google Gears es una extensión de software libre para navegadores que te permite crear aplicaciones web que se ejecutan sin conexión. Así, te permite almacenar y ofrecer recursos de la aplicación a nivel local, almacenar información a nivel local en una base de datos relacional en la que se puede buscar y ejecutar JavaScript asíncrono para mejorar la capacidad de respuesta de la aplicación.
  • 8. Laura Cortes Monge pág. 8 SERVICIOS WEB  API de Google Maps – http://code.google.com/intl/es/apis/maps/ La API de Google Maps permite crear innovadoras aplicaciones geográficas online e integrar mapas y referencias geográficas en sitios web.  Feeds Atom de Gmail - http://gmail.google.com/support/bin/answer.py?answer=13465 Este sencillo mecanismo de feeds permite leer etiquetas o mensajes recibidos en Gmail mediante cualquier agregador que admita el formato de feeds Atom XML.  Autenticación de cuentas de Google – http://code.google.com/intl/es/apis/accounts/ La API de ClientLogin permite incorporar accesos programáticos en aplicaciones móviles o de escritorio, mientras que la API AuthSub ofrece a las aplicaciones web la posibilidad de acceder a la cuenta de Google del usuario sin gestionar la información de acceso del mismo.  API de datos para la lista de Google Docs – http://code.google.com/intl/es/apis/documents/ La API de datos para la lista de Google Docs permite a las aplicaciones cliente acceder a los documentos guardados en Google Docs a través de feeds de la API de datos de Google. Las aplicaciones cliente pueden solicitar una lista de los documentos de texto o de las hojas de cálculo de un usuario y subirlos a Google Docs.