La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Costruire Web Service oggi e domani Giuseppe Guerrasio Architect, Microsoft.

Presentazioni simili


Presentazione sul tema: "Costruire Web Service oggi e domani Giuseppe Guerrasio Architect, Microsoft."— Transcript della presentazione:

1

2 Costruire Web Service oggi e domani Giuseppe Guerrasio Architect, Microsoft

3 Ad un punto di svolta Singola Applicazione Singola Piattaforma Piattaforme Integrate Sistemi Distribuiti

4 Funzionalità logiche ricorrenti Un modello in evoluzione

5 La Strategia: Connected System Fornire una piattaforma integrata di prodotti e tecnologie completa ed interoperabile … che include tool (dev e mgmt), framework, infrastruttura e piattaforma …che copra lintera gamma bisogni (client, device, e server, workflow,dati, messagging, etc) …che sia interoperabile by design con le altre piattaforme … che abbracci tre principi architetturali chiave Service Orientation Claims-Based Security Model Driven Software

6 Microsoft Application Platform Connected Systems

7 WS-* Architecture Foundation Applicazioni e Infrastruttura Transport Connected Applications Management Business Process … SecuritySecurityTrust Secure Conversation Messaging (SOAP, Addressing, MTOM, Eventing) XML (XML, XSD, XPath) Metadata (WSDL, Policy, Discovery, MEX) HTTPTCPSMTP … Reliability Reliable Messaging Transactions Atomic Transaction Coordination Business Activity

8 ASP.NET Web Services, WSE e WCF(Indigo) ASP.NET Web Services Web Services Enhancements Advanced WS-* Implementation Foundation for Web services and service- oriented applications Today Unified distributed applications framework Windows Communication Foundation (Indigo) Tomorrow

9 Activation and Hosting WASAvalon*.EXENT ServiceCOM+ Messaging HTTP Channel TCP Channel UDP Channel X-Proc Channel Queue Channel SOAP Security Channel SOAP Reliability Channel Text/XML Encoder Binary Encoder Service Runtime Contracts Throttling Behavior Transaction Behavior Activation Behavior Concurrency Behavior Cmd/Control Facilities Error Behavior Metadata Behavior Instance Behavior Inspection Facilities Data Contract Message Contract Service Contract Policy and Binding Indigo Il Bus :Interoperabilità Network App Altri Stack Application App BizTalk Adapter App WSE Assurances Messaging SOAP WS-Security MTOMWS-Addressing Metadata WS-Policy WSDL UDDI WS-Metadata Exchange XML Schema WS-Reliable Messaging WS-Coordination WS-Atomic Transaction WS-Business Activity WS-Trust WS-Secure Conversation Infrastructure and Profiles WS-ManagementWS-Federation Devices Profile Foundation SOAP / HTTPMIME XML Infoset XML 1.0 XML Namespaces WS-* Protocols

10 Temi Supporto WS.NET v2.0 Interoperabilità Produttività Estendibilità

11 Bisogno di Oggi: Interoperabilità Miglioramenti alle caratteristiche di Interoperabilità con il supporto del Basic Profile 1.1 WS compatibili di default con specifico attributo attivato Emit Conformance Claim supportato lato client solo > 1.1 sp1 Supporto per SOAP 1.2 Server side controllato via.config Client side Wsdl.exe supporta entrambi 1.1 per default ( wsdl.exe set /protocol a SOAP12), SoapProtocolVersion come proprietà nel proxy Miglioramenti al supporto per la generazione del servizio a partire dal contratto (contract-first) wsdl.exe /serverInterface generazione interfaccia da implementare Verifica a run time della contract integrity Supporto per lutilizzo dei Generics Adesempio:. public List ReturnIntegerList() Nullable Value Types Utilizzo di Nullable

12 Client più semplici da sviluppare Nuovo modello asincrono event-based Utilizza XxxAsync e XxxCompleted event Evento richiamato sul thread chiamante Sotituisce BeginXxx, EndXxx mantenuti per compatibilità Supporto per il databinding nel proxy In V2.0 per default nel proxy vengono generate public property invece di field Wsdl.exe con /fields switch per comportamento V1.1 Client-side type sharing Individua gli schemi equivalenti e genera un unico CLR type Bisogno di Oggi: Produttività

13 Custom serialization disponibile IXMLSerializable esposto nativamente Possibilità di gestire con proprio codice la serializzazione.NET Framework 2.0 introduce [XmlSchemaProvider] Usato con IXmlSerializable per indicare i metodi statici per generare lo schema Deprecato IXmlSerializable.GetSchema Custom proxy code generation con SchemaImporterExtension Classe astratta che abilita la generazione di custom code quando si importano schemi nel proxy Bisogno di oggi:Estendibilità

14 Supporto in System.Net per la determinazione dello stato di rete (online/offline) detect automatico della modifica del Web Proxy Supporto automatico della compressione nel Proxy Disponibile anche client side la compressione oltre che nativamente in II6, service.EnableDecompression = true; Costruzione a Design Time dei Serializzatori per i Proxy Generazione attraverso tool da riga di comando sgen.exe Integrazione in VIsual Studio Semplificazione nellutilizzo delle Default Credential service.UseDefaultCredentials = true Altre Estensioni alla v2.0

15 WSE è Security

16 WSE 3.0 Semplificare lo sviluppo di Web Service Sicuri Semlpificare lo sviluppo di soluzioni Service Oriented utilizzando WS-* protocols e.NET Framework v2.0 WSE v3.0 con.NET Framework v2.0 strada principale verso WFC ( Indigo) Indigo

17 WSE 3.0 Applicazione di WS-Security con scenari attraverso le Policy Descrivono i requisiti per i messaggi in ingresso ed in uscita attraverso Policy Assertion Superano le limitazioni delle Policy in WSE 2.0 Request e Response separati Complessità, necessita di pensare a basso livello alle singole funzionalità ed aggregarle Supporto di tool per Visual Studio 2005 Estensione dell ASMX programming model Trasporti alternativi es. TCP Hosting environment alternativi es. Console apps Messaging APIs ancora supportate ma deprecate SoapClient, SoapService Message Transmission Optimization Mechanism (MTOM) MTOM sostituisce DIME & WS-Attachments

18 Turnkey Security Scenario Basati su industry best practice Ogni scenario rappresenta una assertion UsernameForCertificate AnonymousForCertificate UsernameOverTransport Kerberos MutualCertificate

19 WSE 3.0 Session Management Stateful SCTs WSE 2.0 richiede che il servizio mantenga lo stato del SCT In WSE 3.0 lo stato può essere mantenuto con lo stesso SCT Permette al SCT di ristabilire una sessione SCT Cancellation In WSE 2.0 SCT scade a timeout In WSE 3.0 cè la possibilità di cancellare una session

20 Unifica le attuali tecnologie MS distribuite in un modello unico Appropriato per luso on-machine, cross machine, and cross Internet Modello di programmazione unificato per costruire rapidamenteservice-oriented application per Windows Interoperabile con applicazioni di altre piattaforme con ampio supporto per WS*-Architecture Integrabile con gli altri windows distributed stacks Unificazione Integrazione Service Orientation Windows Communication Foundation (Indigo) Implementa le best practices per costruire applicazioni distribuite basate sui principi della service orientation

21 Application Service Model Messaging HostingEnvironments ASP.NETASP.NETAvalonAvalonWinFormWinForm NT Service COM+COM+ TCPChannelTCPChannel HTTPChannelHTTPChannel QueueChannelQueueChannel Secure Channel Secure Channel ReliableChannelReliableChannel Instance Behavior Throttling Behavior Type Integ. Behavior Behavior Transaction Behavior Concurrency Behavior Error Behavior Metadata Behavior BinaryEncoderBinaryEncoder Text/XMLEncoderText/XMLEncoder …… … … …… WCF Architettura WASWAS

22 Client e Service Service Message Client

23 Endpoint Service Client Endpoint Endpoint Endpoint Endpoint Message

24 AddressBindingContract Address, Binding, Contract ServiceClient Endpoint Endpoint Endpoint Endpoint Message Dove ?Come ?Cosa ? AB C ABCABCABC

25 Service Orientation ServiceClient Endpoint Endpoint Endpoint Endpoint Message AB C ABCABCABC Boundar y Autonom y Mechanism Contract

26 Inside Binding Transport IPCMSMQ Custom TCPHTTP Protocol Encoders Binary Text Custom.NETTX Custom SecurityRM Binding HTTP Text TXSecurityRM

27 BasicHttpBinding WsHttpBinding WsDualHttpBinding Binding NetTcpBinding NetNamedPipeBinding NetMsmqBinding NetPeerTcpBinding Interoperabili WCF / WCF

28 Windows Activation Service (WAS) HTTP.SYS TCP Transport Listener Named Pipes Transport Listener HTTP Listener Adapter (IIS7) NP Listener Adapter TCP Listener Adapter Windows Activation Service Nuovo modello di attivazione unificato condiviso da ASP.NET, IIS7, e WCF Supporto di protocolli multipli

29 WAS/IIS7 Architecture W3SVC Application Pool Application Application Pool Application Application Pool Application Application Pool Application Application Pool Application Application Pool Application Windows Activation Service Config Mgr Process Mgr HTTP.SYS HTTP Mgr HTTP.SYS Indigo Net.TCP Listener Indigo Net.Pipe Listener IIS 7.0 Benefici Architettura Process Activation Generalizzato Supporto Estendibile multi-protocol Health Management Configurabile Side by Side deployment Unified Management Model Completamente Componentizzato Web.config Applicationhost.config

30 Guida verso WCF ASMX Quando siamo in dubbio,... usiamo ASMX WSE ASMX + WS-* in particolare Sicurezza Enterprise Services Per servizi aggiuntivi (Tx Distribuite) essenzialmente x-machine communication dentro i confini del servizio System.Messaging Per il messaging Remoting x-domain & custom transport

31 ASMX Guida Utilizzare Conformance claim Service interface Differenti indirizzi per ciascun binding Open content model per i dati Evitare rpc/encoded ASP.Net state o dipendenze dal trasporto (esempio: HttpContext) SoapExtension

32 WSE Guida Utilizzare I suggerimenti della ASMX guida HTTP transport Turnkey policy (WSE3) MTOM (WSE3) Evitare Qualunque tipo di estensioni da SoapPort Custom transport IXmlElement per i data type DIME

33 Da WSE a Indigo Codice Client public class myHelloWorld { static void Main (string[ ] args) { HelloWorldWSE helloWorld = new HelloWorldWSE(); string response = helloWorld.Hello("hello"); } HelloWorld helloWorld = new HelloWorld(); Note: Modifiche configurative richieste

34 Da WSE a Indigo Codice Server using Microsoft.Web.Services3; [WebService] class HelloWorld { [WebMethod] public string Hello (string text) { MessageSignature signature = (MessageSignature) RequestSoapContext.Current.Security.Elements[0]; if (!signature.SigningToken.Principal.IsInRole("BUILTIN\Administrators")) throw new AuthorizationException("Access denied"); return String.Format("Hello, {0}", text); } Note: Configuration entry changes are required using System.ServiceModel; [PrincipalPermission(SecurityAction.Demand, null, "BUILTIN\Administrators")] [ServiceContract] [OperationContract]

35 Riepilogo La piattaforma applicativa Microsoft è pensata per materializzare Connected System I Web Service sono una componente fondamentale e la piattaforma Roadmap chiara e definita verso Windows Communication Foundation (WCF) Supporto migliorato in.NET v2.0 per Interoperabilità, Produttività, Estendibilità WSE 3.0 porta WS-Security in.NET 2.0 Percorso di migrazione\interoperabilità per WCF garantito

36 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

37 Policy in WSE 3.0 Descrivono i requisiti per i messaggi in ingresso ed in uscita attraverso Policy Assertion Superano le limitazioni delle Policy in WSE 2.0 Request e Response separati Complessità, necessita di pensare a basso livello alle singole funzionalità ed aggregarle Policy files semplificati Semplificazione con i turnkey security assertion Nuovo object model per le policy serviceProxy.SetPolicy("ClientPolicy"); Utilizzo di attributi sia lato Server che Client [Policy("UserNameOverX509")]

38 Policy Pipeline Architecture Le Policy decrivono la input pipeline Input Soap Message Security Tracing Custom Security Tracing Custom EsecuzioneCodiceApplicativo Output Le Policy assertion trasformano il messaggio … e si esegue la output Pipeline

39 Turnkey Security Scenario UsernameForCertificate Application Server Internet Intranet Auth con username/ Password Confidenzialità, e firma richiesta con client key protetta con il certificato server Confidenzialità, e firma risposta con chiave fornita dal client Username/Password per Autenticazione

40 Client con Policy Attribute [Policy("UserNameOverX509")] public class StockQuoteClient : SoapClient { public StockQuoteClient( EndpointReference endpoint ) : base( endpoint ){} [SoapMethod("http://stockservice.contoso.com/wse/samples/ 2003/06/StockQuoteRequest")] public StockQuotes GetStockQuotes( StockQuoteRequest message ) { return (StockQuotes)base.SendRequestResponse("GetStockQuote s", message ).GetBodyObject(typeof(StockQuotes)); } }

41 Example Policy Assertion public class UsernameOverX509Assertion : SecurityPolicyAssertion { // constructors public UsernameOverX509Assertion() { } // properties public TokenProvider UsernameTokenProvider { get { } set { } } public TokenProvider X509TokenProvider { get { } set { } } // methods public override SoapFilter CreateClientInputFilter(FilterCreationContext context) { } public override SoapFilter CreateClientOutputFilter(FilterCreationContext context) { } public override SoapFilter CreateServiceInputFilter(FilterCreationContext context) { } public override SoapFilter CreateServiceOutputFilter(FilterCreationContext context) { } public override IEnumerable > GetExtensions() { } public override XmlSchema GetSchema() { } public override void ReadXml(XmlReader reader) { } public override void WriteXml(XmlWriter writer) { } }

42 Client con Policy Assertion via Codice Utilizzo di una Turnkey Security Assertion StockQuoteClient proxy; Policy myPolicy = new Policy(); myPolicy.Assertions.Add(new UsernameOverX509Assertion()); proxy.SetPolicy(myPolicy); Utilizzo di una Custom Policy Assertion e.g. XML Schema Validation StockQuoteClient proxy; Policy myPolicy = new Policy(); myPolicy.Assertions.Add(new MyCustomAssertion()); proxy.SetPolicy(myPolicy);

43 Asymmetric key (X509 Certificate) lento per linvio di messaggi multipli WS-SecureConversation definisce il Security Context Token (SCT) Ottimizzazione del messaging Veloce nel caso di messaggi multipli (client makes > 2) Raddoppio del throghput Sessioni con Secure Conversation Richiesta per SCT SCT Issued al client Messaggi Multipli Firmati e cifrati con SCT ClientServer

44 Ristabilire la Sessione Richiesta per SCT SCT Issued al client Messaggi Multipli Firmati e cifrati con SCT Client Server Richiesta Client Session Ristabilita SCTState SCTState

45 Integrazione con VS2005 e.NET v2.0 Supporto di tool per Visual Studio 2005 Estensione dell ASMX programming model Trasporti alternativi es. TCP Hosting environment alternativi es. Console apps Messaging APIs ancora supportate ma deprecate SoapClient, SoapService

46 Estensione del ASMX programming Model Esempio: ASMX Web Service via TCP e Custom Host public class StockService System.Web.Services.WebService {[WebMethod] public StockQuote[] StockQuoteRequest([string[] symbols) { } } static void Main(string[] args) { Uri to = new Uri( "soap.tcp://StockService/StockQuote"); EndpointReference EPR = new EndpointReference(to); SoapReceivers.Add (EPR, typeof (StockService)); }

47 Supporto per MTOM Message Transmission Optimization Mechanism (MTOM) MTOM sostituisce DIME & WS-Attachments Benefici Componibile con WS-Security per proteggere anche i dati come il SOAP message Modello di programmazione semplificato e attivazione via config Riduzione sul cavo della dimensione del messaggio Security Semplifica Riduzione [WebMethod] public byte[ ] GetFileAsBytes (string fileName) { return CreateFileAsBytesResponse (fileName); }

48 WSE 3.0: La strada verso WCF(Indigo) Grantita linteroperabilità on the wire level con WCF Supporto per gli scenari di sicurezza interoperabili WSE turnkey security assertion allineati con WCF security binding WSE 3.0 si esegue side-by- side con Indigo Guide per lupgrade fornite per la migrazione da WSE 3.0 a WCF


Scaricare ppt "Costruire Web Service oggi e domani Giuseppe Guerrasio Architect, Microsoft."

Presentazioni simili


Annunci Google