Upload
velia-porcu
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
1
Building Connected Systems: Today and Tomorrow
Giuseppe GuerrasioSenior .NET DeveloperDeveloper & Platform DivisionMicrosoft
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 l’interconnessione di un mondo di informazioni,
persone, sistemi e device
OfficeSystem
VisualStudio
WindowsServerSystem
PocketPC
PartnerProducts
MyServices
4
PCPCApplicationsApplicationsApplicationsApplications
HardwareHardwareHardwareHardware
O p e r a t i n g S y s t e mO 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 sX M L W e b S e r v i c e s
Smart DevicesSmart DevicesSmart DevicesSmart Devices
ServersServersServersServers
PCPC
ApplicationsApplicationsApplicationsApplications
HardwareHardwareHardwareHardware
O p e r a t I n g S y s t e mO p e r a t I n g S y s t e m
Sistemi OperativiSistemi Operativiastraggono l’ astraggono l’
hardwarehardware
Web ServiceWeb ServiceAstraggono Astraggono
Internet/IntranetInternet/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 .NETConnected System with XML Web service
Windows Server System
7
Web Services Architecture
Transports HTTPTransports HTTP
XML XML, XSD, XPath XML XML, XSD, XPath
Advanced Messaging WS-Addressing, WS-EventingAdvanced Messaging WS-Addressing, WS-Eventing
SecurityWS-Security
WS-TrustWS-Federation
SecurityWS-Security
WS-TrustWS-Federation
ReliabilityWS-ReliableMessaging
ReliabilityWS-ReliableMessaging
TransactionsWS-TransactionsWS-Coordination
WS-AtomicTransaction
TransactionsWS-TransactionsWS-Coordination
WS-AtomicTransaction
Ad
van
ced M
eta
data
, W
S-P
olic
y, W
S-D
isco
very
,W
S-M
eta
data
exch
ane
Ad
van
ced M
eta
data
, W
S-P
olic
y, W
S-D
isco
very
,W
S-M
eta
data
exch
ane
Basic Messaging SOAPBasic Messaging SOAP
8
• Visual Studio 2005
WS-I ComplianceSDM
Web Services Technology Roadmap
9
.NET Connected System Messaging Fundamental
• Supporto nell’intera 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 UserRich UserExperienceExperience
DeveloperDeveloperProductivityProductivity
ResponsiveResponsive
SmallSmallFootprintFootprint
Easy ChangeEasy ChangeManagementManagement
Ease ofEase ofDeploymentDeployment
Quale Tipologia di Client ?
12
Smart Client ArchitectureSmart Client Architecture
Web Web ServiceServiceProxyProxy
ServiceServiceAgentAgent
Web Web ServiceService
Main FormMain Form
Web ServerWeb ServerClientClient
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
metabasemetabase ftp, smtp, ftp, smtp, nntpnntp
ISAPI filtersISAPI filters
In-procIn-proc
appsapps
.Net App .Net App DomainDomain
.Net App .Net App DomainDomain
..NET application NET application domaindomain
Isolated Isolated OOP AppOOP App
DLLhost.exeDLLhost.exe
Isolated Isolated OOP AppOOP App
DLLhost.exeDLLhost.exe
User mode
Kernel mode
16
Inetinfo.exeInetinfo.exe
metabasemetabase
ftp, smtp, ftp, smtp, nntpnntp
User mode
Kernel mode
Configuration Configuration managermanager
Application Application pool managerpool manager
WASWAS
Single Single appapp
W3WP.exeW3WP.exe
ISAPI extISAPI ext
ISAPI ISAPI filtersfilters
Multiple Multiple appsapps
W3WP.exeW3WP.exe
ISAPI extISAPI ext
ISAPI ISAPI filtersfilters
Isolated Isolated OOP AppOOP App
W3WP.exeW3WP.exe
ISAPI ExtISAPI Ext
ISAPI ISAPI FiltersFilters
Isolated Isolated OOP AppOOP App
W3WP.exeW3WP.exe
ISAPI ExtISAPI Ext
ISAPI ISAPI FiltersFilters
Single Single appapp
W3WP.exeW3WP.exe
ISAPI extISAPI ext
ISAPI ISAPI filtersfilters
ListenerListenerResponse Response
cachecache SenderSender
Web serverWeb 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 l’Operation– Disegno è specifiche della logical
infrastructure– Verifica dei settings delle applicazioni rispetto
alla logica dell’infrastruttura
• Inseriti nella Dynamic System Initiative
21
Merc.Merc. StageStage ShuttleShuttleJobJob
CacheCache
HTTPHTTP
SQL Feed Feed StoreStore DSSDSS
FTPFTP
Dynamic System Initiative (DSI)System Definition ModelCreare un blueprint live del system
ResourcesResourcesRequiredRequired
OperationalOperationalPoliciesPolicies
OperationsOperationsCapabilitiesCapabilities
Definire un Definire un sistemasistema
esistente o esistente o nuovonuovo
Gestire il Gestire il sistema in sistema in
base al SDMbase al SDM
Alloca e configura Alloca e configura automaticamenteautomaticamente
risorse e configurazionirisorse e configurazioni
STORAGESTORAGESERVERSSERVERS NETWORKINGNETWORKINGSDM DocumentSDM Document
Design per le
Operation
22
Cos’è Indigo
COMExplicit ContractsUbiquity
Indigo
COM+Declarative BehaviorRich Context
MSMQDurable MessagingTransactional Messaging
.NET RemotingDeep CLR Integration Architettura Estendibile
ASMXContratti EsplicitiXML/Data Orientation
23
MessagingMessaging
Service ModelService Model
Indigo Architecture
Hosting EnvironmentsHosting Environments
ApplicationApplication
MessagingMessagingServicesServices
24
Indigo ArchitectureDettaglio
Messaging Services
ApplicationApplication
QueuingQueuing RoutingRouting EventingEventing DiscoveryDiscovery
Service Model
Instance ManagerInstance Manager
Context ManagerContext Manager
TypeIntegrationTypeIntegration
DataContractDataContract
DeclarativeBehaviorsDeclarativeBehaviors
TransactedMethodsTransactedMethods
Messaging
Transport Channels (IPC, HTTP, TCP…)Transport Channels (IPC, HTTP, TCP…)
Channels (Datagram, Reliable, Peer, …)Channels (Datagram, Reliable, Peer, …) Policy EnginePolicy Engine
Message EncoderMessage Encoder
Channel SecurityChannel Security
Hosting EnvironmentsASP.NETASP.NET AvalonAvalon .exe.exe NT ServiceNT Service COM+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 l’infrastruttura 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<T>(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
IChannelFactory
IOutputChannel
IOutputChannel
IListener
IInputChannel
…
… …
IListenerFactory
IListenerFactory
1. Service: CreateListener<IInputChannel>(filter, …)
2. Client: CreateChannel<IOutputChannel>3. Client: IOutputChannel.Send(message)4. Service: IListener<…>.AcceptChannel()5. Service: IInputChannel.Receive()
29
Service Runtime
A CLR type che implementa uno o più ServiceContractsService
Un meccanismo per effettuare il dispatch del messaggio al metodoDispatcher
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 messaggiListener 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<IConsole> (“http://www.microsoft.com/console”); 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 l’esistente ed in
linea con l’evoluzione 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 Q302 Q302 to Q402 Q402 to Q103 Q103 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. Gartner’s 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 Gartner’s 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: 220622840 — August 2004)© 2004 Gartner, Inc. and/or its affiliates.
39
19
12
8 7 6 5
34
0
5
10
15
20
25
30
35
40
Microsoft IBM Custom Oracle BEA OpenSource
Sun Altri
38
Web Service Performance8 CPU Web Service Host
1076.951076.95
296.25296.25
513.33513.33
1486.531486.53
0.000.00
200.00200.00
400.00400.00
600.00600.00
800.00800.00
1000.001000.00
1200.001200.00
1400.001400.00
1600.001600.00
J2EE J2EE App Server XApp Server X
Windows 2000Windows 2000Oracle 9i DBOracle 9i DB
JBOSSJBOSSRH Linux 8.0RH Linux 8.0Oracle 9i DBOracle 9i DB
.NET 1.1.NET 1.1Win 2003Win 2003
Oracle 9i DBOracle 9i DB
.NET 1.1.NET 1.1Win 2003Win 2003
SQL Server 2000SQL Server 2000
8 CPU - J2EE8 CPU - J2EE
8 CPU - .Net 1.18 CPU - .Net 1.1
Source: Doculabs Web Service Benchmark, March 2003
411.87411.87
J2EEJ2EEApp Server YApp Server Y
Win 2000Win 2000Oracle 9i DBOracle 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 ClientsOrganizations taking a service-oriented architectural (SOA) approach to Organizations taking a service-oriented architectural (SOA) approach to application development should standardize on a stand-alone rich client application development should standardize on a stand-alone rich client
technology since it is best suited to the dynamic consumption of Web technology since it is best suited to the dynamic consumption of Web Services.Services.
40
Gli Analisti
• Giga– How to Decide Between a Browser-Based
or Rich Client
RecommendationsRecommendationsIf applications demand any of the following, then choose a rich-client If applications demand any of the following, then choose a rich-client for the user interface:for the user interface:
•Intensive data input with immediate validation Intensive data input with immediate validation •Latency sensitive applications Latency sensitive applications •Direct data manipulation (sorting, filtering, etc.) Direct data manipulation (sorting, filtering, etc.) •Real-time animation/visualization Real-time animation/visualization •Disconnected operations Disconnected operations •Consumption of Web ServicesConsumption of Web Services