2. Los servicios web han venido a revolucionar el mundo de la programación y de los juegos,
nos ofrecen una infinidad de ventajas y nos ayudan a mejorar la forma de procesar
información. Pero, ¿qué es un servicio web?, pues bien, es computación distribuida
utilizando estándares abiertos como XML y HTTP para llamar o invocar funciones de otras
aplicaciones independientes sea cual sea el sistema operativo o plataforma en que se
ejecutan.
SERVICIOS WEB CON PHP
Para lograr la implementación de servicios web en PHP se usó las tecnologías XML-
RPC y SOAP sobre las cuales se implementaron servidores y clientes consumidores de servicios
web.
Desarrollo de un servidor XML-RPC
Como usaremos el framework XML-RPC desarrollado por Edd Dumbill para desarrollar
nuestros servicios web basados en XML-RPC.
Dicho framework cuenta con la clase xmlrpc_server para construir nuestros servidores, la cual
se ha desarrollado lo más simple posible. El constructor básicamente hace todo el trabajo,
veamos un pequeño ejemplo:
<?php
function foo($parametros){
/* Instrucciones php */
}
$servidor=new xmlrpc_server(array("ejemplo.miFuncion"=>array("function"=>"foo")));
?>
CONSUMO: Desarrollo de clientes SOAP con PHP
<?php
include("xmlrpc.inc");
if ($HTTP_POST_VARS["txtIsbn"]!="")
{ $f=new xmlrpcmsg('libros.buscaIsbn',array(new xmlrpcval($HTTP_POST_VARS["txtIsbn"], "int")));
print "<pre>".htmlentities($f->serialize())."</pre>n";
$c=new xmlrpc_client("/servidor.php", "localhost", 80);
$c->setDebug(0);
$r=$c->send($f);
3. if (!$r)
{ die("Falló SEND"); }
$v=$r->value();
if (!$r->faultCode())
{ print "Título del libro ".$HTTP_POST_VARS["txtIsbn"]." es ".$v->scalarval()."<BR>"; }
else
{ print "Falla: ";
print "Número de error: " .$r->faultCode()." Descripción del error '".$r->faultString()."'<BR>";}
}
?>
Ya hemos implementado nuestro servidor y nuestro cliente XML-RPC.
SERVICIOS WEB CON PERL
Perl, al igual que la mayoría de los idiomas, oculta al programador de las complejidades
con una caja de herramientas. el soap :: Lite conjunto de herramientas es una de las
implementaciones más completas de jabón disponibles, apoyando ambas versiones 1.1 y
1.2 de soap.
Comencemos por crear el módulo Perl Hello World :
Ejemplo 3-3: Hello.pm
# Hello.pm - Hola módulo sencillo
paquete Hello;
sub sayHello {
turno; # eliminar nombre de la clase
de retorno "Hello". cambio;
}
Este módulo será el código que se encuentra detrás de nuestra interfaz de servicio web.
CONSUMO :El Cliente Hola
Para probar el servicio web Hola, sólo tiene que utilizar el script de cliente .
Ejemplo 3-5: hw_client.pl
! # / Usr / bin / perl-w
# hw_client.pl - Hola cliente
utilización SOAP :: Lite;
4. mi $ nombre = cambio;
print " n nCalling el servidor SOAP para saludar n ";
print "El servidor SOAP dice: ";
impresión SOAP :: Lite
-> uri ('urn: Ejemplo 1')
-> proxy ('http://localhost/cgi-bin/helloworld.cgi')
-> sayHello ($ name)
-> como resultado. " N n";
Al ejecutar esta secuencia de comandos que debe dar los siguientes resultados:
% Perl
hw_client.pl James
Llamar al servidor SOAP para saludar
al servidor SOAP dice: Hola James
%
SERVICIO WEB CON JAVA
Existen gran cantidad de implementaciones que ayudan al desarrollo de Servicios Web para cada
uno de los lenguajes de programación.
Sun provee de una serie de tecnologías en su versión Java EE para el desarrollo de Servicios Web.
Éstas tecnologías son estándares de desarrollo, así como API’s que especifican el comportamiento
de implementaciones.
A partir de la version 6 (update 4), la plataforma Java estándar (JDK), incluye las APIs para
trabajar con JAX-WS y JAXB, fundamentales para el consumo de web services .
Definiendo un servidio web :
@WebService
Public class cardvalidator{
Public boolean validate(CreditCard creditCard){
String lastDigit=creditCard.getNumber().substring(
creditCard.getNumber().length() -1,
creditCard.getNumber().length());
if()Integer.parseInt(lastDigit)%2!=0){
return true;
} else
{return false;}
}
}
5. En el ejemplo anterior se intercambia un objeto CreditCard entre el consumidor y el
proveedor del servicio .
Los datos intercambiados, deben ser un documento XML, por lo que se necesita un
método para transformar el objeto Java en un documento XML y viceversa .
Para esto utilizamos JAXB, anotándolo con @javax.xml.bind. annotation.XmlRootElement .
CONSUMO:
Public class Main{
Public static void main(String[] args){
CreditCard creditCard=new CreditCard();
CreditCard.setNumber(“12341234”);
CreditCard.setExpiryDate(“10/10”);
CreditCard.setType(“visa”);
CreditCard.setControlNumber(1234);
CardValidator cardValidator=
new CardValidatorService().getCardValidatorPort();
cardValidator.validate(creditCard);
}
}
SERVICIOS WEB GOOGLE
Los productos que Google ofrece a los desarrolladores.
Android – http://code.google.com/intl/es/android/
Androide es una pila de software para dispositivos móviles que incluye un sistema
operativo, aplicaciones esenciales y middleware
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. Por ejemplo: 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.
APIs de FeedBurner – http://code.google.com/intl/es/apis/feedburner/
6. FeedBurner ofrece servicios web que permiten interactuar con funciones de generación
de información y administración de feeds.
Autenticación de cuentas de Google – http://code.google.com/intl/es/apis/accounts/
API de Google AdSense – http://code.google.com/intl/es/apis/adsense/
API de Google AdWords http://www.google.com/apis/adwords/-
APIs AJAX de Google – http://code.google.com/intl/es/apis/ajax/
– http://code.google.com/intl/es/apis/ajaxfeeds/API AJAX de Google para feeds
API AJAX de Google Search – http://code.google.com/intl/es/apis/ajaxsearch/
Google Analytics – http://code.google.com/intl/es/apis/analytics/
APIs de Google Apps – http://code.google.com/intl/es/apis/apps/
API de datos de Google Base – http://code.google.com/intl/es/apis/base/
Herramientas y APIs de Google Calendar –
http://code.google.com/intl/es/apis/calendar/
API de Google Chart http://code.google.com/intl/es/apis/chart/–
API de Google Checkout – http://code.google.com/intl/es/apis/checkout/
Google Code Search – http://www.google.com/codesearch
API de datos de Google Code Search –
http://code.google.com/intl/es/apis/codesearch/
Feeds de vales descuento de Google – http://code.google.com/intl/es/apis/coupons/
API de gadgets de Google Desktop – http://code.google.com/intl/es/apis/desktop/
APIs de búsqueda de Google Desktop – http://code.google.com/intl/es/apis/desktop/
API de datos para la lista de Google Docs –
http://code.google.com/intl/es/apis/documents/
– http://code.google.com/intl/es/apis/gadgets/API de gadgets de Google
Google Gears http://code.google.com/intl/es/apis/gears/–
KML de Google – http://code.google.com/intl/es/apis/kml/
Mapplets de Google –
http://code.google.com/intl/es/apis/maps/documentation/mapplets/
API de Google Maps – http://code.google.com/intl/es/apis/maps/
Google Mashup Editor – http://code.google.com/intl/es/gme/
7. OpenSocial http://code.google.com/intl/es/apis/opensocial/-
- http://code.google.com/intl/es/apis/orkut/Sitio del desarrollador de Orkut APIs de
navegación segura de Google http://code.google.com/intl/es/apis/safebrowsing/-
APIs de Google Search Appliance – http://code.google.com/intl/es/enterprise/
Feeds del Historial de búsquedas de Google –
http://www.google.com/support/accounts/bin/answer.py?answer=54464
– https://www.google.com/webmasters/tools/docs/en/about.htmlGoogle Sitemaps
– http://code.google.com/intl/es/apis/sketchup/API Ruby de Google SketchUp
API de gráficos sociales – http://code.google.com/intl/es/apis/socialgraph/
API de datos de Google Docs – http://code.google.com/intl/es/apis/spreadsheets/
XMPP de Google Talk - http://code.google.com/intl/es/apis/talk/
– http://code.google.com/intl/es/apis/themes/API de Temas de iGoogle
- http://www.google.com/tools/toolbar/buttons/apisAPI de la Barra Google
Especificación de feeds de Google Transit–
http://code.google.com/intl/es/transit/spec/transit_feed_specification.htm
Google Web Toolkit http://code.google.com/intl/es/webtoolkit/-
API de los Álbumes web de Picasa
– http://code.google.com/intl/es/apis/youtube/API de datos de YouTube