int08 interoperabilidade de web service com wcf e metro
TRANSCRIPT
![Page 1: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/1.jpg)
António [email protected] Traç[email protected]
![Page 2: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/2.jpg)
Platina
Ouro
Prata
![Page 3: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/4.jpg)
![Page 5: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/15.jpg)
Packet
Message
Header List
Payload
Attachement Set
Message Factory
Header Factory
Header
Attachment
*
![Page 16: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/19.jpg)
![Page 20: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/24.jpg)
Interoperabilidade testada usando:
• Username authentication with Symmetric Key
• Mutual Services Security
![Page 25: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/26.jpg)
Cliente
C#
Aplicação
Java
Queue Queue
Proxy Serviço
Internet
*
![Page 27: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/27.jpg)
![Page 28: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/31.jpg)
“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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/38.jpg)
![Page 39: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/41.jpg)
www.microsoft.com/learning
![Page 42: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/42.jpg)
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 43: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/43.jpg)
António [email protected] Traç[email protected]
![Page 44: INT08 Interoperabilidade de Web Service com WCF e Metro](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052602/55a4e53e1a28ab4b748b46e3/html5/thumbnails/45.jpg)
© 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.