a nova geração da arquitetura web para a era da nuvem
TRANSCRIPT
![Page 1: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/1.jpg)
A NOVA GERAÇÃO DA
ARQUITETU
RA WEB PA
RA A ERA
DA NUVEM
P O R : CL O V E S M
O R E I RA J U
N I OR
![Page 2: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/2.jpg)
QUAL PÚBLICO É INDICADO ESTA PALESTRA?• Qualquer pessoa interessada em tecnologia web que tenha uma
compreensão básica de aplicações web e Arquitetura Orientada a Serviço (SOA)
![Page 3: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/3.jpg)
HISTÓRIA DA
ARQUITETU
RA DE
APLICAÇÕES W
EB
![Page 4: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/4.jpg)
Anos 90
Páginas HTML Estáticas
CGI ServletsFrameworks MVC
Motores de Templates Web
AJAX
SOFEA
Web 1.0
Web 2.0
Mobile
Hoje
![Page 5: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/5.jpg)
MOTORES DE TEMPLATES WEB• Código incorporado dentro de elementos HTML estáticos• Mistura de HTML estático e dinâmico• Arquitetura de primeira geração• Exemplos:• Java Server Pages (JSP)• PHP• Active Server Pages (ASP)
![Page 6: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/6.jpg)
![Page 7: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/7.jpg)
FRAMEWORKS MVC• Padrão Model View Controller• Frameworks no lado servidor (Server- Side)• Arquitetura de Segunda Geração• Exemplos:• ASP.NET MVC Framework (.Net)• Struts, Spring MVC (Java)• Ruby on Rails (Ruby)• Django (Phyton)• Grails (Groovy)
![Page 8: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/8.jpg)
![Page 9: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/9.jpg)
AJAX• Asynchronous JavaScript And XML• Alterações de conteúdo dinâmico sem recarregar a página
inteira• Aplicativos interativos e dinâmicos da web se aproximando da
experiência de interação rica na parte client-side (Instrumentação para o RIA – Rich Internet Application)
• HTML/CSS + DOM + XmlHttpRequest Object + JavaScript + JSON/XML
![Page 10: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/10.jpg)
PROCESSOS DE APLICAÇÕES WEB• Download da Aplicação• Código (JavaScript, HTML, Applets, Flash) a ser baixado no cliente
(web browser)
• Fluxo de Apresentação• Processamento visual dinâmico da UI (mudança de telas, novas
telas, etc) em resposta à entrada do usuário e alterações de estado de dados
• Interação de Dados• A troca de dados entre dois componentes de software ou camadas.
(busca, atualizações, recuperação, etc)
![Page 11: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/11.jpg)
PROCESSO DE ALOCAÇÃO PARA FRAMEWORKS DE MOTORES DE TEMPLATES WEB
![Page 12: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/12.jpg)
HOJE EM DIA• Motores de Template Web + Frameworks MVC + uma pitada
de Ajax
![Page 13: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/13.jpg)
SOA & NUVEM
![Page 14: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/14.jpg)
SOFEA
U M E S T I L O A R Q U I T E T U R A L P A R A A P L I C A Ç Õ E S W
E B E M
A MB I E N T E S P A R A S E R V I Ç O
![Page 15: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/15.jpg)
SOFEA• Service Oriented Front End Architecture• Como construir aplicações Front-End em um mundo orientado à
serviços.• Quem definiu isso aí?• Ganesh Prasad, Rajat Taneja, Vikrant Todankar
• Estilo Arquitetural• Não uma implementação
• Prasad propôs que a revolução SOA será estar atrás em aplicações front-end/UI’s.
![Page 16: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/16.jpg)
Viável porque...• Maturidade do
paradigma SOA em teoria e prática.
• Avanços em tecnologias de cliente com base em navegador, especialmente mecanismos de navegadores com suporte à JavaScript e AJAX toolkits
Necessários porque...
• SOA é o mecanismo de entrega de fato para serviços baseados em nuvem (Cloud e SOA são tecnologias complementares)
• Diversidade de plataformas de cliente• Dominação crescente de
clientes móveis
SOFEA É AGORA...
![Page 17: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/17.jpg)
ARQUITETURA EMPRESARIAL WEB LEGADA
Arquitetura típica de aplicações empresariais web
Navegador Web
Lógica de Negócios e Persistência
Construção Lógica da
Página Web (JSP, PHP, ASP, etc.)
Cliente Servidor
![Page 18: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/18.jpg)
ARQUITETURA SOFEA
Navegador Web
Lógica de Negócios e Persistência
Construção Lógica da
Página Web (JSP, PHP, ASP, etc.)
Cliente Servidor
Navegador Web
Lógica de Negócios e Persistência
SERVIÇOS
![Page 19: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/19.jpg)
PROCESSOS WEB E SOFEA
![Page 20: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/20.jpg)
PRINCÍPIOS DE SOFEA• Donwload da Aplicação, Comunicação de dados (Data
Interchange) e Fluxo de Apresentação deve ser desacoplado.• Nenhuma parte do cliente deve ser chamado, gerado ou modelado
a partir do lado do servidor.• O Fluxo de Apresentação é apenas uma preocupação do lado
cliente.• Toda a comunicação do aplicativo com o servidor deverá
estar usando serviços (REST, SOAP, etc).• O padrão MVC pertence ao cliente, não ao servidor.
![Page 21: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/21.jpg)
• Escalabilidade• O servidor tem menos trabalho a fazer;
não realiza mais a geração da camada de apresentação, basta fornecer um serviço.
• Melhor resposta do usuário• Baixa Latência – Usuários finais felizes :D• Após o download do aplicativo, nenhuma
apresentação é transportado sobre a rede, apenas os dados de negócios
• Alto ROI• Expandido o espaço de oportunidades,
devido à natureza reutilizável inerente de SOA
• Ajuste natural em abmientes SOA e para a Nuvem
• Modelo de programação organizada• Desenvolvedores Client-side se
concentram na UI.• Desenvolvedores Server-side se
concentram nos serviços.
• Aplicações Offline• Quando houver falhas de rede, o cliente
é desacoplado e pode mudar dinamicamente sua escolha sobre os objetos de modelo, podendo usar uma base local ou quando a rede voltar poderá comunicar com os serviços.
• Interoperabilidade• Integração mais fácil com menor
sobrecarga de múltiplas plataformas.• Os clientes não se importam se os
serviços são Java, C #, Python, Cobol ou uma mistura heterogênea
BENEFÍCIOS DE SOFEA
![Page 22: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/22.jpg)
IMPLEMENTAÇÃO DE ARQUETIPO DE CLIENTE PARA SOFEA
![Page 23: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/23.jpg)
PONTOS À SEREM OBSERVADOS• O App Cliente é a Prioridade número um na definição da arquitetura,
não deve ser pensado nisto depois.• Usar ferramendas maduras no desenvolvimento client-side.• Ex: AngularJS, KnockoutJS, jQuery, etc...
• O RESTful é o modelo natural para comunicação em sistemas SOFEA• Arquitetos e Desenvolvedores devem definir uma comunicação de
forma assíncrona entre o servidor e a camada de cliente.• Aproveitar ao máximo as tecnologias mais recentes se for apropriado• HTML5, Webh Workers e WebSockets.
• Comece os testes de compatibilidade cross-browser no início do ciclo de desenvolvimento
• SOFEA é uma excelente escolha para ambientes que tenham largura de banda restrita ou consumo limitado de banda.
![Page 24: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/24.jpg)
CONTATO• Git: clovesmjunior• E-mail: [email protected]• Sites :• www.squaresystems.com.br• www.squaress.com.br• www.squaress.com
• Agradecimentos: Ao Designer José Mário pela nova identidade visual da SquareSystems. Link: http://josemarioramos.com.br/
![Page 25: A nova geração da arquitetura web para a era da nuvem](https://reader030.vdocuments.pub/reader030/viewer/2022020119/589d169f1a28ab61128b596f/html5/thumbnails/25.jpg)
REFERÊNCIAS BIBLIOGRÁFICAShttp://martinfowler.com/eaaDev/ModelViewPresenter.htmlhttp://
www.infoq.com/articles/ieee-software-engineeering-services-cloud-computing,http://jubyzacharias.blogspot.com.br/p/sofea.htmlhttp://www.smart-soft.com/downloads/articles/Life-above-the-Service-Tier-v1_1.pdfhttp://mvalente.eu/2007/11/03/a-future-web-development-framework-ui-controller/http://www.smart-soft.com/downloads/articles/sofea.htmlhttp://www.sei.cmu.edu/library/assets/presentations/nelson-saturn2013.pdfhttp://martinfowler.com/eaaDev/uiArchs.htmlhttp://www.wildcrest.com/Potel/Portfolio/mvp.pdfhttp://martinfowler.com/eaaDev/PresentationModel.htmlhttp://knockoutjs.com/documentation/observables.html