int08 interoperabilidade de web service com wcf e metro

45
António Cruz [email protected] Paulo Traça [email protected]

Upload: paulo-traca

Post on 14-Jul-2015

1.476 views

Category:

Technology


2 download

TRANSCRIPT

Page 2: INT08 Interoperabilidade de Web Service com WCF e Metro

Platina

Ouro

Prata

Page 3: INT08 Interoperabilidade de Web Service com WCF e Metro

Interoperabilidade

O que é o Project Metro

Relação entre o WCF e o Metro

Comparação das Arquitecturas

Ponto de situação

Demo

Funcionalidade

Dicas de Instalação

Futuro

Page 4: INT08 Interoperabilidade de Web Service com WCF e Metro
Page 5: INT08 Interoperabilidade de Web Service com WCF e Metro

Interpretações dos standards

Data types

Suportes à serialização

Suporte aos Basic Profiles

Performance e Escalabilidade

Custo do desenvolvimento

Impacto na manutenção

In-house expertise

Versionamento de serviços

Versionamento de toolkits

Page 6: INT08 Interoperabilidade de Web Service com WCF e Metro

Assumir que os tipos dos dados são verificados

Assumir que o cliente/servidor usam a mesma versão de SOAP

Assumir que fazer chamadas síncronas é boa ideia em qualquer cenário

Assumir que as ferramentas são compatíveis entre si e entre versões

Usar RPC-encoding

Page 7: INT08 Interoperabilidade de Web Service com WCF e Metro

Schema-First ou Contract-First

Tipos simples e tipos complexos compostos de tipos simples

Uso moderado de DateTime e Arrays

Subset de XML Schema

Manter os schemas simples

Aderir aos WS-I BP

Usar document-literal

Page 8: INT08 Interoperabilidade de Web Service com WCF e Metro

Stack de web services da Sun

Alta performance / pronta para produção

Parte integrante do Application Server Glassfish(Sun APP 9.0)

Parte integrante do JDK 1.6

JAX-WS “RI” + WSIT = MetroJAX-WS - toda a funcionalidade básica web services(extensibilidade e modularidade)

WSIT (Web Services Interoperability Technology)

Suporte standards WS-* (RM / Segurança / Transacções)

Interoperabilidade com .NET 3.x

*

Page 9: INT08 Interoperabilidade de Web Service com WCF e Metro

Microsoft e Sun fazem parte da WS-I

A interoperabilidade é um objectivo comum

Clientes Metro para Web Services em WCF

Clientes WCF para Web Services em Metro

Implementar especificações de forma a querealmente sejam interoperáveis.

Esforço conjunto

Microsoft Plugfests

*

Page 10: INT08 Interoperabilidade de Web Service com WCF e Metro

Versões das especificações implementadas (alinhadocom o .Net 3.0)

OASIS WS-Security 1.0 and 1.1

WS-Trust (Feb 2005)

WS-Secure Conversation (Feb 2005)

WS-Security Policy (Jul 2005)

WS-Reliable Messaging (Feb 2005)

WS-Reliable Messaging Policy (Feb 2005)

WS-Coordination (Aug 2005)

WS-Atomic Transactions (Oct 2004)

WS-Metadata Exchange (Oct 2004)

WS-Policy (W3C Member Submission)

WS-Policy Attachment (W3C Member Submission)

Próxima versão alinhada com o .NET 3.5

*

Page 11: INT08 Interoperabilidade de Web Service com WCF e Metro

HTTP TCP SMTP XMPPJMS

JAXB XML Data Binding (XSD, XPath)

SOAP Based Messaging (WSA | MTOM)

Security

Secure Conver.

Trust

Reliability

Reliable

Messaging

Transactions

Atomic-Transaction

Coordenation

Metadata

WSDL

MEX

Policy

JAX-WS Tooling | Netbeans plugin

IN-VM

*

Page 12: INT08 Interoperabilidade de Web Service com WCF e Metro

Não existe um API Runtime

Desenvolve Serviços POJO API‟s standardsJAX-WS e EJB 3.0

Developer escreve um ficheiro de config para controlar as features do WSIT

Policy file usando WS-Policy

O ficheiro é injectado no WSDL do serviço

*

Módulo Netbeans

À mão

Outros IDE‟s

Ficheiro Config

WSIT

Wsit.xml

109 Deployment

META-INF/wsit-*.xml

Service Servlet Diployment

WEB-INF/wsit-*.xml

Page 13: INT08 Interoperabilidade de Web Service com WCF e Metro

SVCUtil

Ou

wsimport

Serviço WCF

Ou WSIT

WS-Transfer / Mex

WSDL

Proxy Cliente

Page 14: INT08 Interoperabilidade de Web Service com WCF e Metro

Encoder Encoder

Protocolo Protocolo

Protocolo Protocolo

Client (Proxy)

Transporte Transporte

Dispatcher

Service TypeConsumidores

do Serviço

Envelope

Body

Headers

Mensagem

Page 15: INT08 Interoperabilidade de Web Service com WCF e Metro

Packet

Message

Header List

Payload

Attachement Set

Message Factory

Header Factory

Header

Attachment

*

Page 16: INT08 Interoperabilidade de Web Service com WCF e Metro

Encoder Encoder

Protocolo Protocolo

Protocolo Protocolo

Client (Proxy)

Transporte Transporte

Dispatcher

Service TypeConsumidores

do Serviço

Service

Model Layer

Channel

Stack Layer

Page 17: INT08 Interoperabilidade de Web Service com WCF e Metro

Stub TX RM WS-A Sec HTTP

Tube

Headz y w x Invoker

SEI Invoker Tube Provider Invoker Tube

Invoke

return

Invoke

return

010101

010101

Servidor

Cliente

*

Page 18: INT08 Interoperabilidade de Web Service com WCF e Metro

BP 1.1

WS-MetadataExchange

MTOM

WS-AT

WS-Policy

WS-RM

WS-SecureConversation

WS-SecurityPolicy

WS-Security

WS-Trust

WCF MetroWSDL 1.1

SOAP 1.x

FastInfosetnet.tcp

net.msmq

net.p2p

net.pipe

JMS

Servlets

In-VM

Page 19: INT08 Interoperabilidade de Web Service com WCF e Metro
Page 20: INT08 Interoperabilidade de Web Service com WCF e Metro

WS-Transfer/Get

WS-MetadataExchange

Apenas em cenários com WS-Trust

Reliable Sessions

Transacções Atómicas

Segurança

Page 21: INT08 Interoperabilidade de Web Service com WCF e Metro

WS-ReliableMessaging, Reliable Sessions e Durable Messaging

VantagensAtLeastOnce, AtMostOnce, ExactlyOnce, Ordered

Desvantagens

InteroperabilidadeWCF: [DeliveryRequirements(RequireOrderedDelivery=true)]

Performance

Boas práticasAtributos estritamente necessários. AtLeastOnce.

Close()

Page 22: INT08 Interoperabilidade de Web Service com WCF e Metro

Grupo de operações que actua como uma unidade atómica

Em teoria, “transactional is beautiful”, mas…

Usar comedidamente em web services

Não oferecem a melhor disponibilidade e escalabilidade

Pode ser preferível usar transacções locais e/ou mecanismos de compensação

Essenciais para a construção de serviços robustos e de alta qualidade.

Page 23: INT08 Interoperabilidade de Web Service com WCF e Metro

Utiliza WS-Coordenation

Todas a operações no contexto da transacção fazem commit ou rollback

Idêntico a EJB 3.0 | RMI-IIOP TX

@javax.jws.WebService

@javax.ejb.Stateless

@javax.ejb.TransactionManagement(CONTAINER)

public class Wirerer {

@javax.jws.WebMethod

@javax.ejb.TransactionAttribute(REQUIRED)

void wireFunds(...) throws ... {

websrvc1.withdrawFromBankX(...);

websrvc2.depositIntoBankY(...);

}

} *

Page 24: INT08 Interoperabilidade de Web Service com WCF e Metro

Interoperabilidade testada usando:

• Username authentication with Symmetric Key

• Mutual Services Security

Page 25: INT08 Interoperabilidade de Web Service com WCF e Metro

Possibilita One-Way, Durable e Reliable Messaging.

Usa os standards WS-Security, WS-Transactions e WS-Reliable Messaging.

Ao usar os standards sobre HTTP, assegura a interoperabilidade com outras plataformas. Ex: Metro.

É suportado pelo WCF sem necessidade de extender o framework.

Page 26: INT08 Interoperabilidade de Web Service com WCF e Metro

Cliente

C#

Aplicação

Java

Queue Queue

Proxy Serviço

Internet

*

Page 27: INT08 Interoperabilidade de Web Service com WCF e Metro
Page 28: INT08 Interoperabilidade de Web Service com WCF e Metro

JDK 1.6 update 4

Glassfish Application Server 2.0 ur1

NetBeans 6.0.1

Ou…

NetBeans Enterprise bundle (mas não inclui o JDK)

Page 29: INT08 Interoperabilidade de Web Service com WCF e Metro

Para desenvolvimento, usar os certificados disponíveis no copyv3.zip

Instalar os JCE Policy Files para suportar criptografia superior a 128 bits

Validar a sincronização dos relógios nos servidores

Page 30: INT08 Interoperabilidade de Web Service com WCF e Metro

No WCF o default é SecurityAlgorithmSuite.Basic256 mas só funciona depois de configurarmos o WCF para usar SecurityAlgorithmSuite.Basic128.

Instalar o JCA strong cryptography policy no JRE/JDK.

Atribuir o valor false à propriedade NegotiateServiceCredential no WCF (o default é true) porque se traduz na implementação de uma asserção de WS-Policy proprietária Microsoft (SslContextToken).

"Policy Assertion is not Supported”.

Page 31: INT08 Interoperabilidade de Web Service com WCF e Metro

“The security timestamp is invalid because its creation time ('2008-03-08T21:57:58.000Z') is in the future. Current time is '2008-03-08T21:51:04.809Z' and allowed clock skew is '00:05:00„”.

Ajustar o maxClockSkew.

Quando a configuração requer WS-SecureConversation(secureConversationBootstrap) é necessário ter em conta que:

Existem dois elementos: localClientSettings e localServiceSettings

O runtime vai considerar o valor que seja o mais baixo dos dois

Page 32: INT08 Interoperabilidade de Web Service com WCF e Metro

Actualização do suporte aos standards WS-*

Alinhamento com WCF 3.5

Kerberos Tokens

XMPP (Metro)

Suporte melhorado a serviços REST (Metro)

WS-Eventing?

Page 33: INT08 Interoperabilidade de Web Service com WCF e Metro

Interoperabilidade é um tema necessário e actual:

http://www.microsoft.com/interop/principles

Começa no desenho dos serviços

É possível interoperar entre Java e .NET

Page 34: INT08 Interoperabilidade de Web Service com WCF e Metro

Brevemente disponível

http://research.logical-software.com

Actividades

Blogs sobre interoperabilidade .NET e Java

Forums, “Ask the expert”

Demos de extensibilidade

Sandbox ISB

Page 35: INT08 Interoperabilidade de Web Service com WCF e Metro

Visual Studio 2008

http://msdn2.microsoft.com/en-us/vstudio/products/aa700831.aspx

.NET 3.5 SDK

http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe

Comunidade

http://netfx3.com/content/WCFHome.aspx

Nicholas Allen's Indigo Blog

http://blogs.msdn.com/drnick/

Microsoft Interop Plugfest

http://mssoapinterop.org/ilab/

Page 36: INT08 Interoperabilidade de Web Service com WCF e Metro

Homepage

http://metro.dev.java.net

Glassfish

http://glassfish.dev.java.net

Certificados para desenvolvimento

http://xwss.dev.java.net/files/documents/4864/5420/copyv3.zip

Utilitários de segurança

http://xwss.dev.java.net

JCE Unlimited Strength Jurisdiction Policy Files

http://java.sun.com/javase/downloads

Arun Gupta‟s Blog

http://weblogs.java.net/blog/arungupta

Page 37: INT08 Interoperabilidade de Web Service com WCF e Metro

Quinta-feira, dia 13 pelas 18:30 na anfiteatro do pavilhão 2

duração prevista de 1 hora

Elementos ParticipantesJoão Pedro Martins

Hugo Batista

António Cruz

Hugo Ribeiro

Tiago Pascoal

Tema Livre

Arquitecturas, Metodologias de Desenvolvimento, Temas da Audiência

Miguel Madeira

Paulo Morgado

António Rocha

Sérgio Amendoeira

Page 38: INT08 Interoperabilidade de Web Service com WCF e Metro
Page 39: INT08 Interoperabilidade de Web Service com WCF e Metro

Software em versão completa para avaliação

2 incidentes de suporte gratuito profissional

Acesso antecipado às versões beta

software exclusivo: Capacity Planner

actualizações de segurança e service packs

formação gratuita ….e muito mais.

www.microsoft.com/portugal/technet/subscricoes

Page 40: INT08 Interoperabilidade de Web Service com WCF e Metro

Software em versão completa para avaliação

Suporte técnico 24x7 para incidentes

Acesso antecipado às versões beta

Microsoft Office

Software Assurance

formação gratuita ….e muito mais.

www.microsoft.com/portugal/msdn/subscricoes

Page 41: INT08 Interoperabilidade de Web Service com WCF e Metro

www.microsoft.com/learning

Page 42: INT08 Interoperabilidade de Web Service com WCF e Metro

Complete o questionário de avaliação e devolva-o no balcão da recepção…

…e habilite-se a ganhar 1 percurso de

certificação por dia! Oferecido por:

…e habilite-se a ganhar 1 percurso de

certificação MCTS por dia! Oferecido por:

…e habilite-se a ganhar 1 curso e exame por

dia! Oferecido por:

Page 44: INT08 Interoperabilidade de Web Service com WCF e Metro

1. Make cert and pvk file for CA (Trusted Root Certificate which can bethe same on each participating machine)makecert.exe -pe -n CN=PARSEC-CA -cy authority -r -sv PARSEC-CA.pvk PARSEC-CA.cer

2. Install CA certmakecert.exe -ss Root -sr LocalMachine -n CN=PARSEC-CA -cyauthority -r –sv PARSEC-CA.pvk

3. Make/Install cert from CA's pvk file and cert file (Certificate which isdifferent for each participating machine -- Chains to the CA certcreated above)makecert -ss My -sr LocalMachine -n CN=PARSEC -sky exchange -ir LocalMachine -iv PARSEC-CA.pvk -ic PARSEC-CA.cer

(If computers are on a workgroup, remove the.%USERDNSDOMAIN% from the above command)

Page 45: INT08 Interoperabilidade de Web Service com WCF e Metro

© 2008 Microsoft Corporation. Todos os direitos reservados.

Esta apresentação destina-se apenas a fins informativos.

A MICROSOFT NÃO FAZ GARANTIAS, EXPRESSAS OU IMPLÍCITAS NESTA APRESENTAÇÃO.