5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
12-Unidad 3: Webservices-3.3. Inicio de Proyecto (Introducción, Contenidos Iniciales)
1. Unidad 3. Webservices
3.3 Inicio de Proyecto
(Introducción, Contenidos Iniciales)
Autor(es):
Ciencias de la Ingeniería
Carrera de Sistemas
Plataformas de Desarrollo 2
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es
2. “No puedes derrotar a la persona que
nunca se rinde”
(Anónimo)
Ciencias de la Ingeniería
Carrera de Sistemas
Plataformas de Desarrollo 2
3. RESULTADO DE APRENDIZAJE
Desarrollar soluciones informáticas mediante metodologías,
herramientas y estándares que satisfagan los requerimientos
de las organizaciones sobre la base de los principios de la
sociedad de la información.
7. VISIÓN GENERAL - ¿QUÉ ES UN
WEB SERVICE?
Definición:
Es una unidad de lógica de
aplicación que ofrece datos y
servicios a otras aplicaciones.
¿Cómo funciona?
Las aplicaciones acceden a
los servicios Web a través de
estándares como HTTP, XML y
SOAP.
Independencia de cómo se
haya implementado el servicio
Web y acceso desde cualquier
dispositivo.
7
HTML, XML
HTML, XML
Servicios Web
Servicios Web
8. VISIÓN GENERAL -
ESCENARIO
8
Otros servicios Web
Servicios Web
de tus socios
Capa de acceso a datos y almacenamiento
Capa de lógica de negocio de la aplicación
TuCompañia.com
Internet + XML
Otras aplicaciones
Usuarios finales
9. VISIÓN GENERAL - ¿PARA
QUÉ SIRVEN?
Permiten interconectar
Aplicaciones
Diferentes clientes
No sólo browsers
Cualquier dispositivo
PC, móvil, PDA, ...
Distribución de la lógica de la aplicación
Permiten una Web programable
No sólo puramente interactiva
9
10. VISIÓN GENERAL - ¿QUÉ
APORTA?
Nuevas oportunidades empresariales: facilitan la
comunicación con los socios.
Ofrecen a los usuarios experiencias mucho más
personalizadas e integradas, por medio de la nueva
gama de dispositivos inteligentes.
Reducen la duración del ciclo de creación.
Ponen fácilmente sus propios servicios Web XML a
disponibilidad de otros.
10
11. VISIÓN GENERAL - EJEMPLOS
E-commerce: venta de libros, música online y otros
productos
Seguimiento de mercancías: UPS, FedEx
Parte meteorológico
Consulta de mapas online
TerraServer: TerraServer.Microsoft.Net
Servicios web gratuitos en: www.XMethods.com
11
14. INFRAESTRUCTURA -
TECNOLOGÍAS
SUBYACENTES
XML (eXtensible Markup Language)
Formato universal para documentos estructurados y datos en la
Web administrado por W3C
UDDI (Universal Description, Discovery and Integration)
Servicio de directorio que permite publicar y/o describir servicios
Web
DISCO
Permite encontrar servicios Web en un sitio dado
WSDL (Web Service Description Language)
Una gramática basada en XML que permite describir las
capacidades de un servicio Web
SOAP (Simple Object Access Protocol)
Protocolo ligero para el intercambio de información en entornos
distribuidos y descentralizados administrado por W3C
14
17. DESARROLLO DE UN
SERVICIO WEB -
INTRODUCCIÓN
Tiene extensión .asmx
Contiene código pero no la interficie de usuario
Herramientas:
Notepad
Simplemente crear el archivo .asmx
Visual Studio .NET
Crear un proyecto “ASP.NET Web Service”
Sun ONE y otras plataformas
17
18. DESARROLLO DE UN
SERVICIO WEB - CÓDIGO
ServicioMates.asmx
18
<%@ WebService Language=“c#” Class=“ServicioMates” %>
Using System.Web.Services;
Public class ServicioMates : WebService {
[WebMethod]
public int suma( int num1, int num2 ) {
return num1 + num2;
}
[WebMethod]
public int resta( int num1, int num2 ) {
return num1 - num2;
}
}
19. DESARROLLO DE UN
SERVICIO WEB -
PUBLICACIÓN
Visual Studio .NET hace todo lo necesario
Genera un proxy del servicio Web
Permitirá a los desarrolladores programar contra el servicio Web
Publica el contrato WSDL
Genera el fichero .vsdisco
Enlace al recurso que proporcionará el WSDL
Si tenemos instalado .NET Framework
Colocamos el fichero .asmx en el root de nuestro servidor Web.
Cuando alguien haga una petición a nuestro servicio Web, .NET
generará todo lo necesario y dará una respuesta.
19
21. INVOCACIÓN DE UN SERVICIO
WEB
Desde cualquier browser
http://servidor/ServicioMates.asmx
Resultado:
21
22. INVOCACIÓN DE UN SERVICIO
WEB
Desde cualquier browser
http://servidor/ServicioMates.asmx?op=suma
22
23. INVOCACIÓN DE UN SERVICIO
WEB
Desde cualquier browser
http://servidor/ServicioMates.asmx/suma?num1=4&num2=2
Equivale a un HTTP-GET
Devuelve un mensaje en XML con el resultado:
23
<?xml version="1.0" encoding="utf-8" ?>
<int xmlns="http://servidor/">6</int>
GET /ServicioMates.asmx/suma?num1=string&num2=string HTTP/1.1
Host: servidor
24. INVOCACIÓN DE UN SERVICIO
WEB
Desde cualquier browser
http://servidor/ServicioMates.asmx?WSDL
Devuelve un mensaje en XML con el resultado:
24
<?xml version="1.0" encoding="utf-8" ?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
...
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified"
targetNamespace="http://servidor/">
<s:element name="suma">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="num1" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="num2" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
...
25. INVOCACIÓN DE UN SERVICIO
WEB
Desde una aplicación
Crear el proxy de acceso al servicio Web remoto
Añadir una referencia Web al sitio donde se encuentra el servicio o
Crear el proxy manualmente
wsdl http://servidor/ServicioMates.asmx?WSDL
Acceder de forma normal
ClienteMates.cs
25
Using System;
class App {
public static void Main() {
ServicioMates sm = new ServicioMates();
int suma = sm.suma( 3, 5 );
Console.WriteLine( suma );
}
}
26. INVOCACIÓN DE UN SERVICIO
WEB
26
...
[WebMethod]
public int suma(int num1,int num2){
return num1 + num2;
}
...
...
int suma = sm.suma( 3, 5 );
...
Cliente
Servicio Web
Internet
XML
27. INVOCACIÓN DE UN SERVICIO
WEB
Desde una página web ASP.NET
ClienteMates.aspx
ASP.NET UI
Operandos: Text Box
Metodos: Botones
Resultado: Label
Manipulador de eventos
OnServerClick
27
28. LA WEB
Al conectarnos a internet estamos navegando en 3 capas.
Al abrir un formulario web de inscripción (capa de presentación)
Después de enviar la información esta es verificada (capa de
negocios).
Finalmente la información es grabada en una base de datos (capa de
datos).
33. CAPA DE NEGOCIOS
MICROSOFT
Lenguajes de Componentes (c#, vb, c++, j#)
Componentes Locales
Componentes Web (Servicios web)
Comunicación entre componentes utilizando el SOAP y
XML
34. WEB SERVICES
Permiten publicar componentes de negocios(Web
Services) en un servidor web.
Estas componentes pueden ser llamadas desde otros
servidores o clientes utilizando SOAP.
Simple Object Access Protocol (SOAP) es un protocolo
para el intercambio de la información basado en HTTP y
XML
37. EXTENSIBLE MARKUP
LANGUAGE (XML)
Meta Lenguaje de Marcación es un lenguaje estandar
similar al html, que permite la comunicación entre los
sistemas de información.
Tiene una estructura de árbol.
Se recomienda usarlo en la comunicación entre las
componentes de Presentación con las de Negocios
38. EJEMPLO
DB
COMPONENTES
DATOS
C# o VB .NET
XML
INFORMACIÓN
COMPONENTES
NEGOCIO
C# o VB .NET WEB
SERVICE
XML
INFORMACIÓN
PROCESADA
PRESENTACION
ASPX
XSL
HOJA DE ESTILO
HTML
FORMULARIO
JAVASCRIPT
40. BIBLIOGRAFIA
Microsoft XML Web Services
http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp
?contentid=28000442
XML
http://www.w3.org/TR/REC-xml
Especificación de SOAP
http://www.w3.org/TR/SOAP
Especificación de WSDL
http://www.w3.org/TR/wsdl
UDDI
www.uddi.org
40
41. BIBLIOGRAFIA - SERVICIOS
WEB GRATUITOS
XMethods
Servicios Web implementados desde diversas plataformas
http://www.XMethods.com
TerraServer
Conjunto de servicios, como por ejemplo un visor de mapas
topográficos de Estados Unidos
http://TerraServer.Microsoft.net
41
Editor's Notes
ADO .NET
SQL SERVER 20000
Procedimientos almacenados
Componentes (c#, vb, c++, j#)
XML
Reglas del negocios
Validaciones
Cálculos
Flujos y procesos
ASP .NET
ASP
XML, XSL
HTML
JAVASCRIPT , VBSCRIPT
Vb Form
Word, Excel