Aplicaciones Distribuidas Manuel Zegarra Sánchez Microsoft Certified Application Developer.

Post on 16-Dec-2015

216 views 1 download

transcript

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