Servicios Web. CI-2413 Desarrollo de aplicaciones para Internet Prof. Braulio José Solano Rojas ECCI, UCR

Servicios Web CI-2413 Desarrollo de aplicaciones para Internet Prof. Braulio José Solano Rojas ECCI, UCR Servicios Web ● ● ● A través de los año

2 downloads 61 Views 2MB Size

Recommend Stories


DESARROLLO DE APLICACIONES WEB
IES Camp de Morvedre Avda. Fausto Caruana, s/n, 46500 Sagunto Tlf: 96 2671320 Fax: 962671265 e-mail [email protected] http://www.iescamp.es/ Tlf: 96

Requerimientos para Aplicaciones Web
Requerimientos para Aplicaciones Web Alejandro Oliveros Ricardo Wehbe INTEC-UADE y UNTREF [email protected] INTEC-UADE [email protected] Silvan

Aplicaciones web con MVC. Desarrollo de aplicaciones II
Aplicaciones web con MVC Desarrollo de aplicaciones II ASP.NET MVC http://www.asp.net/mvc ASP.NET MVC es parte del desarrollo de aplicaciones web co

DESARROLLO DE SERVICIOS WEB SEGUROS EN MULEESB
DESARROLLO DE SERVICIOS WEB SEGUROS EN MULEESB DEVELOPMENT OF SECURE WEB SERVICES ON MULEESB Ing. Claudia I. Castro Zamora1, Ing. Ernesto Gil Arangure

Story Transcript

Servicios Web CI-2413 Desarrollo de aplicaciones para Internet

Prof. Braulio José Solano Rojas ECCI, UCR

Servicios Web ●





A través de los años ha habido varios intentos de lograr interoperabilidad entre computadores en redes. Sin embargo este objetivo ha sido elusivo. Han existido estándares como CORBA, DCOM y RPC. Los Servicios Web son una evolución o modernización de los viejos conceptos de interoperabilidad.

Servicios Web ●

Los servicios Web son intercambio de datos entre un servidor y un cliente, utilizando una norma de formato XML para "empacar" solicitudes y datos de tal manera que ambos sistemas puedan "entenderse". El servidor y el cliente pueden ambos ser servidores Web, o cualquier otro aparato electrónico en el que se pueda pensar.

Servicios Web ●





El intercambio de datos en el Web, típicamente ocurre vía TCP el puerto 80, utilizando el POST del protocolo HTTP. Los servicios Web operan básicamente de la misma manera que operan los navegadores Web. La diferencia es que en vez de HTML se trasiega XML. O sea, los servicios Web se encuentran disponibles en cualquier lugar de Internet, de la misma manera que lo hacen los navegadores, incluso pasando por firewalls.

Servicios Web ●

Sobre el intercambio de datos, también se necesita información que describa la interfaz (o la Interfaz de Programas de Aplicación - API). Esto hace que el servicio Web sea útil al resto de Internet, permitiendo así otros desarrolladores crear programas que pueden acceder sus servicios Web. Esto lo llamamos el componente de descripción, y la norma WSDL (Web Service Description Language) es la que permitirá esto.

Servicios Web ●

Sobre el componente anterior, hay información que describe la naturaleza del servicios mismo, de tal manera que pueda ser categorizado y encontrado en sitios que ofrezcan directorios de servicios Web. Esta es la capa de descubrimiento, la cual es tratada por la norma UDDI (Universal Description, Discovery and Integration).

Servicios Web ●

Ambos componentes, el de descripción y el de descubrimiento son simplemente XML, gobernadas por un formato particular que habilita a la información relevante ser encontrada para todos los servicios Web en Internet.

XML-RPC ●





(Componente de empaque) Es una norma muy simple, ya que sus 1500 palabras, comparadas con las más de 11000 de SOAP, hacen que sea fácil de utilizar. XML-RPC significa eXtensible Markup Language – Remote Procedure Calls, o en castellano, llamados a procedimientos remotos XML.

XML-RPC ●

Para PHP 5 tenemos acceso a dos implementaciones: ●



http://gggeek.github.io/phpxmlrpc/ La implementación nativa (extensión) dentro de la distribución de PHP. –



El API es más complejo de utilizar que la anterior.

http://pear.php.net/package/XML_RPC2

XML-RPC ●

Ejemplo de comunicación (cliente): ●

POST /InterfazXMLRPC HTTP/1.0 User-Agent: ECCI XML-RPC Client 1.0 Host: xmlrpc.ecci.ucr.ac.cr Content-type: text/xml Content-length: 195 forums.getNumTodaysThreads PHP Development

XML-RPC ●

Ejemplo de comunicación (servidor): ●

HTTP/1.1 200 OK Connection: close Content-Length: 148 content-Type: text/xml Date: Tue, Oct 7 2003 15:59:04 GMT Server: ECCI XML-RPC Server 1.0 42

XML-RPC, ejemplo: int A + int B ●

Código del cliente: include("xmlrpc.inc"); $a=new xmlrpcval($_POST['a'], "int"); $b=new xmlrpcval($_POST['b'], "int"); $f=new xmlrpcmsg('matematica.suma', array($a, $b)); $c=new xmlrpc_client("/CI2413/xml-rpc/servidor.php", "localhost", 80); $c->setDebug(0); $r=$c->send($f); if (!$r) { die("Hubo un fallo."); } $v=$r->value(); echo "La suma da: " . $v->scalarval();

XML-RPC, ejemplo: int A + int B ●

Código del servidor: include("xmlrpc.inc"); include("xmlrpcs.inc"); function suma($params) { $a=$params->getParam(0); $b=$params->getParam(1); $c = $a->scalarval() + $b->scalarval(); return new xmlrpcresp(new xmlrpcval($c)); } $suma_sig=array(array($xmlrpcInt, $xmlrpcInt, $xmlrpcInt)); $suma_doc='Suma dos enteros A y B.'; $s=new xmlrpc_server( array( "matematica.suma" => array("function" => "suma", "signature" => $suma_sig, "docstring" => $suma_doc)));

SOAP ●



SOAP (Simple Access Object Protocol) es protocolo XML para intercambio de información estructurada. Con PHP 5, podemos tener Clientes y Servidores SOAP nativos (extensión C y no biblioteca PHP).

SOAP

SOAP

SOAP

SOAP

WSDL para SOAP

WSDL para SOAP

Seguridad de SOAP ●



Sumamente vulnerable si no se asegura adecuadamente. Un atacante puede detectar vulnerabilidades en los llamados SOAP revisando el WSDL.

Seguridad de SOAP ●

WS-Security ●





Provee encripción y firma digital estándar, y Kerberos como mecanismo de autenticación. Solución para confidencialidad e integridad.

SAML ● ●

Security Assertion Markup Language. Habilita la posibilidad de usar SSO en la aplicación.

Seguridad de SOAP ●

WS-Policy ●



Permite que el web service anuncie sus políticas, incluyendo la de seguridad.

WS-Reliability ● ●

Permite el uso de mensajería confiable. Esto puede garantizar entrega, eliminación de duplicados y orden de los mensajes. –

Como en TCP.

Seguridad de SOAP ●



Utilice encripción y autenticación. Valide todas las entradas en todos los métodos de todos los web services.



Intente recibir RPC sólo de sistemas confiables.



Reduzca la cantidad de métodos publicados.

Otras implementaciones de SOAP en PHP ●

http://pear.php.net/package/SOAP



http://sourceforge.net/projects/nusoap/

Ejemplo: .NET+PHP5 ●



Permite crear aplicaciones remotas, o sea que corren en un servidor. La interfaz gráfica es .NET y corre en cualquier computadora en Internet que implemente el estándar. Esto es útil para: ●



Usuarios muy volubles: Cualquier persona que utiliza muchas computadoras. Ambientes de clientes livianos: El usuario necesita hardware de bajo costo, y se libera del monitoreo de seguridad, parcheo, instalación, actualización y desinstalación del software.

Ejemplo: .NET+PHP5 ●

Esto es útil para: ●

Ofrecer software como un servicio: los proveedores de aplicaciones como servicio (ASP) pueden trascender las limitaciones de HTML y “alquilar” aplicaciones con interfaces de usuario ricas. Los clientes interesados en comprar y hospedar la aplicación la pueden probar antes de comprometer recursos a la configuración y el desarrollo.

Otros ejemplos ●







Visual Studio .NET Las páginas mismas con lenguajes que tienen apoyo a XML-RPC y SOAP. Aplicaciones en campos específicos como OpenArchives (http://www.openarchives.org), Jabber ( http://www.jabber.org) Servicios como Portal de Búsqueda Google

Conclusiones ●



Internet es un conjunto de protocolos. Así nació y así sigue siendo. Incluso cada día se agregan nuevos protocolos a este conjunto. El desarrollo de aplicaciones para Internet no es la simple creación de páginas interactivas. Existe una gran gama de aplicaciones que se pueden crear.

Conclusiones ●



La tendencia es la creación de aplicaciones en capas con una o varias tecnologías que se comunican por medio de protocolos como SOAP o XML-RPC. A partir de los conceptos de computación distribuida, cliente-servidor y desarrollo en capas, nace el concepto de Servicio Web.

Conclusiones ●

Hay alternativas para las tecnologías propietarias mayores que dominan el mercado. Por ejemplo: una combinación de Mono con PHP por medio de SOAP, podría reemplazar una aplicación de Visual Studio .NET, aligerando el costo de las licencias.

Referencias y lecturas ●

http://w3schools.com



Computer. Vol. 36, Nº 10. Octubre del 2003.



http://www.php.net/manual/en/book.soap.php



http://www.revista.unam.mx/vol.3/num1/art3/



http://www.developer.com/services/article.php/1602051/WS DL-Essentials.htm

¡Gracias por su atención!

¿Preguntas?

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.