1. Plataforma Windows Azure
David Chou
david.chou@microsoft.com
blogs.msdn.com/dachou
Tradução: Prof. Eng. Sylvio Silveira Santos
http://soa4you.wordpress.com
2. Tipos de Nuvens
Sistemas Infrastrutura Plataforma
Você administra
Privados (Como Serviço) (Como Serviço)
(On-Premise)
Você administra
Aplicações Aplicações Aplicações
Runtimes Runtimes Runtimes
Administrado pelo fornecedor
Segurança & Integração Segurança & Integração Segurança & Integração
Administrado pelo fornecedor
Você administra
Bases de Dados Bases de Dados Bases de Dados
Servidores Servidores Servidores
Virtualização Virtualização Virtualização
Servidor HW Servidor HW Servidor HW
Armazenamento Armazenamento Armazenamento
Redes Redes Redes
3. Tipos de Nuvens
Privativas Infraestrutura Plataforma
(On-Premise) (Como Serviço) (Como Serviço)
4. Um Mundo Híbrido
Consistencia e Controle Escalabilidade & Disponibilidade
Nuvem Privada Nuvem Pública
(on-premise) (off-premise)
Desempenho em Tempo Real Redundancia e Resiliencia
Segurança e Privacidade Alcance Global
Customização Provisionamento Fácil
Recursos Físicos Recursos Abstratos
Heterogeneidade Homogeneidade
5. A Nuvem da Microsoft
Aproximadamente 100 Centros de Processamento de Dados Distribuídos
Globalmente
Quincy, WA Chicago, IL San Antonio, TX Dublin, Irlanda Geração 4 DCs
6. A Nuvem da Microsoft
Categorias de Serviços
Serviços de Aplicações
Serviços de Software
Platform Services
Serviços de Infraestrutura
7. A Plataforma Windows Azure
Escala da Internet, uma fábrica nas nuvens de elevada disponibilidade
Data Centers da Microsoft globalmente distribuidos
Certificações ISO/IEC 27001:2005 e SAS 70 – Certificação Tipo I e Tipo II
Consumo e utilização baseado em preço justo: classe empresarial SLA
Computação – auto- Dados – escalabilidade Service Bus – conectividade
provisionamento de 64-bits; maciça e bancos de dados de aplicações on-premise;
aplicações residentes em relacionais altamente Web Services amigáveis,
containers em Windows consistentes; geo-replicação seguros, federados, através
Server VMs; suporta ampla e geo-localização de dados de fire-walls e menssageria
faixa de modelos de Processamento – relacional, intermediária; queues de
aplicação queries, buscas, relatórios, informações duráveis e de
Armazenamento – Tabelas analítica em dados fácil descobrimento
com alta disponibilidade, estruturados, semi- Controle de Acesso –
blobs e filas com serviços de estruturados e não Identificação federada
armazenamento em cache estruturados dirigida por regras;
Linguagens – .NET 3.5 (C#, Integração – sincronização e federação AD; autorizações
VB.NET, etc.), IronRuby, replicação de bases de baseadas em pedidos
IronPython, PHP, Java, código dados on-premise com Workflows – orquestrações
nativo Win32 outras fontes de dados de serviços via atividades
baseadas em REST
8. Preços
Computação Ediçaõ Web (1GB) Barramento de Serviços
• $0.12 / CPU hora • $9.99 / mês • $0.15 / 100k mensagens
Armazenagem Business Edition (10GB) Controle de Acesso
• $0.15 / GB / mês • $99.99 / mês • $0.15 / 100k tokens
• $0.01 / 10k transações / Largura de Faixa Largura de Faixa
mês
• $0.10 in / GB • $0.10 in / GB
Largura de Faixa
• $0.15 out / GB • $0.15 out / GB
• $0.10 in / GB
• $0.15 out / GB
Virtual Machine instances Armazenamento de Blobs Ingresso/Egresso
Host OS Windows Server 2008 x64 Armazenamento de Tabelas (to/from sòmente
Guest OS Windows Server 2008 Enterprise x64 Múltiplas réplicas Internet)
Hypervisor Hyper-V
CPU 1.5 - 1.7 GHz x64 equivalent
Memory 1.7GB
Network 100Mbps
Transient storage 250GB
Balanceadores de carga, roteadores, etc.
Gestão de Serviços Automatizados
- Operações da Fabric Controller
(deploy/upgrade/delete/scale)
- Programação de balanceamento de
carga
9. Garantia de Serviços
O barramento
Serviços de de serviços
Tudo que está Seu serviço é As bases de armazena- (.NET Service
rodando é conectado e dados são mento de facil Bus endpoint)
monitorado acessado via conectadas acesso, com terá
continuamente Web ao elevada conetividade
respectivo conectividade externa
Se o aplicativo Os papeis
ou rotina for
gateway na
diversos de Internet Seus pedidos Solicitações
corrompido,
acesso na de de operação
nós
detectamos Internet tem Monitora- armazenagem de mensagem
imediatamente conectividade mento serão serão
e tomamos externa disponivel a processados processadas
medidas cada 5 de forma bem de forma a
corretivas minutos de sucedida serem bem
intervalo sucedidas
Gerenciamento
Automático dos
Sistemas >99.95% >99.9% >99.9% >99.9%
10. Beneficios
DEMANDAS DE DEMANDAS DE OFERECIMENTOS DA PLATAFORMA
NEGÓCIOS TECNOLOGIA WINDOWS AZURE
• Solução efetiva em custos para gestão de recursos de TI
• Menos infra-estrutura para comprar/configurar e
Custos Mais Eficiencia suportar
• TCO mais baixo
Baixos • Custos previsiveis
• Foco na disponibilidade de software eficiente
e não em gerenciar infra-estrutura
Permaneça Inovação • Monetização de novas ofertas rápidamente sem
Competitivo investimento para cobranças ou outras tecnologias
habilitadoras, como pagamentos.
• Velocidade de desenvolvimento
• Inter-operacionalidade
Geração Rápida • Aproveitamento de IP existente
de Novos Agilidade • Disponibilidade simplificada na Web
Retornos • Escalonamento up ou down de acordo com
necessidade do negócio
• Acesso rápido ao mercado
• Serviço exequivel
Riscos • SLAs (Service Level Agreements)
Exequibilidade
Reduzidos • Segurança
• Centros globais de processamento de dados
12. http://www.azure.com
Registre-se no Portal de
Desenvolvedores da
Plataforma Windows
Azure
Acesso ao Windows
Azure
Ferramentas para
desenvolvedores
White papers
Amostras de aplicações
Planeje aplicações piloto,
provas de conceitos e
sessões de projetos de
arquitetura com parceiros
Windows Azure
14. Modelos de Aplicações
Hospedagem Web Computação de Alto Desempenho
Infra-estrutura em escala maciça Processamento paralelo e
Gerência de estouro e overflow distribuido
Sites temporários e ad-hoc Modelagem e simulação maciças
Hospedagem de Aplicações Analítica avançada
Extensões “on-premise” Compartilhamento de Informação
Aplicações compostas Repositorios comuns de dados
Agentes automaticos / jobs Dados referenciados
Hospedagem & Processamento Knowledge Mgmt e descoberta
Renderização CGI Processos Colaborativos
Transcodificação de conteudo Integração multi-empresarial
Streaming de midia B2B e e-commerce
Armazenamento Distribuído Gestão de Suprimentos
Armazenamento externo e backup Ciências da Saude e da Vida
Serviços em dominios especificos
15. Arquitetura de Aplicações em Escala da Internet
Projeto Dados e Conteúdo
Escalonamento horizontal De-normalização
Composição SOA Particionamento lógico
Consistencia eventual Distribuição em cache de memória
Tolerancia a erros (falhas esperadas) Diversas opções de armazenamento de
dados (lida com dados persistentes e
Segurançca transientes, relacionais e não estruturados,
Autenticação com base em pedidos e texto e binario, leitura e escrita, etc.)
controle de acesso
Processos
Identidade federada
Componentes fracamente acoplados
Criptografia de dados e controle de chaves
Processamento paralelo e distribuido
Administração Comunicação assincrona distribuida
Automação direcionada por políticas Idempotente (lida com duplicidade)
Percepção de ciclo-de-vida das aplicações Isolamento (separação de atributos)
Trabalho com dados dinamicos e mudanças
de configuração
16. Arquitetura de Aplicações em Escala da Internet
Apresentação
• ASP.NET C#, PHP, Java
• Cache distribuído in-memory
Serviços
• .NET C#, Java, codigo nativo
• Cache de memória distribuído
• Processos assíncronos
• Processos paralelos distribuídos
• Armazenamento de arquivos
transientes
Conectividade
• Enfileiramento de mensagens
• Orquestração de serviços
• Identitdade de federação SERVICE ACCESS WORK
BUS CONTROL FLOWS
• Controle de acesso com base em solicitações
• Conectividade a serviços externos
Armazenamento
• Dados relacionais e transacionais
• Bases de Dados federadas
• Dados não-estruturados,
de-normalizados
• Particionamento lógico
• Persistencia de arquivos e blobs
• Armazenamento criptografado
17. Padrões de Aplicação
Aplicações Web em Nuvem
Web Mobile Silverlight WPF
Browser Browser Application Application
Usuário
Jobs
Enterprise ASP.NET Web Svc Application
ASP.NET ASP.NET (Worker
ASP.NET
Application (Web Role)
ASP.NET (Web Role)
ASP.NET ASP.NET Service
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
Role)
ASP.NET
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
ASP.NET
(Web Role) (Web Role) (Web Role)
(Web Role) (Web Role) (Web Role)
Enterprise Data
Web Svc Service
Table Blob
Queue
Enterprise Storage Storage Storage
Service
Data Service Service Service
Enterprise Access Identity
User Application Reference Workflow
Identity Service Bus Control Service
Data Data Data Service
Service
Nuvem de
Nuvem Serviços
Privativa Públicos
18. Padrões de Aplicação
Aplicação de Serviços Compostos
Web Mobile Silverlight WPF
Browser Browser Application Application
Usuário
Jobs
Enterprise ASP.NET Web Svc Application
ASP.NET ASP.NET (Worker
ASP.NET
Application (Web Role)
ASP.NET (Web Role)
ASP.NET ASP.NET Service
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
Role)
ASP.NET
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
ASP.NET
(Web Role) (Web Role) (Web Role)
(Web Role) (Web Role) (Web Role)
Enterprise Data
Web Svc Service
Table Blob
Queue
Enterprise Storage Storage Storage
Service
Data Service Service Service
Enterprise Access Identity
User Application Reference Workflow
Identity Service Bus Control Service
Data Data Data Service
Service
Nuvem Serviços
Privativa Públicos
19. Padrões de Aplicação
Aplicação em Nuvem com Auxílio de Agentes
Web Mobile Silverlight WPF
Browser Browser Application Application
Usuário
Jobs
Enterprise ASP.NET Web Svc Application
ASP.NET ASP.NET (Worker
ASP.NET
Application (Web Role)
ASP.NET (Web Role)
ASP.NET ASP.NET Service
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
Role)
ASP.NET
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
ASP.NET
(Web Role) (Web Role) (Web Role)
(Web Role) (Web Role) (Web Role)
Enterprise Data
Web Svc Service
Table Blob
Queue
Enterprise Storage Storage Storage
Service
Data Service Service Service
Enterprise Access Identity
User Application Reference Workflow
Identity Service Bus Control Service
Data Data Data Service
Service
Núvem Serviços
Privativa Públicos
20. Padrões de Aplicação
Aplicação com Integração B2B
Web Mobile Silverlight WPF
Browser Browser Application Application
Usuário
Jobs
Enterprise ASP.NET Web Svc Application
ASP.NET ASP.NET (Worker
ASP.NET
Application (Web Role)
ASP.NET (Web Role)
ASP.NET ASP.NET Service
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
Role)
ASP.NET
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
ASP.NET
(Web Role) (Web Role) (Web Role)
(Web Role) (Web Role) (Web Role)
Enterprise Data
Web Svc Service
Table Blob
Queue
Enterprise Storage Storage Storage
Service
Data Service Service Service
Enterprise Access Identity
User Application Reference Workflow
Identity Service Bus Control Service
Data Data Data Service
Service
Nuvem Serviços
Privativa Públicos
21. Padrões de Aplicação
Aplicações em Grade / Computação Paralela
Web Mobile Silverlight WPF
Browser Browser Application Application
Usuário
Jobs
Enterprise ASP.NET Web Svc Application
ASP.NET ASP.NET (Worker
ASP.NET
Application (Web Role)
ASP.NET (Web Role)
ASP.NET ASP.NET Service
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
Role)
ASP.NET
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
ASP.NET
(Web Role) (Web Role) (Web Role)
(Web Role) (Web Role) (Web Role)
Enterprise Data
Web Svc Service
Table Blob
Queue
Enterprise Storage Storage Storage
Service
Data Service Service Service
Enterprise Access Identity
User Application Reference Workflow
Identity Service Bus Control Service
Data Data Data Service
Service
Nuvem Serviços
Privativa Públicos
22. Padrões de Aplicação
Aplicações Empresariais Híbridas
Web Mobile Silverlight WPF
Browser Browser Application Application
Usuário
Jobs
Enterprise ASP.NET Web Svc Application
ASP.NET ASP.NET (Worker
ASP.NET
Application (Web Role)
ASP.NET (Web Role)
ASP.NET ASP.NET Service
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
Role)
ASP.NET
(Web Role)
ASP.NET (Web Role)
ASP.NET (Web Role)
ASP.NET
(Web Role) (Web Role) (Web Role)
(Web Role) (Web Role) (Web Role)
Enterprise Data
Web Svc Service
Table Blob
Queue
Enterprise Storage Storage Storage
Service
Data Service Service Service
Enterprise Access Identity
User Application Reference Workflow
Identity Service Bus Control Service
Data Data Data Service
Service
Nuvem Serviços
Privativa Púbublicos
25. Arquitetura do Windows Azure
Fabric
Fabric controller
Compute Storage
O Fabric Controller comunica-se com cada
servidor dentro da Fabrica. Ele gerencia o
Windows Azure, monitora cada aplicação,
decide onde novas aplicações deverão rodar –
otimizando a utilização do hardware.
26. Arquitetura do Windows Azure
O Fabric Controller automatiza o
balanceamento de carga e calcula o
escalonamento de recursos
Segurança e Características de Controle
incluem armazenamento de encriptação,
autenticação de acesso e criptografia
“over-the-wire” com uso de HTTPS.
Computação Serviços de Armazenamento Certificação com padrões da indústria
Provê esclabilidade das Permitem aos clientes fazer fazem parte do roadmap do Windows
aplicações. Desenvolvedores escalonamento e armazenamento de Azure.
podem criar uma combinação de grandes quantidades de dados – em
papeis da web e de trabalho qualquer formato – para qualquer Centros de Processamento de Dados
local. Estes papeis podem ser duração no tempo, pagando apenas geograficamente distribuídos,
replicados conforme necessário pelo que usam ou armazenam. “estado da arte” para
para escalonamento e ampliação armazenamento de seus aplicativos e
das aplicações e poder de dados, accessiveis através da Internet
processamento computacional. a partir de qualquer ponto que se
queira, e por meio de diferentes
plataformas e sistemas, tablets e
celulares.
27. Arquitetura do Windows Azure
Fabric Controller
Interage com um agente
inteligente “Fabric Agent” em cada
máquina
Monitora cada VM, aplicação e
instância
Realização de balanceamento de
carga, check pointing e
recuperação
28. Arquitetura do Windows Azure
Computação
OBJETIVO:
ESCALABILIDADE Dois tipos de instâncias: Web Role e Worker Role
As aplicações em Windows Azure são construídas
Gerenciamento da escalabilidade por dentro de instâncias - instâncias de papéis na web (web
meio da replicação de instâncias de role instances), de trabalho (worker role instances),
trabalho de acôrdo com as ou uma combinação de ambas.
necessidades.
Permite às aplicações fazerem o
escalonamento do número de usuários
e processamento computacional de
modo independente.
Cada instância roda
em sua própria VM
(virtual machine), que
é replicada de acôrdo
com as necessidades
29. Arquitetura do Windows Azure
Armazenamento
OBJETIVO:
ARMAZENAMENTO ELÁSTICO,
COM DURABILIDADE Tabelas: dados Filas (Queues): mensagens
estruturados
Blobs: dados ou solicitações acessadas
simples, que podem
volumosos, de modo série, permitindo
O armazenamento do Windows Azure não
ser acessados interação de papeis “web-
storage é um aplicativo gerenciado usando serviços de
estruturados roles” e “worker-roles”
dados ADO.NET
pelo Fabric Controller (audio, video,
etc)
As aplicações Windows Azure podem
usar armazenamento nativo ou o SQL
Azure
O estado de uma aplicação é mantido
pelos serviços de armazenamento, de
modo que os papeis dos usuários
podem ser replicados conforme as
necessidades
30. Arquitetura do Windows Azure
Administração dos Serviços
OBJETIVO:
ADMINISTRAÇÃO E CONTROLE DE APLICAÇÕES
Fabric
O Fabric Controller automatiza o
gerenciamento de serviços
31.
32. Opcções de Armazenamento de Dados
SQL Server
• SQL Server “on-premises”
• Recursos: governança de
Dedicado
Hospedagem máquina
• Segurança: SQL Server/OS
RDBMS
• Hospedagem SQL Server Roda seu próprio HA/DR/scale
• Recursos: governance @ VM
Base de • Security @ SQL Server/OS
Dados SQL
Roda seu próprio HA/DR/scale
Azure
Recursos
(RDBMS)
• Servidor DB virtual
• Base de Dados ´logica de
usuário (LUDB)
• Governança de recursos:
governance @ LUDB
• Segurança @LUDB
Compartilhado
Baixo Alto
“Fricção”/Controle
Proposições de Valor: Proposições de Valor : Proposições de Valor :
• Auto HA, Tolerância a Falhas • XSPs, Server Ops • Controle integral h/w –
• Escalabilidade livre de atritos • SQL CLR tamanho/escala
• Auto-provisionamento • 100% de compatibilidade • 100% de compatibilidade
• Elevada compatibilidade
33. Arquitetura do SQL Azure
RDBMS de armazenamento e
Acesso flexivel aos dados em nuvem hospedagem simples
• Crie aplicações cliente que acessam dados
na nuvem via TDS – como se faz no SQL Aplicação
ODBC, OLEDB,
Aplicação Aplicação ADO.Net PHP,
Server em sua empresa em Ruby, …
Browser REST Cliente SQL Cliente*
• Crie aplicações Web na nuvem em Azure
utilizando bibliotecas padronizadas
SQLClient com uso de ADO.NET
• Crie interfaces baseadas em nuvem em
Azure com uso de interfaces de dados Nuvem
baseadas em REST com ADO.NET Data
Services e Entity Framework
HTTP+REST
HTTP
Nivel baixo de atrito no provisionamento
TDS
destinado ao armazenamento de dados
Windows Azure
• Interface Web para provisionamento simples
Data Center
Web App REST(Astoria)
de base de dados
SQL Client* ADO.Net +EF
• Escalonamento suave de dados dentro das
necessidades
TDS + TSQL Model
Data Center auto-gerenciável
• Manutenção automatizada
SQL Azure
• Elevada disponibilidade e recuperação de
dados automatizada
* Acesso cliente habilitado usando TDS para ODBC,
ADO.Net, OLEDB, PHP-SQL, Ruby, …
34. Projeto na Plataforma de Dados
Conta • Objetivo:
Alcance global Azure – Uma plataforma de
Sistema de cobrança armazenamento contruida para
escalabilidade extrema e baixo
custo
Possui uma ou mais
• Arquitetura:
Servidor – Uma conta Azure permite
Metadados da Database acesso ao SQL Azure
Unidade de autorização – Cada conta pode ter um ou
Unidade geo-localização mais servidores lógicos
• Implementados como servidores físicos
múltiplos dentro de uma geo-localização
Possui uma ou mais
– Cada servidor lógico pode
Base de Dados conter uma ou mais base de
dados lógicas
Unidade de Consistência • Implementadas como dados replicados e
Contém Usuários, particionados através de múltiplas bases
de dados físicas
Tabelas, Vistas, etc…
35. Bases de Dados Lógicas de Usuário
• Usa infraestrutura compartilhada na base de dados SQL database e mais:
– Cada usuário da base de dados é replicado em um ou mais servidores (configuráveis segundo SLA)
– Solicitações clientes são enviadas ao “servidor primário” para operações de leitura e escrita (com base na sessão SQL)
– Segurança, bloqueio e isolamento reforçados na conexão SQL
• Tecnologia estado-da-arte: HA de elevada escalabilidade
– Detecção automática de falhas; solicitações-cliente redirecionadas para novos servidores primários em caso de falhas
– Elevado padrão de garantia SLA por meio de replicação lógica (réplicas “hot standby”)
– Gerenciamento automático, correção automática e balanceamento de carga através de um pool de recursos
compartilhados
• A Base de Dados SQL Azure dispõe de provisionamento e infra-estrutura de cálculos de custos e cobrança
Base de Dados SQL Azure : Provisionamento (Bases de Dados, Contas, Atribuições, …, Medições e Cobranças)
Máquina 4 Máquina 5 Máquina 6
Instância SQL Instância SQL Instância SQL
SQL DB SQL DB SQL DB
Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário
DB1 DB2 DB3 DB4 DB1 DB2 DB3 DB4 DB1 DB2 DB3 DB4
Escalabilidade e Disponibilidade: Fabric, Failover, Replicação e Balanceamento de Carga
Contratos relativos ao DBA podem ser alterados com fóco no gerenciamento
presente nas políticas/lógicas de administração dos sistemas
36. Modelos de Segurança e Conexão
Segurança
• Usa o modelo tradicional de segurança do SQL
– Autenticação de logins, mapeamento de usuários e atribuições
– Autorização para usuários e atribuições em objetos SQL
• Suporte padronizado de logins SQL
– Logins são sempre username + strings de password
– O serviço é reforçado com uso de credenciais de segurança por SSL
– Suporte (futuro) para Federação tipo AD, WLID, etc., como protocolos alternativos
de autenticação
Conexões
• Conexões usando bibliotecas de clientes comuns
– ADO.NET, OLE DB, ODBC, etc.
• Clientes podem conectar-se diretamente às bases
de dados
• Ampla superfície para SQL suportada dentro dos limites da base
de dados
– Trabalho futuro deverá relaxar muitas destas restrições
37. Modelo de Provisionamento
• Contas e provisionamento de srvidores
– Acesso facilitado por portais baseados em APIs
– Ex: Enumere meus servidores, mostre-me as
métricas de utilização, etc
• Cada conta possui um ou mais servidores
– Ex: srv123.data.database.windows.net
• Cada servidor possui uma base virtual de
* *
dados-mestre (Virtual Master Database)
– Possui um sub-conjunto do SQL Server para uma
interface-mestre na base de dados (Master DB Interface)
• Cada servidor possui um ou mais logins
em SQL
– O sistema cria um logi sysadmin no “server creation”
• Bases de Dados criadas usando “CREATE
DATABASE”
– Podem ser chamadas por sysadmin ou por qualquer
pessoa com permissão de acesso à base de dados (create
DB permission)
38. Compatibilidade do Servidor SQL
• O servidor SQL possui muitos padrões para
cumprimento de suas tarefas
– A base de dados do SQL Azure suporta um subconjunto
dos padrões integrais da SQL
– Com foco na lógica e políticas de administração do
sistema
– Os padrões são aplicáveis tanto à base de dados do SQL
Azure Database como do servidor SQL
• Isto favorece a migração de aplicações on-premise para e do SQL
Azure
• A base de dados SQL Azure é um serviço multi-
inquilino
– Políticas para gestão de estrangulamento e de controle
de carga
– Examplos: limite nas dimensões do Banco de Dados,
duração das transações, etc.
Entrada do escopo para v1 Saída do escopo para v1
• Criar/Alterar/Cancelar algo na Base de • CLR
Dados/Indexar/Examinar • Alternância de serviços (Service Broker)
• Procedimentos armazenados (Transact-SQL) • Transações distribuídas
• Disparadores (Triggers) • Pesquisas distribuidas (Distributed Queries)
• Restrições • Análise espacial
• Variáveis em tabelas, tabelas para controle de • Niveis DDL em todos os serviços
tempo (#t) • Todas as vistas físicas e de catálogos em DDL
• + muitos outros procedimentos
39. Cenários de Aplicação
Aplicações dem Departamentos Aplicações Web
Data Hubs Ofertas ISV/SaaS
40.
41. Padrões Comuns e Problemas
• Como podemos usar serviços em nuvem para conectar aplicações e
serviços através de localidades de desenvolvimento?
– Nuvem-ponte, serviços on-premises e hospedagem de ativos
– Navegue na rede e nos limites de segurança, de modo seguro e descomplicado
– Assuma controle da identidade e acesso através de organizações e provedoes de ID
– Interopere através de linguagens, plataformas e padrões
– Realize mediação através de protocolos e mapeamento de esquemas (schema
mapping)
• Clientes necessitam de uma maneira para:
Conectar a pontos terminais Controle & acesso seguro
Barramento de Controle de
Serviços Acesso
42. Serviços .NET oferecem soluções
para desenvolvedores enfrentando estes problemas
Terminais de Conexão
Service Bus
Barramento de Serviços Access Control Service
• Expõe serviços RESTful ou SOAP na Internet • Authorization management and federation
através de firewalls e limites NAT infrastructure firewall
firewall
• Communicação bi-direcional entre • Provides internet-scope federated identity
NAT
integration for distributed applications
aplicações e serviços por meio de interface
inter-operavel • Use it to
• Secure Service Bus communications
• Permite escolher relés, filas roteadores e
• Manage user-level access to apps across
outros padrões e tipos de mensagem
organizations and ID providers
• Permite escalabilidade natural e
exequibilidade acompanhando crescimento
de aplicações e serviços
Sua aplicação Aplicação de Cliente/Parceiro
43. Serviços .NET são Provedores de Soluções
Controle de Acesso
Access Control Service
Serviço de Controle de
1. Define access 3. Map input claims
control rules for a to output claims
customer
Service Bus
Acesso
•Network abstraction and virtualization infrastructure •Integra autorizações em aplicações com a finalidade de
•Enables many common shapes of communication in an controlar “o que os usuários tem autorização para fazer”
efficient and interoperable manner •Integra em um só local múltiplos sistemas de identificação
•Use it to
6. Check claims
através de organizações e provedores de ID
•Connect applications across any network topology, including •Permite aplicar regras de controle de acesso com granulação
firewalls and NAT boundaries
fina e simplificadas
•Exchange data between loosely coupled applications
•Comunicações seguras no Barramento de Serviços
•Permite elevada escalabilidade, com naturalidade e eficiência,
5. Msg w/token independentemente do crescimento das aplicações e serviços
Your app Customer/partner users & apps
44. Capacidade do Barramento de Serviços
• Escopo de abrangência da Internet e redes em geral, ligando IP NATs e
Firewalls com controle de acesso em todos os sistemas federados
– Comunicação tipo Listen/Send a partir de qualquer dispositivo conectado à
rede
– Escopo da Internet para qualquer terminal, por “endpoint Naming” e
Descoberta
– NAT/FW Traversal via TCP, TCP/Direct, e HTTP Web Streams
Espaço de
Redes B
Privativas ACS
ACS
Espaço da
A ACS D
Internet
ACS
ACS
C
45. Barramento de Serviços: Capacidades Específicas
• Transferência de dados brutos e estruturados, permitindo
uso de qualquer forma comum de comunicação
– Dados Brutos, Texto, XML, JSON, …
– Datagramas, Sessões, Mensagens Correlacionadas
– Unicast, Multicast
A B Octet-Streams
Texto
XML
A B SOAP
JSON … …
XML-
RPC
…
A B
46. Barramento de Serviços: Capacidades Específicas
• Mensageria de primitivos Built-In, para comunicação
temporária desacoplada, roteamento e processamento de
mensagens
– Tradução para receptores ocasionalmente conectados do tipo
Push/Pull
– Metodos publish/subscribe e processamento de mensagem (após
V1)
Push Pull
A B
Push
B
Push
C
A
D
E
47. Padrão: Notificação de Fan-Out
(Datagramas tipo Sessionless Unicast ou Multicast)
Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine
“Worker Role” ACS App
App Instance ACS Instance
ACS ACS
unicast unicast ACS ACS ACS
multicast
NATs
ACS ACS
Cliente Cliente Cliente Cliente Cliente Cliente
48. Padrão: REST Resource Management
(Request/Response HTTP/HTTPS c/ payloads arbitrarios)
Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine
Storage Storage Storage
App App App
Instance Instance Instance
ACS ACS
POST, PUT, DELETE POST, PUT,
DELETE POST
ACS
PUT
POST, PUT, DELETE DELETE
ACS
ACS
GET
On-Demand „Pull‟ Sync
Cache
Continuous „Push‟ Sync
On-Premise App(s)
49. Padrão: Troca de Documentos
(session-bound, app-level ack‟d em transfer. de documentos +
notificações)
Hosted In-House Outsourced
ACS
Storage Storage Storage
Fronteira de Sistema de Estoque
Sistema de
E-Commerce / Remessa
Pedidos
Pronto
Embarcado
PO ACS SO ACS
Entregue
ACS
ACK ACK
ACS
Pedido Aceito
Experiência do Web Pedido processado Experiência do
Client Cliente HiFi
50. Padrão: DMZ Externo
(qualquer estilo de comunicação, atravessamento NAT para TCP e HTTP/S)
Home Datacenter Interno
Storage Storage
Storage Devices
Enterprise
Enterprise App Enterprise
App
Home Automation Instance App Instance
Instance
or Home Media
Server
Balanceamento / Filter Reverse Proxy
ACS ACS ACS
http(s) / net.tcp
net.tcp/direto
Experiência Web ou Experiência Web ou
Hi-Fi Cliente Hi-Fi Cliente
51. Padrão: Integrar Qualquer Coisa
(Sessão limitada, tunelamento de binário bruto para transporte)
Windows Azure, Datacenter, Hosting, Amazon EC2 (Windows)
Socket Agent NP Agent
App ASP.NET J2EE, JDBC,
Instance ADO.NET JMS
Socket HTTP/HTTPS TDS
Passthrough Passthrough Passthrough
ACS ACS
w/ URI Rewriting
Socket Bridge HTTP Bridge NP Bridge
Exchange/Mail (SMTP/IMAP)
Active Directory (LDAP) ERP, CRM, Custom Apps
System Center (SNMP) .NET, J2EE, ROR, PHP SQL
… … Server
Infraestrutura On-Premise Aplicações & Serviços Dados On-Premise