Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Servicios web

230 views

Published on

  • Be the first to comment

  • Be the first to like this

Servicios web

  1. 1. Instituto Tecnológico de TehuacánServicios WebJaqueline Guerrero Avendaño.Nombre de la materia: Programación Web
  2. 2. Servicios WebUn servicio web (en inglés, Web services) es una tecnología que utiliza un conjunto deprotocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintasaplicaciones de software desarrolladas en lenguajes de programación diferentes, yejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiardatos en redes de ordenadores como Internet. La interoperabilidad se consigue mediantela adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comitésresponsables de la arquitectura y reglamentación de los servicios Web. Para mejorar lainteroperabilidad entre distintas implementaciones de servicios Web se ha creado elorganismo WS-I, encargado de desarrollar diversos perfiles para definir de manera másexhaustiva estos estándares. Es una máquina que atiende las peticiones de los clientesweb y les envía los recursos solicitados.Cómo crear servicios web en JAVAPara usar un servicio web, todo lo que tenemos que hacer es entrar a su dirección pormedio de nuestro navegador. Sin embargo, existen programas que nos permiten usarservicios concretos sin necesidad del navegador, sólo con ellos y una conexión a Internet.Un programa así, recibe el nombre de “cliente”, estos programas los veremos másadelante, en este video-tutorial veremos la forma de crear un “Servicio Web” utilizando ellenguaje Java y el IDE Netbeans, ademas necesitamos un servidor web para realizar laspruebas, utilizaremos Tomcat en su version 6.Nuestro servicio web es sencillo, y solamente consta de unas operaciones matemáticasbásicas como son la Suma y la Multiplicación, este Servicio Web lo implementaremos enposteriores tutoriales.import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebService;public class calculadora {@WebMethod(operationName = "Suma")public int Suma(@WebParam(name = "valor1")int valor1, @WebParam(name = "valor2")int valor2) {return ( valor1 + valor2);}/*** Web service operation*/@WebMethod(operationName = "Multiplicacion")public int Multiplicacion(@WebParam(name = "valor1")int valor1, @WebParam(name = "valor2")int valor2) {
  3. 3. return ( valor1 * valor2);}}Cómo crear servicios web en PerlEl lenguaje Perl cuenta principalmente con dos módulos que pueden ser usados paracrear servicios web de manera fácil y rápida, desde cero o reutilizando aplicaciones dePerl ya existentes. Éstos módulos son SOAP::Lite y WSDL:: Generator. A continuación seexplicarán cada uno de ellos y se mostrará un ejemplo de su uso.Para solicitar el servicio, el cliente envía un mensaje de solicitud en formato SOAP XML. Laespecificación SOAP (Simple Object Access Protocol) establece la manera derepresentar, en el interior de la solicitud, el tipo de solicitud y los nombres y valores de susargumentos. El servidor realiza la operación solicitada, y le entrega al cliente un mensajede respuesta que también está en formato SOAP XML. El mensaje de respuesta contienelos datos solicitados, y un status que indica si la solicitud se ha procesado correctamente obien se ha producido algún tipo de error.Otra manera de implementar Web Services es REST (Representational State Transfer). RESTes una especificación más sencilla que WSDL/SOAP para la implementación de serviciosweb, que será tratada en otro artículo de este blog.Entre las principales diferencias que podemos encontrar entre REST y WSDL/SOAP están lassiguientes:En REST, se define una URL distinta para cada tipo de servicio solicitado, mientras que enWSDL/SOAP el nombre del servicio se indica en el interior del mensaje.En REST, la peticiones para leer datos se hacen mediante solicitudes HTTP GET, y laspeticiones para escribir se hacen mediante HTTP POST. En WSDL/SOAP, las peticionessiempre se realizan mediante solicitudes HTTP POST.En REST, los mensajes se codifican en formato JSON, mientras que en WSDL/SOAP se utilizael formato XML.Ejemplo:#!/usr/bin/perl -w#use strict;use SOAP::Transport::HTTP;SOAP::Transport::HTTP::CGI-> dispatch_to(Aritmetica)-> handle;package Aritmetica;sub sumar { $_[1] + $_[2]; }sub restar { $_[1] - $_[2]; }
  4. 4. Servicios Web PHPBuenas, la semana pasada vimos como instalar un servidor LAMP en nuestro Ubuntu y lasherramientas necesarias para desarrollar con PHP y MySQL. Esta semana nos ponemosmanos a la obra y veremos cómo desarrollar un pequeño servicio web para poderutilizarlo más tarde desde una aplicación Android y nutrir nuestra aplicación con datos.Los formatos más utilizados para compartir información mediante estos servicios web sonXML (y otros derivados) y JSON. XML es un lenguaje de marcas muy similar al HTML,lo podéis ver normalmente en las fuentes RSS utilizadas para difundir listas denoticias. JSON es un formato ligero de intercambio de datos. Este último da mejoresresultados en cuanto a rapidez y procesamiento, por lo tanto utilizaremos este, perosi queréis utilizar XML solamente deberéis cambiar el formato de salida y listo.Nuestro servicio va a devolvernos una lista de libros, para ellos primero crearemos unabase de datos. AbrimosphpMyAdmin para ello en un navegadorescribimos http://localhost/phpmyadmin. Vamos a "Base de datos" y creamos una nuevabase de datos, le llamaremos android, aparecerá en la lista de la parte izquierda.Pinchamos sobre ella y creamos una nueva tabla llamada libros con 3 columnas: id_libro,libro y isbn. Actualización:ponemos los nombres de las columnas en minúscula para notener problemas a la hora de leerlo con el script PHP.Realmente la complicación de un servicio web no reside en la creación del mismoque como veremos es absolutamente simple. La dificultad está en las funcionalidadesdel propio servicio.Lo primero que necesitamos para crear Web Service (o servicio web) es crear unlistado de funciones o, en este caso, una clase PHP que contendrá todas lasfuncionalidades necesarias. Usaremos una clase sencilla ya que es nuestro primerejemplo.Aquí usamos la clase de islavisual para MySQL.class UserService{private $_EMAIL;private $_PASSWORD;include "clases/MySQL/mySql.class.php" ;public function login($email, $password){$this->_EMAIL = mysql_real_escape_string($email); // También puedeservir addslashes$this->_PASSWORD = mysql_real_escape_string($password); // También puedeservir addslashes$user_id = $this->chechUser();if($user_id != "" && $user_id != NULL){$_SESSION[user_id] = $user_id;return $user_id;}
  5. 5. return false;}protected function checkUser(){$mysql = new mySQL;return $mysql->getValue("SELECT id FROM users WHERE email = ".$this->_EMAIL.";");}}Implementación o creación del Servicio WebAquí sólo hay que crear un archivo que llamaremos servicio.php dónde estará incluida laclase que acabamos de crear. Como no queremos usar WSDL lo generaremos a mano y,por ello, debemos suministrar el namespace que será urn:webservices.$server = new SoapServer(null, array(uri => urn:webservices));// Asignamos la Clase$server->setClass(UserService);// Atendemos las peticiones$server->handle();Servicios web del API de Google MapsEn este documento se describen los servicios web del API de Google Maps, un conjuntode interfaces HTTP para los servicios de Google que proporcionan datos geográficos paralas aplicaciones de mapas. Esta guía sirve exclusivamente como introducción a losservicios web y la información de host que es común a los diferentes servicios. Encontrarásdocumentación específica de cada servicio más adelante: API de rutas API de matriz de distancia API de elevación API de codificación geográfica API de Google PlacesEl resto de esta guía trata sobre las técnicas para configurar solicitudes de servicios web yanalizar las respuestas. Sin embargo, deberás consultar la documentacióncorrespondiente para obtener información específica sobre cada servicio.
  6. 6. Mediante el API que nos ofrecen Google Maps los desarrolladores del servicio podremoshacer uso de sus bondades. En este artículo pretendemos explicar los aspectos másrelevantes de este API.Google Maps es un servicio gratuito que nos ofrece Google con mapas desplazables delmundo entero, fotos satelitales, la ruta más corta entre diferentes ubicaciones y muchascaracterísticas interesantes. Es semejante a Google Earth; una aplicación para Windows,Mac y Linux; pero con la diferencia que Google Maps es fácilmente integrable a cualquiersitio web.¿Cómo integro un mapa de Google Maps a mi web?Insertar un mapa en nuestro sitio web es muy simple haciendo uso de la API de GoogleMaps. Lo primero es solicitar nuestra API Key, debemos especificar en qué URL vamos autilizar nuestro mapa.Aunque es recomendable solicitar una para la dirección http://localhost con estahagamos los ajustes necesarios y una vez que nuestro código esté listo cambiar la API Keypor la de nuestro sitio en Internet para publicar la página.Aquí tenemos una muestra del código que nos proporciona Google Maps para queutilicemos. Es importante destacar que debemos remplazar el texto resaltado en elcódigo: COLOCAR_AQUI_NUESTRA_KEY por nuestro API Key, para que funcionecorrectamente.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>Google Maps JavaScript API Example</title><scriptsrc="http://maps.google.com/maps?file=api&v=2&key=COLOCAR_AQUI_NUESTRA_KEY"type="text/javascript"></script><script type="text/javascript">//<![CDATA[function load() {if (GBrowserIsCompatible()) {var map = new GMap2(document.getElementById("map"));map.setCenter(new GLatLng(37.4419, -122.1419), 13);}}//]]></script>A continuación utilizaremos este código para explorar algunas, de las múltiplescaracterísticas que podemos explotar con el API de Google Maps.Ejemplo: http://www.institutohervic.edu.mx/

×