SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
2013
Octavio Izúcar Martínez
Programación Web
Francisco Vázquez Guzmán
Servicios Web
Instituto Tecnológico de
Tehuacán
7° Semestre
29 de mayo del 2013
S e r v i c i o s W e b
Servicios Web con J a v a
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.
 En las últimas especificaciones Sun crea una nueva especificación que
facilita el desarrollo de Web Services a través de anotaciones.
Tecnologías para ServiciosWeb en Java EE:
 Especificación de Implementación
http://jcp.org/en/jsr/detail?id=109
 JAX-WS: Java API for XML Web Services
https://jax-ws.dev.java.net/
 JAX-RPC: Java API for XML-based RPC
https://jax-rpc.dev.java.net/
 JAXB: Java Architecture for XML Binding
https://jaxb.dev.java.net/
 SAAJ: SOAP with Attachments API for Java
https://saaj.dev.java.net/
 StAX:Streaming API for XML
http://java.sun.com/webservices/docs/1.6/tutorial/doc/SJSXP.html
 Web Services Metadata for the Java Platform
http://jcp.org/en/jsr/detail?id=181
Web Services en JavaEE6 y JDK6
A partir de la version 6 (update 4), la plataforma Java estandar (JDK), incluye las
APIs para trabajar con JAX-WS y JAXB, fundamentales para el consumo de web
services
Definición Web Service
Se crea 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
Invocando un web service
Ejemplo de Cliente
Servicios web con P H P
Para la implementación de servicios web en PHP se utilizan tecnologías XML-
RPC y SOAP sobre las cuales se implementaron servidores y clientes
consumidores de servicios web.
XML-RPC
XML-RPC es el protocolo de llamada de procedimientos remotos (RPC: Remote
Procedure Calling), el cual trabaja sobre internet. Un mensaje de XML-RPC es una
petición del HTTP-POST . El cuerpo del mismo está en XML, un procedimiento es
ejecutado en el servidor y el valor que devuelve está en formato XML.
Ejemplo de petición:
POST /RPC2 HTTP/1.0
User-Agent: Frontier/5.1.2 (WinNT)
Host: betty.userland.com
Content-Type: text/xml
Content-length: 181
<?xml version="1.0"?>
<methodCall>
<methodName>ejemplo.buscaIsbn</methodName>
<params>
<param>
<value><i4>1</i4></value>
</param>
</params>
</methodCall>
Ejemplo de respuesta:
HTTP/1.1 200 OK
Connection: close
Content-Length: 158
Content-Type: text/xml
Date: Fri, 17 Jul 1998 19:55:08 GMT
Server: UserLand Frontier/5.1.2-WinNT
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>PHP</string></value>
</param>
</params>
</methodResponse>
SOAP
SOAP (Simple Object Access Protocol, Protocolo de acceso a objetos simple) es
un protocolo basado en XML que consiste de tres partes: la primera define cuál es
el mensaje y cómo procesarlo, la segunda es un sistema de reglas de codificación
para expresar tipos de datos definidos y una tercera parte para representar
respuestas de llamadas por parte de procedimientos remotos.
<?php
function foo($parametros){
/* Instrucciones php */
}
$servidor=new xmlrpc_server(array("ejemplo.miFuncion"=>array("function"=>"foo")));
?>
Clases para crear un cliente XML-RPC para el consumo de servicios web XML-RPC.
xmlrpc_client.- Esta es la clase básica para un cliente XML-RPC, la forma de usarla es la
siguiente:
<?php $cliente = new xmlrpc_client($ruta_servidor,$nombre_servidor,$puerto_servidor); ?>
xmlrpcmsg.- Esta clase provee una representación para una petición a un servidor XML-
RPC. Un cliente envía un xmlrpcmsg al servidor y recibe un xmlrpcresp.
<?php $msg = new xmlrpcmsg($nombre_metodo,$arreglo_parametros); ?>
xmlrpcval.- Esta clase es la que permite la creación y encapsulamiento de los valores
para XML-RPC (hace el trabajo sucio). Cuenta con diferentes constructores:
<?php $valor=new xmlrpcval(); ?>
Desarrollo de clientes SOAP con PHP
La mayoría de los servicios web en la actualidad se basan en los estándares
SOAP y WSDL analizados anteriormente.
La implementación de SOAP sobre PHP que vamos a utilizar se llama NuSOAP
(http://sourceforge.net/projects/nusoap/) y que fue liberado bajo licencia LPGL.
El siguiente script en PHP que usa SOAP para consumir un servicio web que
regresa mensaje de "Hola Mundo":
<?php
// Manejo de la forma para ver si ya se envió
if (!(string)$_POST["boton"] == "") {
// Incluimos las clases de SOAP
require("nusoap.php");
// crea el cliente
$cliente = new soapclient("http://localhost/taller/server.php?wsdl", "wsdl");
$proxy = $cliente->getProxy();
// llamada al metodo (BuscaIsbn)
$resultado = $proxy->BuscaIsbn((string)$_POST["isbn"]);
// Revisa errores
if (!$cliente->getError()) {
// muestra resultados
print "El titulo del libro con ISBN ".(string)$_POST["isbn"]." es:
".$resultado;
}
// Error
else {
echo "<h1>Error: ".$cliente->getError()."</h1>";
}
}
?>
<!-- Forma de busqueda -->
<form name="datos" action="#" method="POST">
ISBN: <input type="text" name="isbn">
<input name="boton" type="submit" value="Buscar">
</form>
Desarrollo de servidores SOAP con PHP
Un servidor de servicios web con SOAP y PHP, se creara usando NuSOAP y se
usara el ejemplo de buscar el título del libro:
<?php
// Incluimos las clases de SOAP
require("nusoap.php");
// Creamos el objeto del servidor
$servidor=new soap_server();
// Registramos la función que queremos exponer como servicio web
$servidor->register("buscaIsbn");
// Generación del WSDL
$servidor->debug_flag=false;
$servidor->configureWSDL("ISBN", "http:/localhost/taller");
$servidor->wsdl->schemaTargetNamespace = "http:/localhost/taller";
/*// Agregamos un tipo de dato complejo
$servidor->wsdl->addComplexType(
"datosLibro",
"complexType",
"struct",
"all",
"",
array(
"titulo" => array("name"=>"titulo", "type"=>"xsd:string"))
);*/
// Registramos el método
$servidor->register("BuscaIsbn", array("titulo" => "xsd:string"),
array("return"=>"xsd:string"),http://localhost/taller");
function BuscaIsbn($isbn)
{
if (isset($isbn))
{
switch($isbn) /*No usaremos base de datos*/
{
case 111: $titulo="Taller de PHP";
break;
case 222: $titulo="PHP y XML_RPC";
break;
case 333: $titulo="Creando sitios web con PHP";
break;
case 444: $titulo="PHP para principiantes";
break;
default: return new soap_fault("Client", "", "El libro no
existe.", "");
}
}
else
{
// No hay isbn
return new soap_fault("Client", "", "No envio ISBN.", "");
}
return $titulo;
}
// Enviar el resultado como una respuesta SOAP por HTTP
$servidor->service($HTTP_RAW_POST_DATA);
exit();
?>
Servicios Web con P E R L
Crear servicios Web en Perl con SOAP :: Lite
Perl, al igual que la mayoría de los idiomas, oculta al programador de las
complejidades de SOAP con una caja de herramientas. El SOAP :: Lite conjunto
de herramientas es una de las implementaciones más completas de SOAP
disponibles, apoyando ambas versiones 1.1 y 1.2 de SOAP.
Instalación de SOAP :: Lite
SOAP :: Lite, al igual que muchos módulos Perl, está disponible en el
Comprehensive Perl Archive Network (CPAN). CPAN es una red de sitios Web y
FTP con idéntico contenido - la fuente de miles de módulos Perl. Se puede
acceder a través de CPAN un cliente de línea de comandos Perl a través de la
Web en http://www.cpan.org . Ver http://www.cpan.org/misc/cpan-faq.html #
How_install_Perl_modules para obtener información sobre la instalación de
módulos de Perl.
Instalación de SOAP :: Lite con el shell de CPAN
C:book>perl -MCPAN -e shell
cpan shell -- CPAN exploration and modules installation (v1.59_54)
cpan> install SOAP::Lite
El servidor de Hola
Hello.pm
# Hello.pm - simple Hello module
package Hello;
sub sayHello {
shift; # remove class name
return "Hello " . shift;
}
1;
Este módulo será el código que se encuentre detrás de la interfaz de servicio
web.
El Cliente Hola
hw_client.pl
#!/usr/bin/perl -w
# hw_client.pl - Hello client
use SOAP::Lite;
my $name = shift;
print "nnCalling the SOAP Server to say hellonn";
print "The SOAP Server says: ";
print SOAP::Lite
-> uri('urn:Example1')
-> proxy('http://localhost/cgi-bin/helloworld.cgi')
-> sayHello($name)
-> result . "nn";
%
Servicios Web con G o o g l e
Servicios de Google, lista de APIs y productos que Google presenta en
code.google.com
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.
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/
FeedBurner ofrece servicios web que permiten interactuar con funciones de
generación de información y administración de feeds.
Feeds Atom de Gmail - http://gmail.google.com/support/bin/answer.py?answer=13465
Este sencillo mecanismo de feeds permite leer etiquetas o mensajes recibidos en
Gmail mediante cualquier agregador que admita el formato de feeds Atom XML.
Autenticación de cuentas de Google – http://code.google.com/intl/es/apis/accounts/
A la API AuthSub ofrece a las aplicaciones web la posibilidad de acceder a la
cuenta de Google del usuario sin gestionar la información de acceso del mismo.
API de Google AdSense – http://code.google.com/intl/es/apis/adsense/
La API de Google AdSense permite integrar en tu web o en tu plataforma de
alojamiento de blogs el registro en AdSense, la administración de anuncios y los
informes.
APIs AJAX de Google – http://code.google.com/intl/es/apis/ajax/
Las APIs AJAX de Google permiten crear sitios web completos y dinámicos
utilizando únicamente JavaScript y HTML.
API AJAX de Google para feeds – http://code.google.com/intl/es/apis/ajaxfeeds/
La API AJAX de Google para feeds facilita el acceso a feeds de datos y su
utilización en aplicaciones JavaScript.
API AJAX de Google Search – http://code.google.com/intl/es/apis/ajaxsearch/
La API AJAX de Google Search te permitirá insertar un sencillo cuadro de
búsqueda de Google dinámico en tu sitio web y mostrar los resultados, o utilizar
los resultados de búsqueda de forma innovadora automáticamente.
Google Analytics – http://code.google.com/intl/es/apis/analytics/
Google Analytics te permite recopilar, ver y analizar datos sobre el tráfico de tu
sitio web, como datos de popularidad del contenido, comportamiento acumulado
de los visitantes y muchas otras cosas.
APIs de Google Apps – http://code.google.com/intl/es/apis/apps/
Google Apps también admite de forma universal la ampliación de servicios
individuales con los gadgets de Google, Google Calendar, Google Docs y Google
Talk.
API de datos de Google Base – http://code.google.com/intl/es/apis/base/
Con la API de datos de Google Base puedes consultar datos de Google Base para
crear aplicaciones y mashups, así como introducir y administrar artículos de
Google Base de forma automática.
Herramientas y APIs de Google Calendar –
http://code.google.com/intl/es/apis/calendar/
La API de datos de Google Calendar y otras herramientas te ofrecen muchas
posibilidades.
API de Google Chart – http://code.google.com/intl/es/apis/chart/
La API de Google Chart es una sencilla herramienta que te permite crear muchos
tipos de gráficos.
API de Google Checkout – http://code.google.com/intl/es/apis/checkout/
Google Checkout es un proceso de pago de comercio electrónico racionalizado
que se puede integrar con Google AdWords y Google Analytics para atraer a un
mayor número de posibles clientes y obtener mejores ratios de conversión.
Google Code Search – http://www.google.com/codesearch
Code Search de Google te ayuda a encontrar definiciones de funciones y código.
API de datos de Google Code Search –
http://code.google.com/intl/es/apis/codesearch/
La API de datos de Google Code Search permite a las aplicaciones cliente
acceder a datos de Code Search como feeds de la API de datos de Google.
Feeds de vales descuento de Google – http://code.google.com/intl/es/apis/coupons/
Los feeds de vales descuento de Google permiten a las empresas ofrecer listados
de vales que se incluyen en los resultados de búsqueda de Google.
API de gadgets de Google Desktop – http://code.google.com/intl/es/apis/desktop/
Los gadgets de Desktop son potentes miniaplicaciones que pueden residir en la
barra lateral de Google Desktop, directamente en el escritorio del usuario o incluso
dentro de páginas principales de iGoogle.
APIs de búsqueda de Google Desktop – http://code.google.com/intl/es/apis/desktop/
Utiliza la potencia de Google Desktop en tus aplicaciones y gadgets, o crea
complementos de indexación que permitan a los usuarios buscar cualquier tipo de
archivo.
API de datos para la lista de Google Docs –
http://code.google.com/intl/es/apis/documents/
La API de datos para la lista de Google Docs permite a las aplicaciones cliente
acceder a los documentos guardados en Google Docs a través de feeds de la API
de datos de Google.
API de gadgets de Google – http://code.google.com/intl/es/apis/gadgets/
Los gadgets de Google son sencillas miniaplicaciones HTML y JavaScript dentro
de iFrames que se pueden insertar en páginas web y otras aplicaciones.
API de Google Maps – http://code.google.com/intl/es/apis/maps/
La API de Google Maps permite crear innovadoras aplicaciones geográficas online
e integrar mapas y referencias geográficas en sitios web.
Google Mashup Editor – http://code.google.com/intl/es/gme/
Google Mashup Editor es un entorno de programación AJAX.
API de datos del Bloc de notas de Google-
http://code.google.com/intl/es/apis/notebook/
La API de datos del Bloc de notas de Google permite a las aplicaciones cliente
acceder a información almacenada como feeds de la API de datos de Google
Feeds de Google Noticias – http://news.google.com/intl/en_us/news_feed_terms.html
Los usuarios pueden suscribirse a feeds de búsqueda de noticias y temas.
APIs de Google Search Appliance – http://code.google.com/intl/es/enterprise/
El protocolo de búsqueda es un sencillo protocolo basado en HTTP que se utiliza
para mostrar resultados de búsquedas.
Google Sitemaps – https://www.google.com/webmasters/tools/docs/en/about.html
A través de Google Sitemaps, los rastreadores de Google pueden descubrir
rápidamente las páginas existentes y las que han cambiado recientemente.
API de gráficos sociales – http://code.google.com/intl/es/apis/socialgraph/
La API de gráficos sociales permite que los desarrolladores puedan acceder
fácilmente a información de utilidad sobre conexiones públicas entre usuarios de
Internet
API de datos de Google Docs – http://code.google.com/intl/es/apis/spreadsheets/
La API de datos de Google Docs permite a las aplicaciones cliente ver y actualizar
contenido de Google Docs como feeds de la API de datos de Google.
Google Web Toolkit - http://code.google.com/intl/es/webtoolkit/
Google Web Toolkit (GWT) es una estructura de desarrollo de software de
software libre Java que permite crear aplicaciones AJAX de fácil utilización.
API de datos de YouTube – http://code.google.com/intl/es/apis/youtube/
YouTube ofrece libre acceso a partes clave del repositorio de vídeos de YouTube
y a la comunidad de usuarios a través de feeds RSS y de una API abierta.

Contenu connexe

Tendances

Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularFreelancer
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework SymfonyRodrigo Miranda
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - PhpPROD LARD
 
Programacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidorProgramacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidorJose Felix Moran Agusto
 
Servidor De Prueba (Wamp Y Php)Presentacion
Servidor De Prueba (Wamp Y Php)PresentacionServidor De Prueba (Wamp Y Php)Presentacion
Servidor De Prueba (Wamp Y Php)Presentacionuts
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosaFco Javier Núñez Berrocoso
 
introduccion al Lenguaje php
introduccion al Lenguaje phpintroduccion al Lenguaje php
introduccion al Lenguaje phprmonago
 
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con AjaxDesarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con Ajaxjuliocasal
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasoshydras_cs
 
Manual Completo Php 5
Manual Completo Php 5Manual Completo Php 5
Manual Completo Php 5Pablo Morales
 
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones SymfonyLas buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfonysymfony_bcn
 
Aplicaciones web con php y my sql
Aplicaciones web con php y my sqlAplicaciones web con php y my sql
Aplicaciones web con php y my sqlyanetzis
 

Tendances (20)

Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework Symfony
 
Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 
Programacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidorProgramacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidor
 
Servidor De Prueba (Wamp Y Php)Presentacion
Servidor De Prueba (Wamp Y Php)PresentacionServidor De Prueba (Wamp Y Php)Presentacion
Servidor De Prueba (Wamp Y Php)Presentacion
 
Manual php
Manual phpManual php
Manual php
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
 
PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
 
introduccion al Lenguaje php
introduccion al Lenguaje phpintroduccion al Lenguaje php
introduccion al Lenguaje php
 
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con AjaxDesarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasos
 
Manual Completo Php 5
Manual Completo Php 5Manual Completo Php 5
Manual Completo Php 5
 
(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5
 
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones SymfonyLas buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfony
 
Manual De Php
Manual De PhpManual De Php
Manual De Php
 
Tema1
Tema1Tema1
Tema1
 
Manual de PHP Basico
Manual de PHP BasicoManual de PHP Basico
Manual de PHP Basico
 
Aplicaciones web con php y my sql
Aplicaciones web con php y my sqlAplicaciones web con php y my sql
Aplicaciones web con php y my sql
 
Curso Php
Curso PhpCurso Php
Curso Php
 

Similaire à Servicios web java, php, perl, google

Servicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y GoogleServicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y GoogleArmando Nuñez Ramos
 
Servicios web
Servicios webServicios web
Servicios webitoomac02
 
Servicios web
Servicios webServicios web
Servicios webitoomac02
 
Programacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidorProgramacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidorAlejandro Hernandez
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con RESTAlex Puig
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAPea2014G3
 
Servicio web
Servicio web Servicio web
Servicio web Yael67
 
Modulo13 Web Services
Modulo13 Web ServicesModulo13 Web Services
Modulo13 Web ServicesEduardo
 
Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Joaquín Salvachúa
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfRaaulroodriguez
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando phpvictdiazm
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamicoJose Luis Crespo
 

Similaire à Servicios web java, php, perl, google (20)

Servicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y GoogleServicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y Google
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Curso de php
Curso de phpCurso de php
Curso de php
 
Servicios web
Servicios webServicios web
Servicios web
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
Programacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidorProgramacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidor
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
 
Servicio web
Servicio web Servicio web
Servicio web
 
Modulo13 Web Services
Modulo13 Web ServicesModulo13 Web Services
Modulo13 Web Services
 
Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando php
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamico
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 

Servicios web java, php, perl, google

  • 1. 2013 Octavio Izúcar Martínez Programación Web Francisco Vázquez Guzmán Servicios Web Instituto Tecnológico de Tehuacán 7° Semestre 29 de mayo del 2013
  • 2. S e r v i c i o s W e b Servicios Web con J a v a 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.  En las últimas especificaciones Sun crea una nueva especificación que facilita el desarrollo de Web Services a través de anotaciones. Tecnologías para ServiciosWeb en Java EE:  Especificación de Implementación http://jcp.org/en/jsr/detail?id=109  JAX-WS: Java API for XML Web Services https://jax-ws.dev.java.net/  JAX-RPC: Java API for XML-based RPC https://jax-rpc.dev.java.net/  JAXB: Java Architecture for XML Binding https://jaxb.dev.java.net/  SAAJ: SOAP with Attachments API for Java https://saaj.dev.java.net/  StAX:Streaming API for XML http://java.sun.com/webservices/docs/1.6/tutorial/doc/SJSXP.html  Web Services Metadata for the Java Platform http://jcp.org/en/jsr/detail?id=181 Web Services en JavaEE6 y JDK6 A partir de la version 6 (update 4), la plataforma Java estandar (JDK), incluye las APIs para trabajar con JAX-WS y JAXB, fundamentales para el consumo de web services Definición Web Service
  • 3. Se crea 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 Invocando un web service Ejemplo de Cliente
  • 4. Servicios web con P H P Para la implementación de servicios web en PHP se utilizan tecnologías XML- RPC y SOAP sobre las cuales se implementaron servidores y clientes consumidores de servicios web. XML-RPC XML-RPC es el protocolo de llamada de procedimientos remotos (RPC: Remote Procedure Calling), el cual trabaja sobre internet. Un mensaje de XML-RPC es una petición del HTTP-POST . El cuerpo del mismo está en XML, un procedimiento es ejecutado en el servidor y el valor que devuelve está en formato XML. Ejemplo de petición: POST /RPC2 HTTP/1.0 User-Agent: Frontier/5.1.2 (WinNT) Host: betty.userland.com Content-Type: text/xml Content-length: 181 <?xml version="1.0"?> <methodCall> <methodName>ejemplo.buscaIsbn</methodName> <params> <param> <value><i4>1</i4></value> </param> </params> </methodCall> Ejemplo de respuesta: HTTP/1.1 200 OK Connection: close Content-Length: 158 Content-Type: text/xml Date: Fri, 17 Jul 1998 19:55:08 GMT Server: UserLand Frontier/5.1.2-WinNT <?xml version="1.0"?> <methodResponse> <params> <param> <value><string>PHP</string></value> </param> </params> </methodResponse> SOAP SOAP (Simple Object Access Protocol, Protocolo de acceso a objetos simple) es un protocolo basado en XML que consiste de tres partes: la primera define cuál es el mensaje y cómo procesarlo, la segunda es un sistema de reglas de codificación para expresar tipos de datos definidos y una tercera parte para representar respuestas de llamadas por parte de procedimientos remotos.
  • 5. <?php function foo($parametros){ /* Instrucciones php */ } $servidor=new xmlrpc_server(array("ejemplo.miFuncion"=>array("function"=>"foo"))); ?> Clases para crear un cliente XML-RPC para el consumo de servicios web XML-RPC. xmlrpc_client.- Esta es la clase básica para un cliente XML-RPC, la forma de usarla es la siguiente: <?php $cliente = new xmlrpc_client($ruta_servidor,$nombre_servidor,$puerto_servidor); ?> xmlrpcmsg.- Esta clase provee una representación para una petición a un servidor XML- RPC. Un cliente envía un xmlrpcmsg al servidor y recibe un xmlrpcresp. <?php $msg = new xmlrpcmsg($nombre_metodo,$arreglo_parametros); ?> xmlrpcval.- Esta clase es la que permite la creación y encapsulamiento de los valores para XML-RPC (hace el trabajo sucio). Cuenta con diferentes constructores: <?php $valor=new xmlrpcval(); ?> Desarrollo de clientes SOAP con PHP La mayoría de los servicios web en la actualidad se basan en los estándares SOAP y WSDL analizados anteriormente. La implementación de SOAP sobre PHP que vamos a utilizar se llama NuSOAP (http://sourceforge.net/projects/nusoap/) y que fue liberado bajo licencia LPGL. El siguiente script en PHP que usa SOAP para consumir un servicio web que regresa mensaje de "Hola Mundo": <?php // Manejo de la forma para ver si ya se envió if (!(string)$_POST["boton"] == "") { // Incluimos las clases de SOAP require("nusoap.php"); // crea el cliente $cliente = new soapclient("http://localhost/taller/server.php?wsdl", "wsdl"); $proxy = $cliente->getProxy(); // llamada al metodo (BuscaIsbn) $resultado = $proxy->BuscaIsbn((string)$_POST["isbn"]); // Revisa errores if (!$cliente->getError()) { // muestra resultados print "El titulo del libro con ISBN ".(string)$_POST["isbn"]." es: ".$resultado; } // Error else { echo "<h1>Error: ".$cliente->getError()."</h1>"; } } ?> <!-- Forma de busqueda -->
  • 6. <form name="datos" action="#" method="POST"> ISBN: <input type="text" name="isbn"> <input name="boton" type="submit" value="Buscar"> </form> Desarrollo de servidores SOAP con PHP Un servidor de servicios web con SOAP y PHP, se creara usando NuSOAP y se usara el ejemplo de buscar el título del libro: <?php // Incluimos las clases de SOAP require("nusoap.php"); // Creamos el objeto del servidor $servidor=new soap_server(); // Registramos la función que queremos exponer como servicio web $servidor->register("buscaIsbn"); // Generación del WSDL $servidor->debug_flag=false; $servidor->configureWSDL("ISBN", "http:/localhost/taller"); $servidor->wsdl->schemaTargetNamespace = "http:/localhost/taller"; /*// Agregamos un tipo de dato complejo $servidor->wsdl->addComplexType( "datosLibro", "complexType", "struct", "all", "", array( "titulo" => array("name"=>"titulo", "type"=>"xsd:string")) );*/ // Registramos el método $servidor->register("BuscaIsbn", array("titulo" => "xsd:string"), array("return"=>"xsd:string"),http://localhost/taller"); function BuscaIsbn($isbn) { if (isset($isbn)) { switch($isbn) /*No usaremos base de datos*/ { case 111: $titulo="Taller de PHP"; break; case 222: $titulo="PHP y XML_RPC"; break; case 333: $titulo="Creando sitios web con PHP"; break; case 444: $titulo="PHP para principiantes"; break; default: return new soap_fault("Client", "", "El libro no existe.", ""); } } else { // No hay isbn return new soap_fault("Client", "", "No envio ISBN.", ""); } return $titulo; } // Enviar el resultado como una respuesta SOAP por HTTP $servidor->service($HTTP_RAW_POST_DATA); exit(); ?>
  • 7. Servicios Web con P E R L Crear servicios Web en Perl con SOAP :: Lite Perl, al igual que la mayoría de los idiomas, oculta al programador de las complejidades de SOAP con una caja de herramientas. El SOAP :: Lite conjunto de herramientas es una de las implementaciones más completas de SOAP disponibles, apoyando ambas versiones 1.1 y 1.2 de SOAP. Instalación de SOAP :: Lite SOAP :: Lite, al igual que muchos módulos Perl, está disponible en el Comprehensive Perl Archive Network (CPAN). CPAN es una red de sitios Web y FTP con idéntico contenido - la fuente de miles de módulos Perl. Se puede acceder a través de CPAN un cliente de línea de comandos Perl a través de la Web en http://www.cpan.org . Ver http://www.cpan.org/misc/cpan-faq.html # How_install_Perl_modules para obtener información sobre la instalación de módulos de Perl. Instalación de SOAP :: Lite con el shell de CPAN C:book>perl -MCPAN -e shell cpan shell -- CPAN exploration and modules installation (v1.59_54) cpan> install SOAP::Lite El servidor de Hola Hello.pm # Hello.pm - simple Hello module package Hello; sub sayHello { shift; # remove class name return "Hello " . shift; } 1; Este módulo será el código que se encuentre detrás de la interfaz de servicio web. El Cliente Hola hw_client.pl #!/usr/bin/perl -w # hw_client.pl - Hello client use SOAP::Lite; my $name = shift; print "nnCalling the SOAP Server to say hellonn"; print "The SOAP Server says: "; print SOAP::Lite -> uri('urn:Example1') -> proxy('http://localhost/cgi-bin/helloworld.cgi') -> sayHello($name) -> result . "nn"; %
  • 8. Servicios Web con G o o g l e Servicios de Google, lista de APIs y productos que Google presenta en code.google.com 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. 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/ FeedBurner ofrece servicios web que permiten interactuar con funciones de generación de información y administración de feeds. Feeds Atom de Gmail - http://gmail.google.com/support/bin/answer.py?answer=13465 Este sencillo mecanismo de feeds permite leer etiquetas o mensajes recibidos en Gmail mediante cualquier agregador que admita el formato de feeds Atom XML. Autenticación de cuentas de Google – http://code.google.com/intl/es/apis/accounts/ A la API AuthSub ofrece a las aplicaciones web la posibilidad de acceder a la cuenta de Google del usuario sin gestionar la información de acceso del mismo. API de Google AdSense – http://code.google.com/intl/es/apis/adsense/ La API de Google AdSense permite integrar en tu web o en tu plataforma de alojamiento de blogs el registro en AdSense, la administración de anuncios y los informes. APIs AJAX de Google – http://code.google.com/intl/es/apis/ajax/ Las APIs AJAX de Google permiten crear sitios web completos y dinámicos utilizando únicamente JavaScript y HTML. API AJAX de Google para feeds – http://code.google.com/intl/es/apis/ajaxfeeds/ La API AJAX de Google para feeds facilita el acceso a feeds de datos y su utilización en aplicaciones JavaScript. API AJAX de Google Search – http://code.google.com/intl/es/apis/ajaxsearch/ La API AJAX de Google Search te permitirá insertar un sencillo cuadro de búsqueda de Google dinámico en tu sitio web y mostrar los resultados, o utilizar los resultados de búsqueda de forma innovadora automáticamente. Google Analytics – http://code.google.com/intl/es/apis/analytics/ Google Analytics te permite recopilar, ver y analizar datos sobre el tráfico de tu sitio web, como datos de popularidad del contenido, comportamiento acumulado de los visitantes y muchas otras cosas. APIs de Google Apps – http://code.google.com/intl/es/apis/apps/ Google Apps también admite de forma universal la ampliación de servicios individuales con los gadgets de Google, Google Calendar, Google Docs y Google Talk.
  • 9. API de datos de Google Base – http://code.google.com/intl/es/apis/base/ Con la API de datos de Google Base puedes consultar datos de Google Base para crear aplicaciones y mashups, así como introducir y administrar artículos de Google Base de forma automática. Herramientas y APIs de Google Calendar – http://code.google.com/intl/es/apis/calendar/ La API de datos de Google Calendar y otras herramientas te ofrecen muchas posibilidades. API de Google Chart – http://code.google.com/intl/es/apis/chart/ La API de Google Chart es una sencilla herramienta que te permite crear muchos tipos de gráficos. API de Google Checkout – http://code.google.com/intl/es/apis/checkout/ Google Checkout es un proceso de pago de comercio electrónico racionalizado que se puede integrar con Google AdWords y Google Analytics para atraer a un mayor número de posibles clientes y obtener mejores ratios de conversión. Google Code Search – http://www.google.com/codesearch Code Search de Google te ayuda a encontrar definiciones de funciones y código. API de datos de Google Code Search – http://code.google.com/intl/es/apis/codesearch/ La API de datos de Google Code Search permite a las aplicaciones cliente acceder a datos de Code Search como feeds de la API de datos de Google. Feeds de vales descuento de Google – http://code.google.com/intl/es/apis/coupons/ Los feeds de vales descuento de Google permiten a las empresas ofrecer listados de vales que se incluyen en los resultados de búsqueda de Google. API de gadgets de Google Desktop – http://code.google.com/intl/es/apis/desktop/ Los gadgets de Desktop son potentes miniaplicaciones que pueden residir en la barra lateral de Google Desktop, directamente en el escritorio del usuario o incluso dentro de páginas principales de iGoogle. APIs de búsqueda de Google Desktop – http://code.google.com/intl/es/apis/desktop/ Utiliza la potencia de Google Desktop en tus aplicaciones y gadgets, o crea complementos de indexación que permitan a los usuarios buscar cualquier tipo de archivo. API de datos para la lista de Google Docs – http://code.google.com/intl/es/apis/documents/ La API de datos para la lista de Google Docs permite a las aplicaciones cliente acceder a los documentos guardados en Google Docs a través de feeds de la API de datos de Google. API de gadgets de Google – http://code.google.com/intl/es/apis/gadgets/ Los gadgets de Google son sencillas miniaplicaciones HTML y JavaScript dentro de iFrames que se pueden insertar en páginas web y otras aplicaciones. API de Google Maps – http://code.google.com/intl/es/apis/maps/ La API de Google Maps permite crear innovadoras aplicaciones geográficas online e integrar mapas y referencias geográficas en sitios web.
  • 10. Google Mashup Editor – http://code.google.com/intl/es/gme/ Google Mashup Editor es un entorno de programación AJAX. API de datos del Bloc de notas de Google- http://code.google.com/intl/es/apis/notebook/ La API de datos del Bloc de notas de Google permite a las aplicaciones cliente acceder a información almacenada como feeds de la API de datos de Google Feeds de Google Noticias – http://news.google.com/intl/en_us/news_feed_terms.html Los usuarios pueden suscribirse a feeds de búsqueda de noticias y temas. APIs de Google Search Appliance – http://code.google.com/intl/es/enterprise/ El protocolo de búsqueda es un sencillo protocolo basado en HTTP que se utiliza para mostrar resultados de búsquedas. Google Sitemaps – https://www.google.com/webmasters/tools/docs/en/about.html A través de Google Sitemaps, los rastreadores de Google pueden descubrir rápidamente las páginas existentes y las que han cambiado recientemente. API de gráficos sociales – http://code.google.com/intl/es/apis/socialgraph/ La API de gráficos sociales permite que los desarrolladores puedan acceder fácilmente a información de utilidad sobre conexiones públicas entre usuarios de Internet API de datos de Google Docs – http://code.google.com/intl/es/apis/spreadsheets/ La API de datos de Google Docs permite a las aplicaciones cliente ver y actualizar contenido de Google Docs como feeds de la API de datos de Google. Google Web Toolkit - http://code.google.com/intl/es/webtoolkit/ Google Web Toolkit (GWT) es una estructura de desarrollo de software de software libre Java que permite crear aplicaciones AJAX de fácil utilización. API de datos de YouTube – http://code.google.com/intl/es/apis/youtube/ YouTube ofrece libre acceso a partes clave del repositorio de vídeos de YouTube y a la comunidad de usuarios a través de feeds RSS y de una API abierta.