Upload
paulo-traca
View
1.476
Download
2
Embed Size (px)
Citation preview
António [email protected] Traç[email protected]
Platina
Ouro
Prata
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
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
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
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
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
*
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
*
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
*
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
*
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
SVCUtil
Ou
wsimport
Serviço WCF
Ou WSIT
WS-Transfer / Mex
WSDL
Proxy Cliente
Encoder Encoder
Protocolo Protocolo
Protocolo Protocolo
Client (Proxy)
Transporte Transporte
Dispatcher
Service TypeConsumidores
do Serviço
Envelope
Body
Headers
Mensagem
Packet
Message
Header List
Payload
Attachement Set
Message Factory
Header Factory
Header
Attachment
*
Encoder Encoder
Protocolo Protocolo
Protocolo Protocolo
Client (Proxy)
Transporte Transporte
Dispatcher
Service TypeConsumidores
do Serviço
Service
Model Layer
Channel
Stack Layer
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
*
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
WS-Transfer/Get
WS-MetadataExchange
Apenas em cenários com WS-Trust
Reliable Sessions
Transacções Atómicas
Segurança
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()
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.
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(...);
}
} *
Interoperabilidade testada usando:
• Username authentication with Symmetric Key
• Mutual Services Security
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.
Cliente
C#
Aplicação
Java
Queue Queue
Proxy Serviço
Internet
*
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)
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
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”.
“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
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?
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
Brevemente disponível
http://research.logical-software.com
Actividades
Blogs sobre interoperabilidade .NET e Java
Forums, “Ask the expert”
Demos de extensibilidade
Sandbox ISB
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/
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
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
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
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
www.microsoft.com/learning
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:
António [email protected] Traç[email protected]
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)
© 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.