2013SERVICIOS WEBJAVA-PERL-PHP-GOOGLEALAN FLORES GASPAR[ E S C R I B I R L A D I R E C C I Ó N D E L A C O M P A Ñ Í A ]
Servicios Web con Java SE: El ClienteCreando un Cliente muy simple para un Servicio Web muy simpleAhora crearemos —en un d...
La misma salida se desplegará en la consola del servicio.Con todo lo que hemos realizado vemos lo fácil que es crear y pub...
El siguiente paso es generar los artefactos de despliegue para dicha clase, para elloutilizamos la herramientawsgen, inclu...
Servicio Web en PHPClienteLa creación de un cliente de un servicio web con PHP es relativamente sencilla haciendo uso de P...
xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns="http://schema...
El código para nuestro ejemplo es el siguiente:require_once SOAP/Server.php;class Prueba_Server {function Prueba_Server(){...
login=>XXXXX,password=>XXXXX);Esta clase usa SoapClient, y si necesitamos pasarle otras opciones podemos hacerlo con el pa...
Por otro lado, tenemos que crear la clase que controla el Servidor (en nuestro ejemplo WSCIN). Estaclase, al heredar de Ig...
También es importante tener en cuenta la codificación, sobretodo cuando nuestro WS recibe o devuelvecampos string que pued...
Servicios Web con PERL (Código del servidor)#!/usr/bin/perluse SOAP::Lite;use SOAP::Transport::HTTP;use DBI;my $soapServer...
}$Registro = $Registro."</Resultados>"." n";$sth->finish();return SOAP::Data->name("return")->type("string")->value($Regis...
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ú...
Google Code Search: Es un buscador de código fuente que permite utilizar comandos debúsqueda especiales.Google Compute exi...
Google Música busca información sobre grupos de música, tiendas de música online y ademáscombina resultados de Froogle, de...
Google Trends se trata de una herramienta orientada a webmasters y profesionales creada pararealizar análisis cualitativos...
Upcoming SlideShare
Loading in...5
×

Servicios web

242

Published on

Servicios Web Java,Php,Perl,Google

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
242
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Servicios web"

  1. 1. 2013SERVICIOS WEBJAVA-PERL-PHP-GOOGLEALAN FLORES GASPAR[ E S C R I B I R L A D I R E C C I Ó N D E L A C O M P A Ñ Í A ]
  2. 2. Servicios Web con Java SE: El ClienteCreando un Cliente muy simple para un Servicio Web muy simpleAhora crearemos —en un directorio/proyecto distinto— el cliente para nuestro ServicioWeb el cual debe estar publicado y en ejecución.Pero primero necesitamos generar los artefactos cliente. Para ello utilizaremos laherramienta wsimport incluida en Java SE 6.0, a la cual le pasamos como argumentola ubicación del contrato del servicio, es decir el documento WSDL:>wsimport http://localhost:8080/hello?wsdlEsto generará las clases que encapsulan las operaciones para la invocación de losmétodos del Servicio Web. En nuestro caso se generarán seis clases dentro del paquete‘hello’, entre ellas estan las clases hello.HelloService y hello.Hello que utilizaremosdirectamente en nuestro cliente.Una vez generados los artefactos cliente solo resta crear el cliente en sí, nuevamenteuna simple aplicación de consola:Listado de Client.javapublic class Client {public static void main(String[] args) {String arg = null;String result = null;if (args.length > 0) {arg = args[0];}else {arg = "Anonimo";}try {hello.HelloService service = new hello.HelloService();hello.Hello port = service.getHelloPort();result = port.sayHello(arg);}catch (Exception ex) {result = ex.toString();}finally{System.out.println(result);}}}Nótese que para invocar la operación de nuestro Servicio Web primero creamosel localizador del servicio (con HelloService) y mediante éste obtenemos un puerto (detipo Hello) por medio del cual después invocamos al método sayHello —tras del cual seinvoca la operación del Servicio Web el cual a su vez invoca el método de la clase Helloimplementada al inicio del artículo…Solo resta compilar y ejecutar nuestro cliente con algún argumento, su nombre porejemplo, si no se especifica un argumento la salida será “Hola Anónimo”:>javac Client.java>java Client YoHola Yo.
  3. 3. La misma salida se desplegará en la consola del servicio.Con todo lo que hemos realizado vemos lo fácil que es crear y publicar un Servicio Webasí como su cliente con los paquetes y herramientas de JAX-WS incluidos en Java SE6.0. Y aunque para un despliegue en producción no podremos prescindir de loscontenedores Java EE (Tomcat, Glassfish, JBoss etc…) para los fines de desarrollo deprototipos o durante las primeras fases —así como en proyectos escolares— essuficiente con lo incluido en Java SE 6.0.No obstante todo esto tan sólo fue el inicio, la finalidad fue dar una introducción aldesarrollo de Servicios Web utilizando JAX-WS esperando motive a continuarpara “abordar el Metro”. Quedan entonces muchas cosas por tratar, como laautomatización de las tareas que realizamos, crear un servicio y cliente a partir de unWSDL, el despliegue en contenedores Java EE, utilizar contratos de datos y JAXB,utilización de JAXP, StAX y SAAJ, sobre interoperabilidad y WS-* con WSIT, etc… Ya nise diga de explorar otras opciones para el desarrollo de WS en Java como Axiscon XMLBeans, AXIOM, etc…Servicios Web con Java SE: El ServicioCreando un Servicio Web muy simplePara ilustrar la creación de Servicio Web con JAX-WS 2.0 emplearemos el clásicoejemplo de Hola Mundo (posteriormente abordaremos otros ejemplos) el cual luce así:Listado de Hello.javapackage hello;import javax.jws.WebService;@WebServicepublic class Hello {private String message = new String(”Hola “);public String sayHello(String name) {String msg = message + name + “.”;System.out.println(msg);return msg;}}Nótese que luce como una clase Java normal pero con un par de adiciones: En primerlugar importamos javax.jws.WebService, lo cual es necesario para marcar la clase Hellocon la anotación @WebService. Con esto habilitamos la clase para que pueda serpublicada como un Servicio Web, en éste caso con solo una operación, la del métodosayHello.
  4. 4. El siguiente paso es generar los artefactos de despliegue para dicha clase, para elloutilizamos la herramientawsgen, incluida en Java SE 6.0, a la cual le pasamos comoargumento la clase hello.Hello compilada:>javac hello/Hello.java>wsgen -cp . hello.HelloCon todo lo anterior ya tenemos un sencillo Servicio Web casi listo para ser desplegadoen algún contenedor Java EE, no obstante podemos probarlo sin un contenedor sicreamos un Endpoint dentro de una aplicación que actuará como host del servicioweb, tal como se ilustra en el siguiente código:Listado de SimpleHelloWS.javaimport javax.xml.ws.Endpoint;import hello.Hello;public class SimpleHelloWS {public static void main(String[] args) {String endpointAddress = “http://localhost:8080/hello”;Endpoint.publish(endpointAddress, new hello.Hello());System.out.println(”El Servicio Web Hello se esta ejecutando…”);System.out.println(”WSDL: ” + endpointAddress + “?wsdl”);}}Nótese que se trata de una simple aplicación de consola que utiliza elmétodo publish de la clase javax.xml.ws.Endpoint para crear y publicarun Endpoint para una instancia de la clase hello.Hello en ladirección http://localhost:8080/SimpleHelloWS/hello. Esto último gracias a que laclase Endpoint utiliza el servidor web “liviano” de Sun que está incluido en Java SEdentro del paquete com.sun.net.httpserver.Tras compilar y ejecutar la aplicación se mostraran dos líneas indicando que el serviciose está ejecutando y que la ubicación del “contrato del servicio”, es decir el documentoWSDL del mismo, para cualquier cliente que desee acceder al mismo.>javac SimpleHelloWS.java>java SimpleHelloWSEl Servicio Web Hello se esta ejecutando...WSDL: http://localhost:8080/hello?wsdl
  5. 5. Servicio Web en PHPClienteLa creación de un cliente de un servicio web con PHP es relativamente sencilla haciendo uso de PHP-SOAP. Con la descripción del servicio al que queremos acceder (fichero wsdl), obtendremos acceso atodos los métodos que ofrece el servicio web. A continuación mostramos un ejemplo donde se verá másclaramente lo expuesto. Concretamente en el ejemplo llamamos a un WS que, dada una cadena,devuelve la cadena al revés.$objClienteWS = new SoapClient(Ws_Ejemplo.wsdl);$resultado = $objClienteWS->ejemplo(Hola);print_r($resultado);De la ejecución de este cliente obtenemos el siguiente resultado:aloHServidorLa creación del servidor requiere, evidentemente, algo más de trabajo que la del cliente. En este puntoharemos un pequeño resumen de los pasos a seguir. Primero tenemos que crear un fichero php (ennuestro 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étodosexportados. Siguiendo con nuestro ejemplo, tenemos que tener un método que nos devuelva la inversa deuna cadena. El contenido del fichero es: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);Para que el cliente tenga acceso a la información que ofrece el WS, necesita de la definición de losmétodos exportados por la clase. Esto se obtiene a partir del fichero WSDL. El fichero de nuestro ejemploes el siguiente:<?xml version="1.0"?><definitions name="ServerExample" targetNamespace="urn:ServerExample"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:tns="urn:ServerExample"
  6. 6. xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns="http://schemas.xmlsoap.org/wsdl/"><types xmlns="http://schemas.xmlsoap.org/wsdl/"></types><message name="ejemploRequest"><part name="cadena" type="xsd:string" /></message><message name="ejemploResponse"><part name="cadena" type="xsd:string" /></message><portType name="ServerExamplePort"><operation name="ejemplo"><input message="tns:ejemploRequest" /><output message="tns:ejemploResponse" /></operation></portType><binding name="ServerExampleBinding" type="tns:ServerExamplePort"><soap:binding style="rpc"transport="http://schemas.xmlsoap.org/soap/http" /><operation name="ejemplo"><soap:operationsoapAction="urn:Prueba_Server#prueba_server#ejemplo" /><input><soap:body use="encoded"namespace="urn:Prueba_Server"encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /></input><output><soap:body use="encoded"namespace="urn:Prueba_Server"encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /></output></operation></binding><service name="ServerExampleService"><documentation /><port name="ServerExamplePort"binding="tns:ServerExampleBinding"><soap:addresslocation="http://mi-servidor.es/cin/ws/server/server.php" /></port></service></definitions>Con esto nuestro Web Service ya esta funcionando. Simplemente tenemos que llamarlo desde el cliente.Generación del WSDLUno de los puntos más costosos de la creación de un WS en PHP es la generación del WSDL. Hay unaserie de herramientas que te permiten su generación siempre y cuando rellenes ciertos parámetros. Elpropio PEAR::SOAP te facilita un proceso para hacerlo, y es el que vamos a intentar explicar acontinuación.La idea consiste en crear un constructor para nuestra clase y, en él, sobrescribir una serie de arraysdonde aportaremos la información de los métodos que exporta una clase. Concretamente se trata de laestructura $this->__dispatch_map que tendrá una entrada por cada uno de los métodos soportados.Después, tras las llamadas que realizamos al SOAP_Server tenemos que utilizar una clase de SOAP quenos generará el WSDL.
  7. 7. El código para nuestro ejemplo es el siguiente:require_once SOAP/Server.php;class Prueba_Server {function Prueba_Server(){$this->__dispatch_map[ejemplo] =array(in => array(cadena => string,),out => array(cadena => string),);}function ejemplo($cadena){return strrev($cadena);}}$server = new SOAP_Server;$server->_auto_translation = true;$soapclass = new Prueba_Server();$server->addObjectMap($soapclass,urn:Prueba_Server);if(isset($_REQUEST[wsdl])){require_once SOAP/Disco.php;$disco = new SOAP_DISCO_Server($server,ServerExample);header("Content-type: text/xml");echo $disco->getWSDL();return;}$server->service($HTTP_RAW_POST_DATA);Con este código, al interrogar al server.php directamente, obtendremos un xml que contiene la definicióndel WS. Este contenido se almacena en un fichero WSDL y, de ese modo, los clientes podrán acceder alservicio.Web Services en gvHidraYa hemos visto como se implementan los WS en PHP. Para aplicaciones con gvHidra, se hanimplementado algunas clases que ayudan a la creación tanto del servidor como del cliente en unaaplicación. De momento se utiliza un procedimiento muy básico para controlar la seguridad.ClienteLa creación del cliente se realiza mediante la clase IgepWS_Client. A continuación mostramos el código:$objCIN = IgepWS_Client::getClient(actions/ws/WSCIN.wsdl);$credencial = IgepWS_Client::getCredential(WSCIN);$objCIN->getImporte($credencial,....El parámetro credencial contiene los parámetros de validación válidos para ese cliente WS. Esteparámetro se obtiene consultando los DSNs de la aplicación. La estructura de la credencial seria lasiguiente:$credencial = array(
  8. 8. login=>XXXXX,password=>XXXXX);Esta clase usa SoapClient, y si necesitamos pasarle otras opciones podemos hacerlo con el parámetroopcional. En el ejemplo siguiente se modifican las opciones para poder depurar la comunicación con elservidor. En laweb de PHP se pueden ver otras opciones posibles.$obj = IgepWS_Client::getClient(actions/ws/WSCIN.wsdl, array("exceptions" =>0, trace=>1, ));print "<pre>n";print "Request : n". htmlspecialchars($obj->__getLastRequest()) ."n";print "RequestHeaders :n". $obj->__getLastRequestHeaders() ."n";print "Response: n". htmlspecialchars($obj->__getLastResponse()) ."n";print "ResponseHeaders:n". $obj->__getLastResponseHeaders() ."n";print "Functions: n". var_export($obj->__getFunctions(),true) ."n";print "Types: n". var_export($obj->__getTypes(),true) ."n";print "</pre>";Para depuración, también puede ser útil inhabilitar la cache del cliente, ya que así podemos ir modificandoel wsdl:IgepWS_Client::disableCache();Si el cliente usa una codificación distinta a UTF-8 (como ocurre con gvHIDRA que usa latin1), convieneindicarlo en las opciones de conexión y así no hay que hacer conversiones explicitas, sino que PHPconvierte los parámetros de entrada desde la codificación origen a UTF-8, y el resultado lo convierte deUTF-8 a la codificación indicada. Ejemplo:$obj = IgepWS_Client::getClient(actions/ws/WSCIN.wsdl, array("exceptions" =>0, trace=>1, encoding=>latin1, ));...print "Response:n".htmlspecialchars(utf8_decode($obj->__getLastResponse()))."n";...ServidorEn el caso del servidor, los beneficios son mayores. Tenemos dos clases, una clase estática que generael código básico del Servidor y otra que proporciona un comportamiento al servidor propio de unaaplicación gvHidra. La primera de ellas es la clase estática IgepWS_ServerBase. Esta clase simplifica lacreación y el registro de un servidor SOAP de WS. Concretamente, en nuestro fichero de lanzamiento delservidor (típicamente server.php), que tiene que estar en el raiz de la aplicación, tendríamos el siguientecódigo:require_once "igep/include/igep_ws/IgepWS_ServerBase.php";require_once ws/server/WSCIN.php;IgepWS_ServerBase::registrar(WSCIN);
  9. 9. Por otro lado, tenemos que crear la clase que controla el Servidor (en nuestro ejemplo WSCIN). Estaclase, al heredar de IgepWS_Server tiene el mecanismo de validación ya implementado y el sistema deconexión propio de gvHidra. La única premisa que se exige es que, si se requiere validación, el métodoimplementado por el programador debe incluir un parámetro $credencial que se pasará al métodocheckCredential para validar su contenido. A continuación mostramos un ejemplo:include_once "igep/include/igep_ws/IgepWS_Server.php";class WSCIN extends IgepWS_Server{function __construct(){$msgs = array(1=>Error de conexión. Avise al Servicio deInformática,2=>Error en operación. Avise al Servicio deInformática,);parent::IgepWS_Server(WSCIN, $smsgs);...}function getImporte($credencial,$anyox, $dgralx, $numx, $tipo_expx,$numtipo_expx){if(!$this->checkCredential($credencial))return $this->getAuthError();$dsn = ConfigFramework::getConfig()->getDSN(dsn_cin);$db = $this->conectar($dsn);if (!$db)return $this->gvhFault(1, ...mensaje opcional, enviado al log...);...return array(implic => floatval($res[0][implic]), impadj =>floatval($res[0][impadj]));}...}Si nuestro servidor acepta varias credenciales, podemos pasarle un vector al constructor del padre:parent::IgepWS_Server(array(WSCIN,WSMCMENOR,));En las credenciales de los servidores de web services, la contraseña hay que almacenarla con hash. Paraello usar el formulario en igep/include/igep_utils/protectdata.php para obtener los hash de las contraseñas,y guardar estas últimas en un lugar seguro, fuera de la aplicación.El parámetro con los mensajes de error se utiliza si provocamos los errores (Soap_Fault) con elmétodo gvhFault, que hace las conversiones necesarias en la codificación y tiene un parámetro opcionalusado para que nos informe del error en el log.Si queremos restringir algún método a algunas credenciales, podemos hacerlo con métodocheckCredential pasándole la lista de credenciales:if (!$this->checkCredential($credencial, array(WSMCMENOR,)))return $this->getAuthError();También hay que tener precaución cuando hacemos consultas sobre base de datos, que si utilizamoscampos calculados o agregados (count, min, ...), el resultado será de tipo string. Si queremos obtener otrotipo tendremos que modificarlo usando la función floatval para tipo float, intval para tipo int, ...
  10. 10. También es importante tener en cuenta la codificación, sobretodo cuando nuestro WS recibe o devuelvecampos string que puedan tener carácteres especiales. Cuestiones:la codificación usada en los WS es UTF-8, luego habrá que hacer las transformacionesnecesarias desde/hacia LATIN-1 (la codificación usada en gvHIDRA)si queremos retornar una cadena obtenida de la BD o de una constante en un fichero fuente dePHP, tenemos que transformarla a utf-8 con utf8_encode($cadena)si recibimos un parámetro texto vendrá en utf-8, luego también habrá que transformarlo(utf8_decode) a latin-1 para operar con él (concatenar con otras cadenas, almacenar en BD, ...)en caso de problemas también podemos hacer las transformaciones con iconv.
  11. 11. Servicios Web con PERL (Código del servidor)#!/usr/bin/perluse SOAP::Lite;use SOAP::Transport::HTTP;use DBI;my $soapServer = SOAP::Transport::HTTP::Daemon-> new(LocalAddr => 172.18.61.103,LocalPort => 8082)-> dispatch_to(qw(getRegistro))-> handle;sub getRegistro {my ($class, $inputString) = @_;die "no hay datos de entradan" if !$inputString;my $dbh = DBI->connect("DBI:mysql:test","root","")die "nError al abrir la base datos: $DBI::errstrn";$query = "select nombre, puesto, domicilio, telefono, extencionfrom directorio where nombre like %". $inputString. "%";my $sth = $dbh->prepare($query);$sth->execute();$Registro = "<?xml version="1.0" encoding="UTF-8" ?> n" ;$Registro = $Registro."<Resultados>n" ;while ( @tupla=$sth->fetchrow_array()){$Registro = $Registro."<Registro>n";$Registro = $Registro."<Nombre>$tupla[0]</Nombre>n";$Registro = $Registro."<Cargo>$tupla[1]</Cargo>n";$Registro = $Registro."<Domicilio>$tupla[2]</Domicilio>n";$Registro = $Registro."<Telefono>$tupla[3]</Telefono>n";$Registro = $Registro."<Extencion>$tupla[4]</Extencion>n";$Registro = $Registro."</Registro>n"
  12. 12. }$Registro = $Registro."</Resultados>"." n";$sth->finish();return SOAP::Data->name("return")->type("string")->value($Registro);}Servicios Web con PERL (Código del cliente)#!/usr/bin/perluse SOAP::Lite;print "n Filtro n ";$inputString=<STDIN>;chop $inputString;$inputSoapParam = SOAP::Data->name("inputString")->type("string")->value($inputString);$response=SOAP::Lite-> proxy(http://172.18.61.103:8080/)-> getRegistro($inputSoapParam);if($response->fault) {print "SOAP Fault received. nn";print "Fault Code : " . $response->faultcode . "n";print "Fault String : " . $response->faultstring . "n";print "Fault Detail : " . $response->faultdetail . "n";print "Fault Actor : " . $response->faultactor . "n";die;}print $response->result ."n"
  13. 13. 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 productoy la comparativa de estos en diferentes tiendas online.GMail es el servicio de correo electrónico de google, actualmente proporciona más de 2GB decapacidad 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 webmastersponer 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 aun 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 textosparticulares.Google Analytics analiza las páginas web, a través de un código javascript, guardando todo tipode 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 quepermite 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 excluyendoel resto de páginas web.Google Bookmarks es un servicio que permite a los usuarios guardar marcadores o favoritos conel título y las etiquetas deseadas, es decir, un del.icio.us "made in" google, pero bastante máscutre. 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ássincronizar allá donde lo utilices tus ajustes incluyendo tus favoritos, tu historial, las cookies y lascontraseñ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 tutarjeta al sistema y puedes pagar utilizando tu correo electrónico (en los sitios que acepten pagosa través de Google Checkout, claro).Google Co-op permite a los usuarios suscribirse y catalogar contenidos procendentes de sitioscomo 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ódigoabierto (Open Source).
  14. 14. Google Code Search: Es un buscador de código fuente que permite utilizar comandos debúsqueda especiales.Google Compute existe como parte de la Barra de herramientas de Google (Google Toolbar) yse encarga de utilizar el ‘idle time’ de tú ordenador (es decir, cuando no estás haciendo nada)para computar información desde proyectos distribuidos comoFolding@Home.Google Deskbar se trata de un ventana embedida de IE en tú barra de tareas de Windows, lacual te permite realizar búsquedas a traves de Google.Google Desktop Un servicio que ofrece varios widgets(?) y una barra lateral la cual te permiterealizar búsquedas, sindicar contenidos, escribir notas, consultar información metereológica ymá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) yla hoja de cálculo (spreadsheets) de Google, crear y gestionar documentos colaborativos y tenertodo organizado (Descripción y más info enGenbeta).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ónadicional relacionada. Una copia del servicio Yahoo! Finances con alguna mejora. (+ sobreGoogle Finance).Google Groups te permite crear listas de correo, interactuar en ellas y leer los mensajes deUsenet.Google Homepage te permite personalizar Google a tú gusto. Permite añadir widgets al usuariocomo información meteorológica, noticias, horóscopos y más.Google Hosted: Permite utilizar diferentes servicios como Gmail, Google Talk, Google Calendar yGoogle 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 futuraliberalizació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 conmapas de ciudades. Dispone de un API bastante elaborado con el que se pueden realizaraplicaciones independientes que utilicen Google Maps.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á paralocalizar cines y espectáculos cercanos a la zona mediante Google Maps. (De momento solodisponible en los EE.UU.).
  15. 15. Google Música busca información sobre grupos de música, tiendas de música online y ademáscombina resultados de Froogle, de Google Images y quizás de ma´s servicios. (# Fuente)Google News es un portal de noticias agregadas por ordenadores de Google. Todo el proceso esautomático.Google Notebook: Permite tomar y archivar notas al vuelo mientras se navega y si se deseaofrece la posibilidad de compartir las notas con los demás. También incluye un buscador denotas públicas (de otros usuarios). (Gracias Nuke)Google Pack se trata de una recopilación de software para ordenadores con Windows XP ynavegador Mozilla Firefox.Google Pages se trata de un servicio gratuito de Google para el alojamiento y la creación depáginas web de una manera sencilla e intuitiva, también proprocionan un subdominio deltipo: nombredecuenta.googlepages.com.(#Fuentes: 1 y 2, elucubraciones y teorías sobreGoogle Pages).Google Print o Google Book Search es un buscador de libros. Busca en libros (titulos ycontenido) que el propio Google ha digitalizado e incluido a su base de datos.Google Reader es el agregador o lector de feeds de Google. (+ info)Google Ridefinder permite localizar facilmente taxis en algunas de las mayores ciudades deEstados 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áginaweb. Google leerá esos Sitemaps y los utilizará para indexar más correctamente las webs.Recientemente ha incluido nuevas funcionalidad de tracking relacionadas conAdSense.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 funcionalidadesbásicas de cualquier Excel (Gracias por el aviso Nuke)Google Suggest es una extensión al motor de búsqueda normal de Google. Se encarga desugerir búsquedas (ordenadas por cantidad de resultados) mientras se está escribiendo laconsulta.Google Talk es el programa de mensajeria instantanea y voz sobre IP de Google, que funcionabajo Jabber (protocolo abierto basado en XML). Es necesaria una cuenta deGmail para utilizarlo.Google Toolbar es una barra de herramientas para navegadores web, la cual permite realizarbúsquedas con Google y acceder a sus servicios de una manera rápida, además de mostrar otrainformación interesante como puede ser el PageRank.Google Transit es un servicio que permite conocer el estado de las carreteras (en cuánto adensidad de tráfico y retenciones se refiere) y realizar aproximaciones de como pudieran estar adeterminadas horas del día. De momento solo disponible en los Estados Unidos.
  16. 16. Google Trends se trata de una herramienta orientada a webmasters y profesionales creada pararealizar 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 enGoogle los videos anteriormente citados.Google Video Store es un servicio integrado dentro de Google Video que permite comprarvideos 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 hanencontrado varios problemas de seguridad y privacidad en este programa.Google Website Optimizer: Una herramienta para mejorar los ratios de conversiones de adwordsde 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 paracompartir imágenes con familiares y amigos.Measure Map es un sistema de estadísticas para blogs, más optimizado para ellos queGoogleAnalytics, que es muy comercial. (# Fuente).Orkut es una red social ala que solo se puede acceder mediante invitación o con una cuenta deGoogle.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 unempujón a Google Earth.(# Fuente) (Info. oficial de la adquisición) .YouTube: Servicio mundialmente famoso para visualizar y compartir videos que Googlecompraba 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 eidentidad.Writely es un potente y muy completo procesador de textos en linea (online), Google se hizo consus servicios el pasado 9 de Marzo. (Comunicado oficial de Google y de Writely)

×