Aplicaciones DistribuidasAplicaciones Distribuidas
Manuel Zegarra SánchezManuel Zegarra Sánchez
Microsoft Certified Application DeveloperMicrosoft Certified Application Developer
Microsoft Certified Application Microsoft Certified Application Developer - .NET FrameworkDeveloper - .NET Framework
Microsoft Certified ProfessionalMicrosoft Certified Professional
10 Años de experiencia desarrollando 10 Años de experiencia desarrollando soluciones Microsoft en diferentes soluciones Microsoft en diferentes sectores (Transporte, salud y sectores (Transporte, salud y financiero.)financiero.)
Diseño de aplicacionas SOA, Diseño de aplicacionas SOA, distribuidas y alta disponiblidad.distribuidas y alta disponiblidad.
ExperienciaExperiencia
ObjetivosObjetivos
Comprender la arquitectura de una Comprender la arquitectura de una aplicación distribuida.aplicación distribuida.
Comprender el modelo de Comprender el modelo de programación WCF.programación WCF.
Diseñar servicios WCF.Diseñar servicios WCF.
Definir contratos WCF.Definir contratos WCF.
AgendaAgenda
¿Qué son las aplicaciones distribuidas?¿Qué son las aplicaciones distribuidas?
Arquitectura de WCFArquitectura de WCFProgramando con WCF Programando con WCF – Demo– Demo
WCF / SOAWCF / SOA – Demo– Demo
PreguntasPreguntas
Aplicaciones DistribuidasAplicaciones Distribuidas
Caso - Talma Menzies S.R.LCaso - Talma Menzies S.R.L
¿¿QuéQué son las aplicaciones son las aplicaciones distribuidas?distribuidas?
Son aplicaciones que trabajan o Son aplicaciones que trabajan o coordinan con otras aplicaciones para coordinan con otras aplicaciones para brindar algún servicio.brindar algún servicio.
Las diferentes aplicaciones que Las diferentes aplicaciones que coordinan entre si, en la mayoría de coordinan entre si, en la mayoría de casos, se encuentran en diferentes casos, se encuentran en diferentes plataformas.plataformas.
Windows Communication Windows Communication FoundationFoundation
Es un modelo de programación Es un modelo de programación unificado para la construcción de unificado para la construcción de aplicaciones distribuidas en plataforma aplicaciones distribuidas en plataforma windows.windows.
UnificaUnifica
Orientado a Orientado a serviciosservicios
IntegraciónIntegración
InteropInteropwith otherwith otherplatformsplatforms
ASMX
DistributedDistributedTransactionsTransactions
Enterprise Services
WS-*WS-*ProtocolProtocolSupportSupport
WSE
MessageMessageQueuingQueuing
System.Messaging
ExtensibilityExtensibilityPerformancePerformance
.NET Remoting
Modelo de programación Modelo de programación unificadounificado
Inside View - WCFInside View - WCF
Service ModelService ModelService ContractsService Contracts
Data ContractsData Contracts
Message ContractsMessage Contracts
MessagingMessagingMessage classMessage class
Control dispatchControl dispatch
Outside ViewOutside View
ClientClient ServiceService
MessageMessageAABBCC AA BB CC
AA BB CC
AddressAddress BindingBinding ContractContract
(Where)(Where) (How)(How) (What)(What)= Endpoint= Endpoint
Runtime ModelRuntime ModelProxy/Dispatch and Channel LayersProxy/Dispatch and Channel Layers
Proxy
Client
Protocol
Encoder
Transport
Dispatcher
Service
Protocol
Encoder
Transport
AgendaAgenda
Why Windows Communication Why Windows Communication Foundation?Foundation?
WCF ArchitectureWCF ArchitectureProgramming WCF Programming WCF – Demo– Demo
WCF and SOAWCF and SOA – Demo– Demo
QuestionsQuestions
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Programming WCF Demo
Hosting OptionsHosting Options
Windows FormWindows Form
Console ApplicationConsole Application
Windows ServiceWindows Service
Internet Information ServerInternet Information Server
Windows Activation ServicesWindows Activation Services
app/web.config
Client
Proxy.cs
Service
Client ConfigurationClient Configuration
CBA
CBA
ABC
GetMetadata
WSDL
ABC
svcutil.exe http://localhost:8080/Interop/
Data Contracts, Service Data Contracts, Service ContractsContracts
[DataContract]public class Order{ [DataMember] public int orderID; [DataMember] public int partNumber; [DataMember] public int price; [DataMember] private string info;}
[DataContract]public class Query{ [DataMember] public int orderID;}
[DataContract]public class Info{ [DataMember] public string info;}
[ServiceContract]public interface IOrderService{ [OperationContract] void Process(Order o);
[OperationContract] Info GetInfo(Query q);}
ServiceContractServiceContract ties together ties together multiple multiple operationsoperations
OperationContracOperationContractt ties together ties together Message Message Contract, ActionContract, Action
Describing Message ExchangesDescribing Message Exchanges
[ServiceContract]public interface MyContract { [OperationContract( Action="urn:DoIt", ReplyAction="urn:Done")] MyReply DoIt(MyRequest request);
wsdl:portType
wsdl:operation
Typed MessagesTyped Messages
[MessageContract]public class MyRequest { [MessageBody] public UnitInfo Info; [MessageBody] public bool IsInUse;}
[DataContract]public class UnitInfo { [DataMember] public int ID; [DataMember] public string Name;}
wsdl:message
wsdl:part
xsd:element
Untyped MessagesUntyped Messages
Actions control DispatchActions control Dispatch
““*” matches all actions*” matches all actions
[OperationContract( Action = “Foo”, ReplyAction = “FooResponse”)]Message Foo(Message request);
[OperationContract(Action = “*”)]void Dispatch(Message request);
Service ConfigurationService Configuration
<?xml version="1.0" encoding="utf-8" ?><configuration> <system.serviceModel> <services> <service type=“HelloService" <endpoint address=“http://localhost/HelloService" binding=“basicHttpBinding" contract="IHello" /> </service> </services> </system.serviceModel></configuration>
Standard BindingsStandard Bindings
Inte
rop
Inte
rop
Secu
rityS
ecu
rity
Sessio
nS
essio
n
Tra
nsa
ction
Tra
nsa
ction
ss Du
ple
xD
uple
x
Stre
am
ing
Stre
am
ing
basicHttpBindingbasicHttpBinding BP BP 1.11.1
TT
wsHttpBindingwsHttpBinding WSWS T | ST | S XX XX
wsDualHttpBindingwsDualHttpBinding WSWS T | ST | S XX XX XX
netTcpBindingnetTcpBinding .NET.NET T | ST | S XX XX XX OOnetNamedPipeBindingnetNamedPipeBinding .NET.NET T | ST | S XX XX XX OOnetMsmqBindingnetMsmqBinding .NET.NET T | ST | S XX XX
netPeerTcpBindingnetPeerTcpBinding .NET.NET T | ST | S XXT = Transport Security T = Transport Security || S = WS-Security | O = One- S = WS-Security | O = One-Way OnlyWay Only
AgendaAgenda
Why Windows Communication Why Windows Communication Foundation?Foundation?
WCF ArchitectureWCF ArchitectureProgramming WCF Programming WCF - Demo- Demo
WCF and SOA WCF and SOA – Demo– Demo
QuestionsQuestions
WCF and SOAWCF and SOAAPI Style Business ServicesAPI Style Business Services
Interfaces look very similar to Interfaces look very similar to Object Oriented interfacesObject Oriented interfaces
Inputs are defined in terms of Inputs are defined in terms of multiple parametersmultiple parameters
Outputs are typed as return Outputs are typed as return valuesvalues
Intuitive to design.Intuitive to design.
ServiceContract, ServiceContract, OperationContract, OperationContract, DataContract and DataContract and DataMember are WCF tools for DataMember are WCF tools for building these types of building these types of business services.business services.
Message design is implicitMessage design is implicit
WCF and SOAWCF and SOAActivity Style Business ServicesActivity Style Business Services
Inputs are a single messageInputs are a single message
Outputs are a single message Outputs are a single message
ServiceContract, ServiceContract, OperationContract, OperationContract, MessageContract, MessageContract, MessageBodyMember, MessageBodyMember, MessageHeader are WCF tools MessageHeader are WCF tools for building these types of for building these types of business services.business services.
Message design is explicitMessage design is explicit
Message design requires some Message design requires some thought. Related activities thought. Related activities should use the same should use the same messages for efficiency with messages for efficiency with business processesbusiness processes
WCF and SOAWCF and SOABusiness ProcessesBusiness Processes
The vocabulary of the businessThe vocabulary of the business
Collection of activities which Collection of activities which may be local or Activity style may be local or Activity style business servicesbusiness services
May be long runningMay be long running
May contain human workflowMay contain human workflow
All inputs and all outputs are All inputs and all outputs are defined as messagesdefined as messages
BizTalk Server 2006 and BizTalk Server 2006 and Workflow Foundation are Workflow Foundation are examples of tools that can be examples of tools that can be used to assemble Business used to assemble Business Processes from existing Processes from existing activitiesactivities
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Message Contract Demo
For More Information …For More Information …
.NET Framework Technology Samples
WCF on the Microsoft Developer Network
Microsoft .NET Framework Community
Windows Vista Technologies
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Questions