SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Programación Web - Autor: Armando Nuñez Ramos 1
Autor:ArmandoNuñezRamos
2013
Programación Web - Autor: Armando Nuñez Ramos 2
Programación Web - Autor: Armando Nuñez Ramos 3
Contenido
JAVA ..............................................................................................................................................................................
PHP ................................................................................................................................................................................
PERL..............................................................................................................................................................................
GOOGLE........................................................................................................................................................................
Programación Web
Programación Web - Autor: Armando Nuñez Ramos 4
4
Servicios web en Java
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
Programación Web
Programación Web - Autor: Armando Nuñez Ramos 5
5
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.
Figura 1.1 Consumo y definición de un web service
Servicios web con PHP
La implementación de servicios web en PHP se realiza por medio de
tecnologías XML-RPC y SOAP. Estas tecnologías cuentan con la
implementación de servidores y clientes consumidores de servicios web.
SOAP
El Protocolo de Acceso a Objetos Simple, es un protocolo que se define por las
siguientes características:
 Se basa en XML
 Se compone por tres partes: definición del mensaje y forma de
procesarlo, sistema de reglas de codificación y representación de
respuestas de llamadas de procedimientos remotos.
XML-RPC
El protocolo de llamada de procedimientos remotos es básicamente una
petición del HTTP-POST que trabaja en internet y está escrita en XML. El
procedimiento es ejecutado en el servidor y el valor que devuelve se maneja
también en formato XML.
Programación Web - Autor: Armando Nuñez Ramos 6
6
Figura 2.1 Ejemplo de petición y respuesta
Clientes SOAP con PHP
A continuación se muestra un script elaborado en PHP que utiliza SOAP para
consumir un servicio web que regresa el mensaje "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>
Programación Web - Autor: Armando Nuñez Ramos 7
7
Servidores SOAP con PHP
Para crear un servidor de servicios web con SOAP y PHP se utiliza NuSOAP. A
continuación se muestra un ejemplo de búsqueda de un libro por título:
<?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();
?>
Programación Web - Autor: Armando Nuñez Ramos 8
8
Servidor Framework XML-RPC
Para la construcción de servidores el framework cuenta con la clase
xmlrpc_server:
Figura 2.2 Clase xmlrpc_server
Cliente XML-RPC
Para crear un cliente XML-RPC que consuma servicios web de este tipo se utilizan las
siguientes clases:
 xmlrpc_client.: clase básica para un cliente XML-RPC. Se utiliza como
se muestra a continuación:
<?php $cliente = new xmlrpc_client($ruta_servidor,$nombre_servidor,$puerto_servidor);
?>
 xmlrpcmsg: 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: permite la creación y encapsulamiento de los valores para
XML-RPC.
<?php $valor=new xmlrpcval(); ?>
Ejemplo de cliente XML-RPC
<?php
include("xmlrpc.inc");
if ($HTTP_POST_VARS["txtIsbn"]!="")
{ $f=new xmlrpcmsg('libros.buscaIsbn',array(new xmlrpcval($HTTP_POST_VARS["txtIsbn"],
"int")));
print "<pre>".htmlentities($f->serialize())."</pre>n";
$c=new xmlrpc_client("/servidor.php", "localhost", 80);
$c->setDebug(0);
$r=$c->send($f);
if (!$r)
{ die("Falló SEND"); }
Programación Web - Autor: Armando Nuñez Ramos 9
9
$v=$r->value();
if (!$r->faultCode())
{ print "Título del libro ".$HTTP_POST_VARS["txtIsbn"]." es ".$v-
>scalarval()."<BR>"; }
else
{ print "Falla: ";
print "Número de error: " .$r->faultCode()." Descripción del error '".$r-
>faultString()."'<BR>";}
}
?>
Servicios web con Pearl
Implementar servicios Web
Para la implementación de servicios web en Pearl se utiliza SOAP :: Lite. A
continuación se muestra un ejemplo de creación y consumo de un servicio web:
Modulo Hola Mundo de Pearl
Hello.pm
# Hello.pm - Hola módulo sencillo
paquete Hello;
sub sayHello {
turno; # eliminar nombre de la clase
de retorno "Hello". cambio;
}
1;
Cliente
hw_client.pl
! # / Usr / bin / perl-w
# hw_client.pl - Hola cliente
utilización SOAP :: Lite;
mi $ nombre = cambio;
print " n  nCalling el servidor SOAP para saludar  n ";
print "El servidor SOAP dice: ";
impresión SOAP :: Lite
-> uri ('urn: Ejemplo 1')
-> proxy ('http://localhost/cgi-bin/helloworld.cgi')
-> sayHello ($ name)
-> como resultado. " N  n";
Código detrás de
la interfaz del
servicio web
Consumo del
servicio
Programación Web - Autor: Armando Nuñez Ramos 10
Servicios web con Google
LISTA DE APIS DE GOOGLE
APIS DIRECCIÓN DESCRIPCIÓN
APIs de Datos http://code.google.com/intl/es/apis/gdata/
Protocolo estándar para leer e introducir
datos en la Web. Google Base, Blogger,
Google Calendar, Google Docs y Álbumes
web de Picasa cuentan con este tipo de
APIs.
API de datos
de Blogger
http://code.google.com/intl/es/apis/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/
Ofrece servicios web que permiten
interactuar con funciones de
Feeds Atom de
Gmail
http://gmail.google.com/support/bin/answer.py?answer=13465
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/
Permite incorporar accesos programáticos
en aplicaciones móviles o de escritorio
APIs AJAX de
Google
http://code.google.com/intl/es/apis/ajax/
Permiten crear sitios web completos y
dinámicos utilizando únicamente JavaScript
Programación Web - Autor: Armando Nuñez Ramos 11
11
y HTML
Google Code
Search
http://www.google.com/codesearch
Ayuda a encontrar definiciones de
funciones y código de ejemplo de acceso
público
API de Google
Maps
http://code.google.com/intl/es/apis/maps/
Permite crear innovadoras aplicaciones
geográficas online e integrar mapas y
referencias geográficas en sitios web. Con
esta API, podrás presentar fácilmente tu
contenido con referencias geográficas en
cualquier navegador web.
Google
Sitemaps
https://www.google.com/webmasters/tools/docs/en/about.html
Da la posibilidad de descubrir rápidamente
las páginas existentes y las que han
cambiado recientemente
API de datos
de YouTube
http://code.google.com/intl/es/apis/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 abiert

Mais conteúdo relacionado

Mais procurados (20)

Como hacer de todo con PowerShell
Como hacer de todo con PowerShellComo hacer de todo con PowerShell
Como hacer de todo con PowerShell
 
Taller de Capistrano
Taller de CapistranoTaller de Capistrano
Taller de Capistrano
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
 
4.Programación con PHP y MySQL
4.Programación con PHP y MySQL4.Programación con PHP y MySQL
4.Programación con PHP y MySQL
 
Facelets
FaceletsFacelets
Facelets
 
Guia N2 Proyectos Web Php
Guia N2   Proyectos Web   PhpGuia N2   Proyectos Web   Php
Guia N2 Proyectos Web Php
 
Primefaces
PrimefacesPrimefaces
Primefaces
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
Curso php y_my_sql
Curso php y_my_sqlCurso php y_my_sql
Curso php y_my_sql
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Curso de php
Curso de phpCurso de php
Curso de php
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzado
 
Servicios web
Servicios webServicios web
Servicios web
 
Montar un servidor web win7
Montar un servidor web win7Montar un servidor web win7
Montar un servidor web win7
 
Final portafolio 3 c (1)
Final portafolio 3 c (1)Final portafolio 3 c (1)
Final portafolio 3 c (1)
 
Php basico
Php basicoPhp basico
Php basico
 
Iniciacion a PHP (I)
Iniciacion a PHP (I)Iniciacion a PHP (I)
Iniciacion a PHP (I)
 
Joomla
JoomlaJoomla
Joomla
 
2 7 ficheros_php
2 7 ficheros_php2 7 ficheros_php
2 7 ficheros_php
 
Php Con Postgres
Php Con PostgresPhp Con Postgres
Php Con Postgres
 

Destaque

Examenes certificacion
Examenes certificacionExamenes certificacion
Examenes certificacionWilly Aguirre
 
El metodo burbujaXCritian_parra
El metodo burbujaXCritian_parraEl metodo burbujaXCritian_parra
El metodo burbujaXCritian_parraEdgar Rueda
 
Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...
Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...
Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...CLEFormación
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y DestructorTecnologico
 

Destaque (6)

Hiato vs ditongo
Hiato vs ditongoHiato vs ditongo
Hiato vs ditongo
 
Examenes certificacion
Examenes certificacionExamenes certificacion
Examenes certificacion
 
El metodo burbujaXCritian_parra
El metodo burbujaXCritian_parraEl metodo burbujaXCritian_parra
El metodo burbujaXCritian_parra
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...
Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...
Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 

Semelhante a Servicios web en Java, PHP, Perl y Google

Semelhante a Servicios web en Java, PHP, Perl y Google (20)

Servicios web java, php, perl, google
Servicios web java, php, perl, googleServicios web java, php, perl, google
Servicios web java, php, perl, google
 
Servicios web java php-perl-google
Servicios web java php-perl-googleServicios web java php-perl-google
Servicios web java php-perl-google
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
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
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 
Servicio web java php perl google
Servicio web  java php perl googleServicio web  java php perl google
Servicio web java php perl google
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
 
Php!
Php!Php!
Php!
 
Servicios web
Servicios webServicios web
Servicios web
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API REST
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
 

Último

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 

Último (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Servicios web en Java, PHP, Perl y Google

  • 1. Programación Web - Autor: Armando Nuñez Ramos 1 Autor:ArmandoNuñezRamos 2013
  • 2. Programación Web - Autor: Armando Nuñez Ramos 2
  • 3. Programación Web - Autor: Armando Nuñez Ramos 3 Contenido JAVA .............................................................................................................................................................................. PHP ................................................................................................................................................................................ PERL.............................................................................................................................................................................. GOOGLE........................................................................................................................................................................ Programación Web
  • 4. Programación Web - Autor: Armando Nuñez Ramos 4 4 Servicios web en Java 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 Programación Web
  • 5. Programación Web - Autor: Armando Nuñez Ramos 5 5 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. Figura 1.1 Consumo y definición de un web service Servicios web con PHP La implementación de servicios web en PHP se realiza por medio de tecnologías XML-RPC y SOAP. Estas tecnologías cuentan con la implementación de servidores y clientes consumidores de servicios web. SOAP El Protocolo de Acceso a Objetos Simple, es un protocolo que se define por las siguientes características:  Se basa en XML  Se compone por tres partes: definición del mensaje y forma de procesarlo, sistema de reglas de codificación y representación de respuestas de llamadas de procedimientos remotos. XML-RPC El protocolo de llamada de procedimientos remotos es básicamente una petición del HTTP-POST que trabaja en internet y está escrita en XML. El procedimiento es ejecutado en el servidor y el valor que devuelve se maneja también en formato XML.
  • 6. Programación Web - Autor: Armando Nuñez Ramos 6 6 Figura 2.1 Ejemplo de petición y respuesta Clientes SOAP con PHP A continuación se muestra un script elaborado en PHP que utiliza SOAP para consumir un servicio web que regresa el mensaje "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>
  • 7. Programación Web - Autor: Armando Nuñez Ramos 7 7 Servidores SOAP con PHP Para crear un servidor de servicios web con SOAP y PHP se utiliza NuSOAP. A continuación se muestra un ejemplo de búsqueda de un libro por título: <?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(); ?>
  • 8. Programación Web - Autor: Armando Nuñez Ramos 8 8 Servidor Framework XML-RPC Para la construcción de servidores el framework cuenta con la clase xmlrpc_server: Figura 2.2 Clase xmlrpc_server Cliente XML-RPC Para crear un cliente XML-RPC que consuma servicios web de este tipo se utilizan las siguientes clases:  xmlrpc_client.: clase básica para un cliente XML-RPC. Se utiliza como se muestra a continuación: <?php $cliente = new xmlrpc_client($ruta_servidor,$nombre_servidor,$puerto_servidor); ?>  xmlrpcmsg: 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: permite la creación y encapsulamiento de los valores para XML-RPC. <?php $valor=new xmlrpcval(); ?> Ejemplo de cliente XML-RPC <?php include("xmlrpc.inc"); if ($HTTP_POST_VARS["txtIsbn"]!="") { $f=new xmlrpcmsg('libros.buscaIsbn',array(new xmlrpcval($HTTP_POST_VARS["txtIsbn"], "int"))); print "<pre>".htmlentities($f->serialize())."</pre>n"; $c=new xmlrpc_client("/servidor.php", "localhost", 80); $c->setDebug(0); $r=$c->send($f); if (!$r) { die("Falló SEND"); }
  • 9. Programación Web - Autor: Armando Nuñez Ramos 9 9 $v=$r->value(); if (!$r->faultCode()) { print "Título del libro ".$HTTP_POST_VARS["txtIsbn"]." es ".$v- >scalarval()."<BR>"; } else { print "Falla: "; print "Número de error: " .$r->faultCode()." Descripción del error '".$r- >faultString()."'<BR>";} } ?> Servicios web con Pearl Implementar servicios Web Para la implementación de servicios web en Pearl se utiliza SOAP :: Lite. A continuación se muestra un ejemplo de creación y consumo de un servicio web: Modulo Hola Mundo de Pearl Hello.pm # Hello.pm - Hola módulo sencillo paquete Hello; sub sayHello { turno; # eliminar nombre de la clase de retorno "Hello". cambio; } 1; Cliente hw_client.pl ! # / Usr / bin / perl-w # hw_client.pl - Hola cliente utilización SOAP :: Lite; mi $ nombre = cambio; print " n nCalling el servidor SOAP para saludar n "; print "El servidor SOAP dice: "; impresión SOAP :: Lite -> uri ('urn: Ejemplo 1') -> proxy ('http://localhost/cgi-bin/helloworld.cgi') -> sayHello ($ name) -> como resultado. " N n"; Código detrás de la interfaz del servicio web Consumo del servicio
  • 10. Programación Web - Autor: Armando Nuñez Ramos 10 Servicios web con Google LISTA DE APIS DE GOOGLE APIS DIRECCIÓN DESCRIPCIÓN APIs de Datos http://code.google.com/intl/es/apis/gdata/ Protocolo estándar para leer e introducir datos en la Web. Google Base, Blogger, Google Calendar, Google Docs y Álbumes web de Picasa cuentan con este tipo de APIs. API de datos de Blogger http://code.google.com/intl/es/apis/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/ Ofrece servicios web que permiten interactuar con funciones de Feeds Atom de Gmail http://gmail.google.com/support/bin/answer.py?answer=13465 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/ Permite incorporar accesos programáticos en aplicaciones móviles o de escritorio APIs AJAX de Google http://code.google.com/intl/es/apis/ajax/ Permiten crear sitios web completos y dinámicos utilizando únicamente JavaScript
  • 11. Programación Web - Autor: Armando Nuñez Ramos 11 11 y HTML Google Code Search http://www.google.com/codesearch Ayuda a encontrar definiciones de funciones y código de ejemplo de acceso público API de Google Maps http://code.google.com/intl/es/apis/maps/ Permite crear innovadoras aplicaciones geográficas online e integrar mapas y referencias geográficas en sitios web. Con esta API, podrás presentar fácilmente tu contenido con referencias geográficas en cualquier navegador web. Google Sitemaps https://www.google.com/webmasters/tools/docs/en/about.html Da la posibilidad de descubrir rápidamente las páginas existentes y las que han cambiado recientemente API de datos de YouTube http://code.google.com/intl/es/apis/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 abiert