El documento describe los servicios web y los estándares empleados, como XML, SOAP, WSDL y UDDI. También describe varias plataformas para desarrollar servicios web como JBoss, Oracle, IBM, Microsoft .NET y más. Luego proporciona ejemplos de servicios web gratuitos y de pago de Google como Google Maps, Google Docs, Gmail, YouTube y otros. Finalmente incluye un ejemplo de código PHP para desarrollar un servicio web usando la biblioteca NuSOAP.
1. Lunes 26 de Mayo del 2014
Investigación de
los Servicios Web
Programación Web
Instituto Tecnológico de Tehuacán
INGENIERÍA EN SISTEMAS COMPUTACIONALES
Enrique Vázquez Rodríguez 10360116
9° semestre
2. Servicios Web
Un servicio web (en inglés, Web Service o Web services) es una tecnología
que utiliza un conjunto de protocolos y estándares que sirven para
intercambiar datos entre aplicaciones. Distintas aplicaciones de software
desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre
cualquier plataforma, pueden utilizar los servicios web para intercambiar
datos en redes de ordenadores como Internet. La interoperabilidad se
consigue mediante la adopción de estándares abiertos. Las
organizaciones OASIS y W3C son los comités responsables de la
arquitectura y reglamentación de los servicios Web. Para mejorar la
interoperabilidad entre distintas implementaciones de servicios Web se ha
creado el organismo WS-I, encargado de desarrollar diversos perfiles para
definir de manera más exhaustiva estos estándares. Es una máquina que
atiende las peticiones de los clientes web y les envía los recursos
solicitados.
Estándares empleados
Web Services Protocol Stack: Así se le denomina al conjunto de
servicios y protocolos de los servicios Web.
XML (Extensible Markup Language): Es el formato estándar para los
datos que se vayan a intercambiar.
SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote
Procedure Call): Protocolos sobre los que se establece el intercambio.
WSDL (Web Services Description Language): Es el lenguaje de la
interfaz pública para los servicios Web. Es una descripción basada en
XML de los requisitos funcionales necesarios para establecer una
comunicación con los servicios Web.
UDDI (Universal Description, Discovery and Integration): Protocolo
para publicar la información de los servicios Web. Permite comprobar
qué servicios web están disponibles.
WS-Security (Web Service Security): Protocolo de seguridad aceptado
como estándar por OASIS (Organization for the Advancement of
Structured Information Standards). Garantiza la autenticación de los
actores y la confidencialidad de los mensajes enviados.
3. Plataformas utilizadas para desarrollar un Servicio Web
Servidores de aplicaciones para servicios Web:
JBoss servidor de aplicaciones J2EE Open Source de Red Hat inc.
Oracle Fusion Middleware
IBM Lotus Domino a partir de la versión 7.0
Axis y el servidor Jakarta Tomcat (de Apache)
ColdFusion MX de Macromedia
Java Web Services Development Pack (JWSDP) de Sun
Microsystems (basado en Jakarta Tomcat)
JOnAS (parte de ObjectWeb una iniciativa de código abierto)
Microsoft .NET
Novell exteNd (basado en la plataforma J2EE)
WebLogic
WebSphere
JAX-WS con GlassFish
Zope es un servidor de aplicaciones Web orientado a
objetos desarrollado en el lenguaje de programación Python
VERASTREAM de AttachmateWRQ para modernizar o integrar
aplicaciones host IBM y VT
PHP
Servicios Web de Paga y Gratuitos
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.
4. 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).
5. 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.
6. 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.
7. 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).
8. 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.
Ejemplos de un Servicio Web
Servicio web en 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)
9. {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)
{
$error)throw new Exception("La llamada al método " .
$methodname . " generó un error”;
}
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"]))
{
dicho
s
//Recuperamos el elemento "Table", que es el que contiene los
datos propiamente
return $result[$methodname .
"Result"]["diffgram"]["NewDataSet"]["Table"];
}
else
{
return null;
}
10. A continuación ofrecemos un ejemplo de código .aspx en el que se utiliza la
librería http://rate-exchange.appspot.com/currency?from={0}&to={1} para desarrollar
una clase capaz de conectar con el servicio SOAP de DIVISAS, invocar
cualquier método que devuelva un Archivo XML y recuperar los datos en forma
de "String’s";
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Script.Serialization;
using System.Net;
using System.Text.RegularExpressions;
using System.Globalization;
public partial class _Default : System.Web.UI.Page
{
//Calling live service from rate-exchange.appshot.com
protected void btnRateExchange_Click(object sender, EventArgs e)
{
try
{
double amount = 0;
if (double.TryParse(txtAmount.Text.Trim(), out amount))
{
string url = string.Format("http://rate-
exchange.appspot.com/currency?from={0}&to={1}",
ddlFrom.SelectedItem.Value, ddlTo.SelectedItem.Value);
WebClient client = new WebClient();
string rates = client.DownloadString(url);
Rate rate = new JavaScriptSerializer().Deserialize<Rate>(rates);
double converted_amount = amount * rate.rate;
//double converted_amount = 13.123;
string message = string.Empty;
11. 1
message += "Cambio en Tiempo Real: " + amount + " " +
ddlFrom.SelectedItem.Value + " = " + converted_amount + " " +
ddlTo.SelectedItem.Value;
lblMessage.Text = message;
}
else
{
lblMessage.Text = "Invalid amount value.";
}
}
catch (InvalidCastException ec)
{
string message = string.Empty;
if (ec.Data==null)
{
throw;
message += "NO HAY CONECCIÓN A INTERNET, :'( ";
}
}
}
}
public class Rate
{
public string to { get; set; }
public string from { get; set; }
public double rate { get; set; }
}