• Nenhum resultado encontrado

Encontro de Arquitetos Belo Horizonte

N/A
N/A
Protected

Academic year: 2021

Share "Encontro de Arquitetos Belo Horizonte"

Copied!
69
0
0

Texto

(1)

Encontro de Arquitetos

Belo Horizonte

(2)

Agenda

Sessão 1: Arquitetura Web na plataforma Microsoft – Conceitos e Tendências

Waldemir Cambiucci - Arquiteto de Soluções Hora: 14:30 h – 16:00 h

Blog: http://blogs.msdn.com/wcamb

Coffee Break

Hora: 16:00 h – 16:30 h

Sessão 2: Arquitetura Web na plataforma Microsoft – Tecnologias e Recomendações

Luciano Condé – Arquiteto de Soluções Hora: 16:30 h – 18:00 h

(3)

Sessão 1: Arquitetura Web na

(4)

Objetivo da Sessão

Posicionar os recursos do mundo Web dentro

da visão Software + Serviços.

(5)

Visão Web segundo uma

(6)
(7)
(8)

Visão Software + Serviços

PC

WEB

PHONE

(9)

Forças do Software + Serviços

Web 2.0 e Redes Sociais

Aplicações RIA

Soluções LOB SaaS

(10)

Arquitetura Software + Serviços

a internet além da Web

Principais componentes:

Software Cliente

Software Aplicativo

Serviços de Infraestrutura

(11)

Fundamentos da Arquitetura

Físico, dedicado

Serviço único em hardware dedicado

Físico, compartilhado

Vários serviços em hardware dedicado

Físico, HPC

Hardware físico suportando cenário HPC

Virtual, único

Instância única de imagem virtual

Virtual, compartilhado

(12)

Serviços de Infraestrutura

Identidade e acesso

Baseada em diretórios, roles, declarações (CBA)

Sistema de mensagens

Barramento de serviços, Ponto a Ponto (P2P)

Armazenamento

Tradicional, Relacional, Não-estruturado

Workflow

(13)

Software Aplicativo

Colaboração

Pesquisa, Social, Conteúdo

Monetização

Transação, Licenciamento, Publicidade, Assinatura

Composição

Composição de serviços, LOB, regras de negócio

Business Intelligence

Painel(Dashboards), Relatórios, Mining

Aplicativo

(14)

Software Cliente

Cliente Web

Web Browser, Conteúdo Rico

Cliente Móvel

Baseado em Web, Conteúdo Rico, Office, SMS/IM, Voz

Cliente PC

Office, SmartClient, Desktop, Gadgets, Mensagens instantâneas

Cliente Embarcado (Embedded)

(15)

Arquitetura Software + Serviços

Software Aplicativo Software Cliente Cliente PC Browser Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role) Presentation (Web Role)

SMTP SMS SOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & Access Messaging

Storage Workflow

Async Queue/Bus Peer to Peer

Blob Event Based Worker Based

Relational File

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable Authentication Authorization

On Premises Hoster Cloud

(16)

Arquitetura Software + Serviços

Um site Web dinâmico on-premise (infraestrutura local)

Software Aplicativo Software Cliente

Cliente PC

Browser

Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role) Presentation (Web Role)

SMTP SMS SOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & Access Messaging

Storage Workflow

Async Queue/Bus Peer to Peer

Blob Event Based Worker Based

Relational File

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable Authentication Authorization

On Premises Hoster Cloud

(17)

Arquitetura Software + Serviços

Um site Web dinâmico na nuvem

Software Aplicativo Software Cliente

Cliente PC

Browser

Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role) Presentation (Web Role)

SMTP SMS SOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & Access Messaging

Storage Workflow

Async Queue/Bus Peer to Peer

Blob Event Based Worker Based

Relational File

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable Authentication Authorization

On Premises Hoster Cloud

(18)

Arquitetura Software + Serviços

Uma solução SaaS baseada na nuvem

Software Aplicativo Software Cliente

Cliente PC

Browser

Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role) Presentation (Web Role)

SMTP SMS SOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & Access Messaging

Storage Workflow

Async Queue/Bus Peer to Peer

Blob Event Based Worker Based

Relational File

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable Authentication Authorization

On Premises Hoster Cloud

(19)

Visão Software + Serviços

A Internet além da Web:

Colaboração e Redes Sociais (Web 2.0) Diferentes dispositivos

Orientação a serviços Software como serviços

Diferentes protocolos e formatos de dados

Combinação de infraestruturas (poder da escolha)

(20)

Combinação de arquiteturas

App Arch Guide 2.0

Tipos de Aplicações Estilos de Arquitetura

Componentes de Arquitetura

patterns & practices: App Arch Guide 2.0

(21)

Visão Web segundo as tecnologias

disponíveis

(22)

Arquitetura Software + Serviços

Componentes Web Software Aplicativo Software Cliente Cliente PC Browser Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role) Presentation (Web Role)

SMTP SMS SOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & Access Messaging

Storage Workflow

Async Queue/Bus Peer to Peer

Blob Event Based Worker Based

Relational File

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable Authentication Authorization

On Premises Hoster Cloud

(23)

Tecnologias Web na plataforma Microsoft

Software Cliente (Browser, PC, Mobile, Dispositivos, Serviços/Bus)

ASP.NET WebForms Silverlight WPF ASP.NET MVC Windows Live Web Roles ASP.NET AJAX Dynamic Data Interface de Serviços Windows Communication Foundation (WCF) ADO.NET

Data Services .NET RIA Services

Serviços de Plataforma .NET Framework ASP.NET Services SharePoint Search Server Live Services .NET Services Capacidades de Infraestrutura

(24)

Aplicações Web com ASP.NET e

HTML

(25)

Aplicações ASP.NET

ASP.NET suporta vários tipos de aplicações WEB

(26)

ASP.NET WebForms

São basicamente soluções 2-Tier, envolvendo

diversas interações com o servidor.

(27)
(28)

ASP.NET WebForms

As páginas são criadas no servidor e enviadas para o browser a cada POSTBACK.

Pontos Fortes:

Grande compatibilidade com inúmeros browsers (HTML) Facilidade de desenvolvimento e suporte RAD – Rapid Application Development (drag and drop)

Compatibilidade e integração com aplicações legadas

Pontos Fracos:

Responsividade: o usuário precisa aguardar o postback de cada página para poder interagir;

(29)

ASP.NET AJAX

Asynchronous JavaScript And XML

Modelo de programação para aplicações Web ricas, baseado em JavaScript executado no browser, com interações

assíncronas com o servidor e tratamento de eventos no cliente.

Web Application Browser DB Serviços Outras Aplicações Camada de Acesso a Dados Lógica da Aplicação Serviços HTML Lógica de Apresentação Lógica de Apresentação

(30)
(31)
(32)

ASP.NET AJAX Server-Side

Renderização feita no servidor!

As páginas são criadas no servidor e

enviadas (parcialmente) por requisições AJAX em HTML.

Requisição inicial: HTML

(33)

ASP.NET AJAX Client-Side

Renderização feita no cliente!

Menor roundtrip entre o cliente e o servidor Menor bandwidth

Maior responsividade

HTML + JSON

(34)

ASP.NET AJAX

Pontos Fortes:

Aplicações com menor tempo de resposta Interfaces mais ricas, próximas ao desktop

Deployment simplificado em relação ao ambiente desktop

Compatibilidade com inúmeros browsers

IE, Mozilla FireFox, Safari (Mac OS), Opera, Konqueror

Maior interação com o servidor

Dados são carregados sob demanda, sem onerar o carregamento inicial da página

Utilização mais eficiente de banda

(35)

ASP.NET AJAX

Pontos Fracos:

Grande número de decisões sobre a arquitetura da aplicação

Componentes client-side ou server-side?

Qual a granularidade das interações entre cliente e servidor?

Quando passar dados e quando passar conteúdo? Como dividir o modelo em camadas?

Quando usar XML e quando usar JSON?

Patterns para paginação, ordenação, filtro, etc.

Necessidade de maior nível de capacitação

(36)

jQuery

Criado por John Resig (Open Source, 2006) Suportado na plataforma Microsoft

Incluído no Visual Studio 2008 e 2010

19KB JQuery JavaScript library

Pontos Fortes:

Total integração com ASP.NET AJAX e ASP.NET MVC. Síntaxe Javascript facilitada (seletores mais simples)

Suporte IE6+, FF2.0+, Safari 3.0+, Opera 9+, Chrome 1.0+

Pontos Fracos:

(37)

ASP.NET AJAX Control Toolkit

2⁰ lugar em download de projetos no CodePlex.

Oferece controles:

Server-Side e Extenders Client-Side e Behaviors

Disponível como Client-Only Library:

AjaxControlToolkit-ScriptFilesOnly.zip

Source - May 2009 Release

(38)

ASP.NET MVC

Model View Controller Pattern

Controller

View

Model

Request 1

(39)

URL Routing

Browser Controller Model View

Get / Post Invoke Action Get Data Lookup View Render Html Lookup Controller

ASP.NET MVC

(40)

ASP.NET MVC

Model View Controller

Oferece uma clara separação entre navegação,

lógica e renderização de tela.

Separation of Concerns

Motivações para o uso de MVC:

Maior controle sobre o HTML gerado.

Maior controle sobre a manutenção de estado. Maior suporte a testes e TDD – Test Driven

Development.

(41)

ASP.NET MVC

Model View Controller

Pontos Fortes:

Permite uma maior testabilidade e suporte ao TDD

Testes facilitados

Total controle sobre código HTML e JavaScript Páginas menores (sem ViewState)

Recurso de Routing já disponível no .Net 3.5 Maior integração com frameworks Javascript

Suporte integrado ao jQuery (jQuery Intellisense)

(42)

ASP.NET MVC

Model View Controller

Pontos Fracos:

Não compatível com o modelo RAD – Rapid

Application Development

Sem o suporte ao drag and drop de controles visuais

Mais difícil de integrar com o Web Designer O desenvolvedor precisa conhecer HTML, JavaScript, CSS, HTTP, XML

(43)

Aplicações Web com RIA

(44)

O que é uma aplicação RIA?

Rich Internet Application

Um cruzamento entre uma aplicação baseada em brower (web) e uma aplicação desktop tradicional

Melhores aspectos do mundo Web (browser)

Deployment facilitado

• Sem instalação no cliente • Versionamento instantâneo • Navegação via browser, etc.

Melhores aspectos do mundo Desktop (local)

• Processamento local • Cenários desconetados • Interface rica, etc.

(45)

Aplicação Silverlight / RIA

RIA evita as interações do modelo Web, usando

uma lógica de negócio no lado do cliente.

Web Application Browser Rich Internet Application

DB Serviços Outras Aplicações Camada de Acesso a Dados Lógica da Aplicação Serviços

HTML NetworkApresentaçãoLógica de

(46)

Visão do .NET RIA Services

Simplificar o desenvolvimento RIA

N-tier é difícil e não trivial/natural.

Fornecer a mesma produtividade do estilo

ASP.NET/RAD para o desenvolvimento RIA

Foco em cenários fim-a-fim e soluções.

Criar uma visão unificada da aplicação RIA

Lógica no cliente e no servidor, através de um middleware de operações.

(47)

.NET RIA Services

Middleware para operações de uma

aplicação RIA

.NET RIA Services Samples

(48)

.NET RIA Services

(49)

.NET RIA Services

Arquivo gerado automaticamente para o

proxy no lado do cliente

Solução no lado do servidor, com o

DomainService e o EDMX Model

Solução no lado do cliente, com o proxy para acesso às regras de negócio exportadas Deployment facilitado

(50)

.NET RIA Services

DomainContext gerado automaticamente pelo .NET

(51)

.NET RIA Services

Pontos Fortes:

Middleware completo para a construção de aplicações RIA com Silvelight 3.0.

Facilidade no tráfego de dados via DomainServices e Entidades (paginação, ordenação, filtros, etc).

Geração automática do proxy cliente para acesso às operações do lado do servidor.

Pattern extensível, atendendo diversos tipos de interfaces clientes e fontes de dados no servidor.

Pontos Fracos:

Ainda em CTP

Primeira carga da aplicação deve ser avaliada (download) Cuidados na customização do proxy gerado

(52)

Aplicações Web com o ambiente

Windows Azure

(53)

O que é a nuvem?

(54)

Live Consumidor & SOHO Online De pequenas a grandes empresas

Variedade de serviços online

Plataforma de Serviços Azure

Serviços e Ferramentas

para

(55)

O que é o Windows Azure?

(56)

CONTROLE E GERENCIAMENTO AUTOMATIZADO

Fabric: A Coleção dos Servidores

8 VMs por servidor

Cada VM roda um Hypervisor Windows Server 2008 customizado

Fabric Controller é responsável pelo gerenciamento

Você diz o que fazer— ele trata do como fazer

Faz o scale up, scale down, update ou roll back da aplicação para uma versão prévia de forma automática

(57)

Aplicações sobre o Windows Azure

Web Role e Worker Role interagindo via Queues e Tables. Internet Storage Tables LB Blobs Worker Service Worker Service Worker Service Web Site

(ASPX, ASMX, WCF)Web Site (ASPX, ASMX, WCF)Web Site(ASPX, WCF)

Queue

(58)

Web Role / Windows Azure

Pontos Fortes:

Cenário de soluções de alta escalabilidade, com provisionamento dinâmico.

Suporte Web Role para todos os recursos ASP.NET

Web Forms, MVC, Silverlight, jQuery, AJAX, SOAP, REST.

Pontos Fracos:

Hosting apenas no ambiente da nuvem (Azure).

(59)

Web Role no Windows Azure

Projeto em Staging com diversas roles

Projeto em produção com uma

única instância Web Role

(60)

Um mapa de decisão entre

tecnologias…

(61)

Mapa de decisão Web…

Os números são ilustrações apenas

(62)

Mapa de decisão Web…

Produtividade no desenvolvimento Manutenção Customização Desempenho Curva de Aprendizagem Paginação, Filtros, Extensões Efeitos Visuais, Animação, etc. Testabilidade Facilidade de depuração Modelo de segurança … Suporte a cenários off-line Modelo de cache integrado Respeito a padrões Web Controle sobre o HTML gerado ASP.NET WebForms

ASP.NET AJAX Server-Side ASP.NET AJAX Client-Side ASP.NET MVC

ASP.NET Dynamic Data Silverlight 3.0

(63)
(64)

Conclusões

A visão Software + Serviços envolve a

Internet além da Web…

Para a escolha da tecnologia certa devemos

considerar questões como:

Reusabilidade, Confiabilidade, Extensibilidade Manutenabilidade, Segurança, Testabilidade,

Diminuição da complexidade geral do sistema, etc.

Assuntos relacionados que não vimos hoje:

Composite Application Guidance for WPF & Silverlight Aplicações Web sobre SharePoint Server

(65)

Referências

ASP.NET WebForms 4.0 http://www.asp.net/learn/whitepapers/aspnet40 ASP.NET MVC http://www.asp.net/mvc/ ASP.NET AJAX http://www.asp.net/ajax/ jQuery http://jquery.com/

.NET RIA Services

http://code.msdn.microsoft.com/RiaServices

Windows Azure

(66)

Referências (cont.)

Application Architecture Guide 2.0

http://www.codeplex.com/AppArchGuide

Web Services Security Guidance

http://www.codeplex.com/WCFSecurityGuide

Composite Application Guidance for WPF & Silverlight

http://www.codeplex.com/CompositeWPF

Performance Testing Guidance for Web Applications

http://www.codeplex.com/PerfTestingGuide

Silverlight Toolkit

http://www.codeplex.com/Silverlight

ASP.NET AJAX Control Toolkit

(67)
(68)
(69)

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should

Referências

Documentos relacionados

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

Nesta aba, são efetuadas as consultas de títulos disponíveis para compra ou venda , inclusão e alteração de item na cesta, localizada na Tela Status de Ordem na

Quando ocorre falha no controle, isso pode ser devido a erro na dose, ou seja, dose menor do q u e a recome n dada, a época de aplicação pode ter sido inadequada, pode ter hav i do a

e dos gramáticos (citados no subitem anterior) quanto às alterações eventuais que recebem certas formas de alguns verbos portugueses, uma padronização do referido

O valor de retorno não é necessário ser definido, e pode ser de qualquer tipo, inclusive nenhum. Uma função não pode retorna mais de um valor, isto só é possível se o valor

Através da comparação com o alicate amperímetro e a bobina de fluxo (exclusividade CSI), pôde-se observar que o novo sensor bobina de fluxo implementado dentro do motor elétrico

Marisol Dominguez Muro, Presidente do CRF-PR, a Prescrição Farmacêutica, surge como uma nova conquista para a categoria, pois constitui uma das atribuições clínicas

Controlo da força do arco (apenas LINC ### -SA): É uma função utilizada durante a soldadura manual com arco elétrico (MMA) que permite aumentar temporariamente a corrente de