Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Web Services
Web Services
NET con C#
Servicio de Informtica
Servicios web
ndice de contenido
Un poco de culturilla........................................................................................................................1
Crear un servicio Web.....................................................................................................................1
Usar servicios web..........................................................................................................................6
Un poco de culturilla
La alta conectividad entre ordenadores ha sido una meta desde que comenz la informtica
personal. Con el auge de las redes internas dentro de las empresas llega el deseo de unir
mquinas de forma programtica. Es decir, un programa en una mquina debera poder llamar a
mtodos del programa en otra mquina sin la necesidad de intervencin humana, para lo que se
utilizaron diferentes tecnologas como el Modelo de Objeto de Componente Distribuido (DCOM).
El siguiente paso al conectar ordenadores es hacerlo a travs de Internet. Mediante ordenadores
conectados a travs de HTTP y el formato XML se crearon los servicios Web XML.
Los pasos fundamentales del Remoting son:
1. El llamador prensa la pila de llamadas del mtodo local en una cadena que se enva por
una conexin. Esto se conoce como serializacin.
2. El llamador enva la pila de llamadas serializada a travs de la conexin
3. El extremo recibe la pila de llamadas serializada y la convierte en una pila de llamadas
utilizable en el servidor. Se llama deserializacin.
4. El extremo procesa la llamada al mtodo
5. El extremo transmite los resultados de vuelta al llamador.
El formato que los llamadores y servicios acuerdan se llam originalmente Simple Object Access
Protocol. Hoy slo se utilizan sus siglas SOAP. El protocolo SOAP es una formalizacin XML
para comunicacin basada en mensajes.
ASP.NET manipula los detalles de realizar un servicio Web a travs de la clase
System.Web.Services.WebService.
Los servicios Web ASP.NET viven en un tipo de archivo nombrado con la extensin .asmx.
Tema 8 / Pgina 1
Ilustracin 2:
En el ejemplo se ha cambiado Service por ServCitas.
El fichero ServCitas.asmx queda de la siguiente manera:
<%@ WebService Language="C#" CodeBehind="~/App_Code/ServCitas.cs"
Class="ServCitas" %>
Tema 8 / Pgina 2
System;
System.Linq;
System.Web;
System.Web.Services;
System.Web.Services.Protocols;
System.Xml.Linq;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// Para permitir que se llame a este servicio web desde un script, usando
// ASP.NET AJAX, quite la marca de comentario de la lnea siguiente.
// [System.Web.Script.Services.ScriptService]
public class ServCitas : System.Web.Services.WebService
{
public ServCitas () {
//Eliminar la marca de comentario de la lnea siguiente si utiliza los
//componentes diseados
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
}
Ilustracin 3:
Si navegamos ahora al archivo ServCitas.asmx para ver lo que nos muestra un HTTP GET
predeterminado obtendramos lo siguiente (Ilustracin 4) .
ASP.NET nos muestra los nombres de los metodos disponibles cuando se hace un GET hacia el
archivo ASMX. Podemos ver el mtodo HelloWorld (creado por Visual Studio). Si queremos
probar a ejecutar el mtodo slo tenemos que pinchar en HelloWorld. (Ilustracin 5)
Si en la primera pgina pinchamos en el vnculo descripcin de servicios veremos el WSDL,
que es un chorizo de XML para fliparlo, pero no est hecho para que lo leamos nosotros, sino un
cliente proxy.
Tema 8 / Pgina 3
Ahora vamos a borrar el mtodo HelloWorld y a crear uno nuevo que se llame dameCita que lo
que har ser devolver una cita aleatoriamente de una lista de citas.
Tema 8 / Pgina 4
Tema 8 / Pgina 5
El funcionamiento es igual que el anterior pero si lo ejecutamos nos pedir el valor del parmetro.
(Ilustracin 6)
Tema 8 / Pgina 6
Tema 8 / Pgina 7
Tema 8 / Pgina 8
System;
System.Configuration;
System.Data;
System.Linq;
System.Web;
System.Web.Security;
System.Web.UI;
System.Web.UI.HtmlControls;
System.Web.UI.WebControls;
System.Web.UI.WebControls.WebParts;
System.Xml.Linq;
ServicioCitas;
Tema 8 / Pgina 9
C'est finit !!
Tema 8 / Pgina 10