cheap nfl jerseys china cheap nfl jerseys free shipping wholesale nfl jerseys china wholesale jerseys from china cheap nfl jerseys free shipping cheap nfl jerseys for sale cheap jerseys free shipping wholesale nfl jerseys from china cheap nfl jerseys sale cheap nike nfl jerseys china wholesale jerseys free shipping cheap nfl jerseys wholesale wholesale nfl jerseys online cheap nfl jerseys wholesale china jerseys wholesale cheap coach handbags outlet authentic designer handbags cheap coach handbags outlet cheap coach purses outlet discount coach bags coach bags sale coach purse outlet cheap real coach purses coach handbags sale online coach purse outlet michael kors outlet online store cheap michael kors bags cheap michael kors purse michael kors factory outlet online cheap michael kors handbags cheap michael kors purses michael kors bags outlet online cheap michael kors purse michael kors handbags discount
XML
XML
eXtensible Markup Language
eXtensible Markup Language
sistema per lo scambio di dati tra sistemi informativi
Web Services in prova

XML Web Services

Sono una tecnologia per l'interoperabilità tra applicazioni via HTTP, indipendente dal linguaggio e dalla piattaforma. I WS portano informazioni alle applicazioni degli utenti, così come i browser la portano agli utenti. La promessa è quindi quella di rendere facile l'accesso delle applicazioni ai servizi offerti dai server.

Tecnicamente forniscono alle applicazioni un'interfaccia RPC (Remote Procedure Call) verso i metodi delle classi disponibili sul server. Un WS espone un'API (Application Programming Interface) richiamabile tramite HTTP. L'API è descritta da WSDL e i dati sono trasmessi via SOAP (Simple Object Access Protocol), quindi qualunque client che supporti SOAP può richiedere dati (tutti i broswer lo fanno).

Occorre ricordare che il web è 'stateless', quindi non supporta proprietà, ma solo parametri. Si usa perciò l'oggetto Session.

Le specifiche generali sono mantenute dal W3C: http://www.w3.org/2002/ws.

Web Services e .NET

http://www.west-wind.com/presentations/dotnetwebservices/DotNetWebServices.asp

Un Web Services .NET consiste in una pagina .asmx che: o contiene una classe che fornisce la funzionalità o fa riferimento a una classe esterna.
Le classi sono classi standard .NET, con la sola differenza che i metodi che si vuole esporre sono prefissati con [WebMethod]. .NET provvede a tutto e fornisce anche un'utile pagina informativa.

I WS .NET possono essere richiamati in 3 modi: HTTP GET, HTTP POST e SOAP. Quest'ultimo è più complesso (occorre costruire e poi esaminare il documento SOAP, ma è più potente (trasporta oggetti complessi) e proprio.

Le applicazioni client semplicemente contengono un riferimento web, aggiungono il suo namespace e chiamano i suoi metodi. In realtà i metodi chiamano un oggetto proxy, che a sua volta invoca il WS remoto; la classe di base del proxy contiene tutto quanto necessario per realizzare le chiamate SOAP e HTTP. Sul server è: il .NET framework che accoglie le richieste SOAP, instanzia la classe, avvia il costruttore e invoca il metodo, eseguendo anche le opportune conversioni di tipo.

In .NET ci sono due modi di creare WS: uno è creare servizi completi che usano una singola pagina .asmx che contiene sia l'header che il codice della classe; l'altro è di creare il solo header e fare riferimento a una classe esterna contenuta in un altro file, detto 'code behind' (VisualStudio usa quest'aultimo modo).

un esempio ASP.NET in VB

<%@ WebService Language="VB" Class="TempConvert" %>
        dichiara il Web Service, il linguaggio usato e il nome della classe
Imports System
Imports System.Web.Services
        importa il namespace
Public Class TempConvert :Inherits WebService
        dichiara la classe e il suo tipo
        la classe ha due funzioni:
<WebMethod()> Public Function FahrenheitToCelsius (ByVal Fahrenheit As Int16) As Int16
        normale programmazione VB, con la sola novità della definizione WebMethod()
        Dim celsius As Int16
        celsius = ((((Fahrenheit) - 32) / 9) * 5)
        Return celsius
End Function
<WebMethod()> Public Function CelsiusToFahrenheit (ByVal Celsius As Int16) As Int16
        Dim fahrenheit As Int16
        fahrenheit = ((((Celsius) * 9) / 5) + 32)
        Return fahrenheit
End Function
End Class

E' sufficiente salvare questo file su un server .NET con estensione .asmx: ASP.NET crea automaticamente il WSDL e la richesta SOAP.

Ecco gli esempi funzionanti su W3School e su questo server

Non solo il programma funziona nella lingua giusta, ma spiega il funzionamento e mostra WSDL. e, se esegui il programma, mostra anche il SOAP.

Le due funzioni possono essere richiamate direttamente specificando l'operazione
http://www.w3schools.com/webservices/tempconvert.asmx?op=FahrenheitToCelsius
http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit

o via post con una form come se ogni operazione fosse una pagina a sè stante:
Fahrenheit to Celsius:
Celsius to Fahrenheit:
<form target="_blank" 
action='http://www.w3schools.com/webservices/tempconvert.asmx/FahrenheitToCelsius' 
method="POST"><table><tr><td>Fahrenheit to Celsius:
	<input class="frmInput" type="text" size="30" name="Fahrenheit">
	<input type="submit" value="Submit" class="button">
</td></tr></table></form>

un esempio ASP.NET in c#

<%@ WebService Language="c#" Class="WS1" %>
        dichiara il Web Service, il linguaggio usato e il nome della classe
using System;
using System.Web;
using System.Web.Services;
public class WS1 {
        dichiara la classe e il suo tipo - la classe ha tre funzioni:
        normale programmazione, con la sola novità della definizione [WebMethod]
  [WebMethod]
  public string CiaoMondo(string lcName) {
      return "Hello World, " + lcName;
  }
  [WebMethod]
  public decimal Addizione(decimal lnNumber1, decimal lnNumber2) {
      return lnNumber1 + lnNumber2;
  }
  [WebMethod]
  public DateTime OraDelServer() {
      return DateTime.Now;
  }
}

prova WS1.asmx su questo server