1. Servicio Web Java
Un WSDL es un archivo en formato XML que describe las características y operaciones que
conforman un Web Service. Es decir, a partir de este WSDL y sabiendo interpretarlo, se puede
saber qué datos pueden ser obtenidos a través del Web Service.
El protocolo utilizado para realizar las peticiones y obtener las respuestas es SOAP, que utiliza
XML para intercambiar los datos necesarios.
Un servidor que ofrece servicios web en java es:
http://www.webservicex.net/WS/wscatlist.aspx
Uso de Servicios Web ya publicados
Se mostrará un ejemplo de creación de clientes para Servicios Web ya publicados a partir del
documento WSDL que los describe.
wsimport analiza el documentos WSDL que describe el servicio Web y crea un conjunto de
clases auxiliares
Clases stub que representan localmente al servicio Web
Crea una clase para cada <service> y cada <port> declarado en el fichero WSDL (mantiene los
nombres del WSDL)
Las clases asociadas a los <port> disponen de un método por cada una de las operaciones
(<operation>) incluidas en el <portType> correspondiente.
Clases complementarias para implementar la serializacion/deserializacion de los mensajes
SOAP de cada una de las operaciones
Clases de apoyo para el acceso a estructuras XML complejas que se usen como parámetro o
valor de retorno en las invocaciones SOAP
Permiten acceder a fragmentos XML mediante objetos Java
Su implementación seria:
import java.net.URL;
public class Test
{
public static void main(String[] arg)
{
try
{
WeatherSoapStub service = (WeatherSoapStub)new WeatherLocator().getWeatherSoap(new
URL("http://ws.cdyne.com/WeatherWS/Weather.asmx"));
WeatherReturn weather = service.getCityWeatherByZIP("47710");
System.out.println("Location: " + weather.getCity() + ", " + weather.getState());
System.out.println("Description: " + weather.getDescription());
System.out.println("Temperature: " + weather.getTemperature() + " degrees");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
2. Servicios web PHP
El servicio SOAP de SIGUA está desarrollado sobre plataforma Mono/ASP.NET. La práctica
totalidad de los métodos de este servicio devuelve estructuras de tipo DataSet serializadas
como XML. La clase System.Data.DataSet constituye uno de los tipos estructurados más
empleados a la hora de recuperar conjuntos de registros de base de datos con ADO.NET. Sin
embargo, el manejo de este tipo de estructuras en PHP puede resultar un hándicap, por lo que
ofrecemos aquí la que pensamos es la solución más flexible para aquellos que deseen explotar
el WebService de SIGUA en su aplicación Web PHP.
PHP5 incorpora de forma nativa potentes funciones para el desarrollo rápido de clientes SOAP.
Sin embargo, por nuestra experiencia y hasta la fecha, todavía no realiza la interpretación o
conversión de DataSets explícitamente "tipados" de .NET a arrays asociativos, que podríamos
considerar como la estructura de PHP que mejor se adapta. Por contra, al consumir un
WebMethod que devuelva un objeto DataSet tendremos acceso a la respuesta XML en crudo.
Teniendo en cuenta que es más sencillo y conveniente trabajar con arrays asociativos que
recorrer un documento XML para filtrar los elementos que nos interesan, proponemos el uso de
NuSOAP. En su versión 0.7.3, este toolkit para el desarrollo de servicios y clientes SOAP,
facilita el tratamiento de DataSets "tipados" .NET como arrays asociativos.
Estos son algunos servidores con servicios web en php:
http://www.webserviceshare.com/
http://hitcounters.miarroba.com/features.php
A continuación ofrecemos un ejemplo de código PHP en el que se utiliza la librería NuSOAP
para desarrollar una clase capaz de conectar con el servicio SOAP de SIGUA, invocar
cualquier método que devuelva un DataSet y recuperar los datos en forma de "array"
asociativo.
<?php
require_once("nusoap.php");
class CliSOAP
{
//Cliente NuSOAP
private $_client;
//Constructor
//$wsdl es la URL de enlace (string)
//$user y $password son el usuario y clave de Apache para autentificación básica (string)
public function __construct($wsdl, $user, $password)
{
//Instancia del cliente NuSOAP
$this->_client = new nusoap_client($wsdl, "wsdl", "", "", "", "");
$err = $this->_client->getError();
if ($err)
3. {
throw new Exception("Error al instanciar el cliente NuSOAP: " . $err);
}
//Asignación de credenciales
$this->_client->setCredentials($user, $password, "basic");
}
//Este método trata el DataSet serializado (array asociativo) y recupera el subarray que
contiene los datos.
//$methodname es el nombre del método (string)
//$params es el array de parámetros (array asociativo o null)
function SOAPRequest($methodname, $params)
{
//Invocación del método
$result = $this->_client->call($methodname, $params);
if ($this->_client->fault)
{
throw new Exception("Fallo al invocar el método " . $methodname . ":" .
var_dump($result));
}
else
{
$err = $this->_client->getError();
if ($err)
{
throw new Exception("La llamada al método " . $methodname . " generó un error: " .
$err);
}
else
{
//Comprobamos que el elemento "diffgram" es un array, de lo contrario es un conjunto
vacío de registros
if(is_array($result[$methodname . "Result"]["diffgram"]))
{
//Recuperamos el elemento "Table", que es el que contiene los datos propiamente
dichos
return $result[$methodname . "Result"]["diffgram"]["NewDataSet"]["Table"];
4. }
else
{
return null;
}
Servicios web perl
WSDL::Generator es un módulo de Perl para crear archivos de descripción de servicios
(WSDL) automáticamente a partir de módulos de perl expuestos como servicios web. Éste
módulo, desarrollado por Pierre Denis <pdenis@fotango.com>, es tal vez el único que se ha
creado hasta ahora con ésta funcionalidad en el mundo de Perl. SOAP::Lite y
WSDL::Generator en la Práctica.
A continuación, se muestra un ejemplo de la utilización del lenguaje Perl para exponer un
servicio web sencillo. En la documentación de los módulos puede encontrarse una descripción
extendida de todas las funcionalidades que poseen y cómo utilizarlas.
El siguiente es el 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:
Código del archivo Cafetera.pm <perl>
#!/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;
5. print STDERR "Llamado con el parámetro $tasas";
return "Se prepararon ".$tasas." tasas";
}
1;
</perl> A continuación se muestra el uso del módulo SOAP::Lite para exponer el módulo
Cafetera como un servicio web, usando el servidor tipo SOAP::Transport::HTTP::Daemon:
Código del archivo servidor.pl <perl>
#!/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();
</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:
Servicios web google
Lista de servicios de Google:
Añadir a Google Reader permite la creación de un botón gráfico con la
dirección del RSS de tú blog para que al clickarlo este sea añadido a Google
Reader.
Blogger es un servicio muy popular y gratuito de creación y publicación de
blogs.
Froogle es un buscador de productos. Utilizado para buscar el precio más
barato de un producto y la comparativa de estos en diferentes tiendas online.
6. GMail es el servicio de correo electrónico de google, actualmente
proporciona más de 2GB de capacidad de almacenamiento.
Google AdSense es el servicio de publicidad contextual de Google.
Google AdWords es la otra parte de AdSense. Mientras AdSense permite a
los webmasters poner los anuncios en sus web, Adwords permite la
publicación de estos en la red de AdSense. Además el pasado 21 de
noviembre Google liberó el "Onsite Advertiser Sign-Up" que permite a un
anunciante publicar sus anuncios en sitios específicos de la red AdSense.
Google Alerts te permite ser avisado por correo electrónico acerca de
búsquedas y/o textos particulares.
Google Analytics analiza las páginas web, a través de un código javascript,
guardando todo tipo de estadísticas de los visitantes. Permite la integración
con una cuenta deAdWords.
Google Answers responde a tus preguntas.
Google Base Libreria de contenidos, portal de anuncios clasificados o
servicio inclasificable que permite añadir cualquier tipo de contenido a su
base de datos.
Google Blog Search motor de búsqueda orientado a la búsqueda en
blogs/bitácoras excluyendo el resto de páginas web.
Google Bookmarks es un servicio que permite a los usuarios guardar
marcadores o favoritos con el título y las etiquetas deseadas, es decir, un
del.icio.us "made in" google, pero bastante más cutre. Es necesaria una
cuenta de Gmail para acceder. (+ info)
Google Browser Sync: Se trata de una plugin para el navegador Firefox con
el que podrás sincronizar allá donde lo utilices tus ajustes incluyendo tus
favoritos, tu historial, las cookies y las contraseñas que tengas almacenadas.
Google Catalogs busca en catálogos.
Google Checkout: Sistema de pago por internet homólogo a Paypal.
Proporcionas los datos de tu tarjeta al sistema y puedes pagar utilizando tu
correo electrónico (en los sitios que acepten pagos a través de Google
Checkout, claro).
Google Co-op permite a los usuarios suscribirse y catalogar contenidos
procendentes de sitios como CNNMoney.con (economía), Fandango.com
(espectáculos) o People.com (prensa rosa) para luego utilizar esos metadatos
para mejorar la experiencia de búsqueda de los usuarios.
Google Code servicio de Google orientado a la promoción y contribución del
software de código abierto (Open Source).
7. Google Code Search: Es un buscador de código fuente que permite utilizar
comandos de búsqueda especiales.
Google Compute existe como parte de la Barra de herramientas de Google
(Google Toolbar) y se encarga de utilizar el ‘idle time’ de tú ordenador (es
decir, cuando no estás haciendo nada) para computar información desde
proyectos distribuidos como Folding@Home.
Google Deskbar se trata de un ventana embedida de IE en tú barra de tareas
de Windows, la cual te permite realizar búsquedas a traves de Google.
Google Desktop Un servicio que ofrece varios widgets y una barra lateral la
cual te permite realizar búsquedas, sindicar contenidos, escribir notas,
consultar información metereológica y más.
Google Directory es un clon del directorio ODP pero llenito de AdSense.
Google Docs & Spreadsheets: Lugar desde el que podrás utilizar el
procesador de textos (docs) y la hoja de cálculo (spreadsheets) de Google,
crear y gestionar documentos colaborativos y tener todo organizado
Google Earth permite visualizar imágenes de satélite de cualquier rincón del
mundo.
Google Finance: Información bursatil: bolsa, cotizaciones, acciones, con
gráficos e información adicional relacionada. Una copia del servicio Yahoo!
Finances con alguna mejora
Google Groups te permite crear listas de correo, interactuar en ellas y leer los
mensajes de Usenet.
Google Homepage te permite personalizar Google a tú gusto. Permite añadir
widgets al usuario como información meteorológica, noticias, horóscopos y
más.
Google Hosted: Permite utilizar diferentes servicios como Gmail, Google
Talk, Google Calendar y Google Page Creator sobre un nombre de dominio
que le asociemos.
Google Image Search es el buscador de imágenes de Google.
Google Labs nos muestra los projectos en los cuales Google está trabajando
para una futura liberalización de los mismos.
Google Local Muestra información local basándose en datos procedentes de
Google Maps.
Google Maps es un servicio de mapeo el cual integra rutas de conducción y
localización con mapas de ciudades. Dispone de un API bastante elaborado
con el que se pueden realizar aplicaciones independientes que
utilicen Google Maps.
8. Google Mars incluye un conjunto de mapas e imágenes de la superficie de
Marte.
Google Moon similar al anterior, en este caso muestra planos e imágenes de
la superficie lunar, asi como información sobre alunizajes que se han
producido.
Google Mobile permite el acceso al buscador Google a través de un movil
WAP.
Google Movie Showtimes permite introducir un código postal o una
dirección que servirá para localizar cines y espectáculos cercanos a la zona
mediante Google Maps.
Google Música busca información sobre grupos de música, tiendas de
música online y además combina resultados de Froogle, de Google Images y
quizás de ma´s servicios
Google News es un portal de noticias agregadas por ordenadores de Google.
Todo el proceso es automático.
Google Notebook: Permite tomar y archivar notas al vuelo mientras se
navega y si se desea ofrece la posibilidad de compartir las notas con los
demás. También incluye un buscador de notas públicas
Google Pack se trata de una recopilación de software para ordenadores con
Windows XP y navegador Mozilla Firefox.
Google Pages se trata de un servicio gratuito de Google para el alojamiento y
la creación de páginas web de una manera sencilla e intuitiva, también
proprocionan un subdominio del
tipo: nombredecuenta.googlepages.com
Google Print o Google Book Search es un buscador de libros. Busca en libros
(titulos y contenido) que el propio Google ha digitalizado e incluido a su base
de datos.
Google Reader es el agregador o lector de feeds de Google. Google
Ridefinder permite localizar facilmente taxis en algunas de las mayores
ciudades de Estados Unidos.
Google Scholar busca información en documentación de tipo
académico/científico.
Google Send to Phone es una pequeña extensión para Firefox la cual permite
enviar SMS (mensajes de texto) a teléfonos móviles.
Google Sitemap es un lugar en donde los webmasters pueden subir el
"Sitemap" de su página web. Google leerá esos Sitemaps y los utilizará para
indexar más correctamente las webs. Recientemente ha incluido nuevas
funcionalidad de tracking relacionadas con AdSense.
9. Google SMS permite acceder a varios servicios del buscador a traves del
movil.
Google Spreadsheets: Se trata de un gestor en linea de hojas de cálculo con
las funcionalidades básicas de cualquier Excel
Google Suggest es una extensión al motor de búsqueda normal de Google. Se
encarga de sugerir búsquedas mientras se está escribiendo la consulta.
Google Talk es el programa de mensajeria instantanea y voz sobre IP de
Google, que funciona bajo Jabber (protocolo abierto basado en XML). Es
necesaria una cuenta de Gmail para utilizarlo.
Google Toolbar es una barra de herramientas para navegadores web, la cual
permite realizar búsquedas con Google y acceder a sus servicios de una
manera rápida, además de mostrar otra información interesante como puede
ser el PageRank.
Google Transit es un servicio que permite conocer el estado de las carreteras
(en cuánto a densidad de tráfico y retenciones se refiere) y realizar
aproximaciones de como pudieran estar a determinadas horas del día. De
momento solo disponible en los Estados Unidos.
Google Trends se trata de una herramienta orientada a webmasters y
profesionales creada para realizar análisis cualitativos de las búsquedas,
pudiendose consultar estos por ciudades, regiones y por idioma. También
permite comparar varios términos.
Google Video ofrece un archivo de videos de libre uso y Google Video
Upload permite alojar en Google los videos anteriormente citados.
Google Video Store es un servicio integrado dentro de Google Video que
permite comprar videos de series de televisión y otas temáticas. (# Más
información sobre Google Video Store).
Google Web Accelerator supuestamente ayuda a cargar las páginas web más
rápido. Se han encontrado varios problemas de seguridad y privacidad en
este programa.
Google Website Optimizer: Una herramienta para mejorar los ratios de
conversiones de adwords de nuestras páginas (más información
en Online.com.es).
Google Web Search motor de búsqueda de Google.
Hello es un pequeño cliente de mensajeria instantanea el cual es utilizado
junto conPicasa para compartir imágenes con familiares y amigos.
Measure Map es un sistema de estadísticas para blogs, más optimizado para
ellos queGoogle Analytics, que es muy comercial. (# Fuente).
10. Orkut es una red social ala que solo se puede acceder mediante invitación o
con una cuenta de Google.
Picasa es un fantástio organizador de fotos digitales e imágenes para tú
escritorio.
SketchUp se trata de un software para presentación de mapas y objetos 3D
para darle un empujón a Google Earth.
YouTube: Servicio mundialmente famoso para visualizar y compartir videos
que Google compraba a principios de octubre de 2006 por una cifra superior
a los 1.500 millones de dólares. Además se convierte en la primera
adquisición del gigante que conserva su propia imagen e identidad.
Writely es un potente y muy completo procesador de textos en linea (online),
Google se hizo con sus servicios el pasado 9 de Marzo.