1 Building Connected Systems: Today and Tomorrow Giuseppe Guerrasio Senior.NET Developer Developer & Platform Division Microsoft
2 Agenda Service Orientation e Microsoft.NET –Connected System –Smart Client Web Services Architecture e Technology Roadmap –Fundamental –Web Service Enhancements –.NET 2.0 –Indigo
3.NET : Connected System.NET è una tecnologia software che consente linterconnessione di un mondo di informazioni, persone, sistemi e device Office System Visual Studio Windows Server System Pocket PC Partner Products My Services
4 PC Applications Hardware O p e r a t i n g S y s t e m Web Service e Connected System: Da Hardware Connesso a Applicazioni Connesse X M L W e b S e r v i c e s Smart Devices Servers PC Applications Hardware O p e r a t I n g S y s t e m Sistemi Operativi astraggono l hardware Web Service Astraggono Internet/Intranet
5 SOA dalla prospettiva Microsoft.NET: Connected System Approccio non limitato ai servizi in quanto tali ma omnicomprensivo –Smart process : orchestratori di processi Servizi che invocano,aggregano e coordinano altri servizi in modo sincrono od asincrono –Smart Client Application Rich User Experience, interazione con più servizi, caching intelligente, supporto offline, etc –Smart Device Smart Phone, chioschi, teller,Portable Media center, etc –Web User Interface Enterprise Portal, Internet Portal, etc –Sistemi Automatici Applicazioni senza interfaccia, sistemi di monotoraggio, etc
6 Microsoft.NET Connected System with XML Web service Windows Server System
7 Web Services Architecture Transports HTTP XML XML, XSD, XPath Advanced Messaging WS-Addressing, WS-Eventing Security WS-Security WS-Trust WS-Federation Reliability WS-Reliable Messaging Transactions WS-Transactions WS-Coordination WS-AtomicTransaction Advanced Metadata, WS-Policy, WS-Discovery, WS-Metadataexchane Basic Messaging SOAP
8 Visual Studio 2005 WS-I Complian ce SDM Web Services Technology Roadmap
9.NET Connected System Messaging Fundamental Supporto nellintera piattaforma –Windows Server System –Office System Visual Studio e.NET Framework 1.1 –Supporto per SOAP 1.1, XML Schema, XML 1.0, WSDL, UDDI –Service Development XSD Authoring Mappatura automatica Tipi Generazione Automatica WSDL Ambiente per il Web Hosting Registrazione UDDI Client Side UDDI Discovery e Binding Client Side Proxy Generation –Servizi Aggiuntivi Server Side: Transazioni,Caching, Handler Asincroni Client Side: Gestione Asincrona Automatica
10 Web Services Enhancements 2.0 (WSE) Supportato come add-on per Visual Studio e per il.NET Framework con gli ultimi avanzamenti nelle capacità dei Web service SOAP Messaging (WS-Addressing) Web Services Security –Firma digitale e cifratura del messaggio –Supporto per differenti tipi di Token di autenticazione X509, Custom Binary, Username/Password, Kerberos, and XML Security Token Support –Supporto per WS-Trust e WS-SecureConversation –Roles based authorization con integrazione nativa con la Windows security –Supporto per WS-SecurityPolicy Message-based programming model –indipendenza dall Hosting environment –Supporto per altri meccanismi di trasporto (HTTP, TCP)
11 Rich User Experience DeveloperProductivity Responsive SmallFootprint Easy Change Management Ease of Deployment Quale Tipologia di Client ?
12 Smart Client Architecture Web Service ProxyServiceAgent Main Form Web Server Client
13 Smart Client Technology.NET Framework (Full & Compact) Windows Application –Windows Forms Office Smart Client –Office XML - InfoPath, WordML, ExcelML –SmartTags & SmartDocuments –Visual Studio Tools For Office - Word ed Excel –Information Bridge Framework - Meta-Data Driven Solution Hybrid –Embedded Browser, Browser Host
14 Elementi Chiave nello Smart client Gestione della Sicurezza –Caricamento ed Isolamento del codice Application Domain –Impatto della Code Access Security - Evidence, Permission, Policy Gestione del deployment –Push Technology AD SMS –Pull Technology No-Touch deployment Application Updater Block Custom –Sviluppi Futuri : ClickOnce
15 metabase ftp, smtp, nntp ISAPI filters In-procapps.Net App Domain.NET application domain Isolated OOP App DLLhost.exe DLLhost.exe User mode Kernel mode
16 Inetinfo.exe metabase ftp, smtp, nntp User mode Kernel mode Configuration manager Application pool manager WAS Single app W3WP.exe ISAPI ext ISAPI filters Multiple apps W3WP.exe ISAPI ext ISAPI filters Isolated OOP App W3WP.exe ISAPI Ext ISAPI Filters Isolated OOP App W3WP.exe ISAPI Ext ISAPI Filters Single app W3WP.exe ISAPI ext ISAPI filters Listener Response cache Sender Web server Administration
17 Connected System e.NET 2.0 Supporto senza precendenti per lo Smart Client –Tool RAD per lo sviluppo del client pensati per ambienti debolmente connessi –Nuovo modello per la gestione dei dati con ADO.NET 2.0 –Semplificazione del deployment :ClickOnce Deployment –Nuovo modello per lo sviluppo di Smart Client integrati con Office Nuovo meccanismo per la gestione delle transazioni: System.Transaction Supporto completo per le nuove funzionalità di SQL Server 2005 –Supporto XML nativo –Integrazione con il CLR –Supporto per i Web Service Nativo –SQL Server Broker Service
18 Connected System e.NET 2.0 Miglioramenti ed Aggiunte al supporto per i Web Service –Supporto per SOAP 1.2 Server side controllato via.config Client side Wsdl.exe supporta entrambi, SoapProtocolVersion come proprietà nel proxy –Supporto automatico per il Basic Profile WS-I –Event-based async programming model Utilizza XxxAsync per la chiamata e XxxCompleted event Evento richiamato sul thread chiamante Sotituisce BeginXxx, EndXxx mantenuti per compatibilità –Nel Proxy generate proprietà invece di fields Possibile il data binding!
19 Connected System e.NET 2.0 Miglioramenti ed Aggiunte al supporto per i Web Service –Type sharing tra i proxies Individua gli schemi equivalenti e genera un unico CLR type –IXMLSerializer esposto nativamente Possibilità di customizzare con proprio codice la serializzazione SchemaImporterExtension –Classe astratta che abilita la generazione di custom code quando si importano schemi nel proxy Supporto automatico della compressione nel Proxy –Disponibile anche client side la compressione oltre che nativamente in II6
20 Enterprise Design Tool Tool a supporto della Service Oriented Architecture –Rende semplice impostare il progetto, la security, la transazionalità i WS-Standard, etc Tool a supporto per lOperation –Disegno è specifiche della logical infrastructure –Verifica dei settings delle applicazioni rispetto alla logica dellinfrastruttura Inseriti nella Dynamic System Initiative
21 Merc.StageShuttleJob Cache HTTP SQL Feed Store Feed Store DSS FTP Dynamic System Initiative (DSI) System Definition Model Creare un blueprint live del system ResourcesRequired OperationalPolicies OperationsCapabilities Definire un sistema esistente o nuovo Gestire il sistema in base al SDM Alloca e configura automaticamente risorse e configurazioni STORAGESERVERSNETWORKING SDM Document Design per le Operation
22 Cosè Indigo COM Explicit Contracts Ubiquity Indigo COM+ Declarative Behavior Rich Context MSMQ Durable Messaging Transactional Messaging.NET Remoting Deep CLR Integration Architettura Estendibile ASMX Contratti Espliciti XML/Data Orientation
23 Messaging Service Model Indigo Architecture Hosting Environments Application MessagingServices
24 Indigo Architecture Dettaglio Messaging Services Application Queuing Routing Eventing Discovery Service Model Instance Manager Context Manager Type Integration Data Contract Data Contract Declarative Behaviors Transacted Methods Messaging Transport Channels (IPC, HTTP, TCP…) Channels (Datagram, Reliable, Peer, …) Policy Engine Policy Engine Message Encoder Message Encoder Channel Security Channel Security Hosting Environments ASP.NET Avalon.exe NT Service COM+
25 Channel Model Il Canale è il nuovo Socket –Astrae il core I/O in Indigo –SOAP Message-Oriented –Supporta Datagram e Session –Fortemente Estendibile Svolge, solo una parte della storia –Contratti / Ad alto livello Metadati –Servizi utilizzano linfrastruttura di messaging
26 La Base per i Canali IChannel IOutputChannel –void Send(Message message); IInputChannel –Message Receive(); IDuplexChannel : IInputChannel, IOutputChannel IRequestChannel –Message Request(Message message); IReplyChannel –IRequestContext ReceiveRequest(); I*SessionChannel
27 Listener e Factory IChannelFactory –Creazione Attiva di canali per un Servizio IChannel CreateChannel (Uri to); –Stackable IListenerFactory –Legata ad un indirizzo di rete –Converte Network Stream in Messaggi –Content-Based Message Demux per il Listeners IListener –Creazione di un canale dal Client IChannel AcceptChannel(); –~ Ricorda qualcosa ?
28 Connecting e Accepting IChannelFactory IOutputChannel IListener IInputChannel … ……IListenerFactory 1.Service: CreateListener (filter, …) 2.Client: CreateChannel 3.Client: IOutputChannel.Send(message) 4.Service: IListener.AcceptChannel() 5.Service: IInputChannel.Receive()
29 Service Runtime A CLR type che implementa uno o più ServiceContracts Service Un meccanismo per effettuare il dispatch del messaggio al metodo Dispatcher Un meccanismo per marcare i type per permettere i comportamenti in base ai contratti Contract Un meccanismo per esporre servizi con contratto (via an IListenerFactory) Binding Un I/O device per il listening dei messaggi Listener Factory
30 Hello, World! Service [ServiceBinding(Binding = Http, Transport = Transport.Http)] [ServiceBinding(Binding = Tcp, Transport = Transport.Tcp)] [ServiceContract] public interface IConsole { [ServiceOperation] void WriteLine(string text); [ServiceOperation] void Write(string text); } public class MyConsole : IConsole { public void WriteLine(string text) { Console.WriteLine(text); } public void Write(string text) { Console.Write(text); } }
31 Hello, World! Client [ServiceContract] public interface IConsole { [ServiceOperation] void WriteLine(string text); [ServiceOperation] void Write(string text); } public static void Main(string args[]) { IConsole console = ProxyFactory.CreateProxy ( console.WriteLine(Hello, World!); }
32 IListenerFactory Indigo Channel Stack Transports Security Reliable Messaging Queues Notifications Encoder IChannelFactory Transports Security Reliable Messaging Queues Notifications Encoder
33 La Service Orientation è la base per lo sviluppo di Connected System La tecnologia.NET permette di utilizzare Connected System basati sugli standard dei Web Services Approccio completo dal client ai server NET mette a disposizione da oggi una piattaforma completa per lo sviluppo di sistemi Service Oriented Roadmap futura compatibile con lesistente ed in linea con levoluzione degli standard collegati ai Web Service Riepilogo
34 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
35 Crescita.NET Running in più del 60% delle Fortune 100 Più di 70M di sistemi con.NET Framework Strong developer ecosystem ISO standardization Forrest researh –56 % dei nuovi progetti in Nord America con.NET Gartner –Microsoft nel quadrante dei Leader per Applicazioni Enterprise –Microsoft Leader per i Web Service 0% 50% 100% 150% 200% 250% 300% 350% Q202 to Q302Q302 to Q402Q402 to Q103Q103 to Q203 Growth of ASP.NET (Netcraft)
36 Web-Services-Enabled Software The Magic Quadrant is copyrighted 2004 by Gartner, Inc. and is reused with permission. Gartners permission to print or reference its Magic Quadrant should not be deemed to be an endorsement of any company or product depicted in the quadrant. The Magic Quadrant is Gartners opinion and is an analytical representation of a marketplace at and for a specific time period. It measures vendors against Gartner-defined criteria for a marketplace. The positioning of vendors within a Magic Quadrant is based on the complex interplay of many factors. Gartner does not advise enterprises to select only those firms in the Leaders segment. In some situations, firms in the Visionary, Challenger, or Niche Player segments may be the right match for an enterprise's requirements. Well-informed vendor selection decisions should rely on more than a Magic Quadrant. Gartner research is intended to be one of many information sources including other published information and direct analyst interaction. Gartner expressly disclaims all warranties, express or implied of fitness of this research for a particular purpose.
37 Service Oriented Architecture Software vendor for mission-critical applications Mission-Critical Application Survey (Engagement: August 2004) © 2004 Gartner, Inc. and/or its affiliates.
38 Web Service Performance 8 CPU Web Service Host J2EE App Server X Windows 2000 Oracle 9i DB JBOSS RH Linux 8.0 Oracle 9i DB.NET 1.1 Win 2003 Oracle 9i DB.NET 1.1 Win 2003 SQL Server CPU - J2EE 8 CPU -.Net 1.1 Source: Doculabs Web Service Benchmark, March J2EE App Server Y Win 2000 Oracle 9i DB It is believed that the high performance results for.NET are due to the fact that Web Services were part of the core.NET framework from the start and not added features on top of an existing framework, as is the case with J2EE. -Doculabs, April 2003
39 Gli Analisti Giga –Return of the Rich Clients Organizations taking a service-oriented architectural (SOA) approach to application development should standardize on a stand-alone rich client technology since it is best suited to the dynamic consumption of Web Services.
40 Gli Analisti Giga –How to Decide Between a Browser-Based or Rich Client Recommendations If applications demand any of the following, then choose a rich-client for the user interface: Intensive data input with immediate validationIntensive data input with immediate validation Latency sensitive applicationsLatency sensitive applications Direct data manipulation (sorting, filtering, etc.)Direct data manipulation (sorting, filtering, etc.) Real-time animation/visualizationReal-time animation/visualization Disconnected operationsDisconnected operations Consumption of Web ServicesConsumption of Web Services