SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
Service Oriented Front-End Architecture
por Cristiano Gomes
Neste post eu quero propor uma discussão sobre Presentation Architecture,
mais especificamente sobre front-end web, com processamento client-side (no
browser) e consumindo serviços (XML/JSON, SOAP, REST, WebSockets,
etc,).
Para que possamos perceber todo o potencial dessa abordagem, devemos
entender as vantagens e as implicações (trade-offs) de cada uma de suas três
características básicas:
§ Web;
§ Processamento client-side (browser);
§ Consumo de serviços.
Vamos lá!
Web: As principais tecnologias web - HTML, CSS e JavaScript, são, de modo
geral, padronizadas e independentes de fornecedor. De tal sorte que a mesma
página construída com tais tecnologias pode ser visualizada da mesma
maneira em diferentes browsers e diferentes sistemas operacionais (incluindo
o mundo mobile/tablets). A curva de aprendizado para estas tecnologias é tão
curta ou menor do que a curva de aprendizado para linguagens de
programação populares como C# ou Java, que tipicamente possuem diversos
módulos e frameworks. Na minha opinião, uma vantagem importante (talvez
a principal) para nós, provedores de soluções para diferentes clientes, é que a
mesma base de conhecimento pode ser empregada em diferentes cenários e
clientes (o mesmo não é possível com ferramentas de fornecedores, que
mudam de versão para versão, por vezes exigindo considerável capacitação
adicional). É notável a existência de limitações para aplicações web, com
relação ao uso/consumo de recursos locais (na máquina cliente). É verdade
que tais restrições podem ser contornadas de diferentes maneiras, porém,
utilizando outras tecnologias para tanto.
Processamento client-side (browser): Realizar o processamento
necessário para apresentar conteúdo ao usuário e tratar suas entradas e
eventos, até então era uma tarefa para o servidor de aplicações. Escalar uma
infraestrutura de servidores de aplicações é uma tarefa que poucos clientes
conseguem realizar de modo apropriado. São inúmeros os casos de problemas
de desempenho causados por mal dimensionamento ou má configuração da
infraestrutura responsável por aplicações web. Além do processamento, tais
aplicações consomem grande volume de memória para armazenar objetos na
sessão do usuário. Distribuir esse processamento e carga de objetos entre os
clientes da aplicação desonera consideravelmente a infraestrutura. Ou seja,
todo o MVC fica na camada cliente (no browser).
Consumo de serviços: As vantagens de expor funcionalidades em forma de
serviços estão relacionadas a princípios básicos da construção de softwares,
como o encapsulamento e desacoplamento. O tema serviços é bastante amplo,
por isso, me limitarei aos aspectos relacionados à exposição de
funcionalidades para alimentar aplicações web. Talvez em um outro post
possamos falar especificamente sobre SOA, API e afins. Sob este aspecto, os
serviços cumprem um papel simples, provendo dados e funcionalidades à
camada de apresentação, representando os pontos de acesso aos diferentes
processos, sistemas, funcionalidades e dados.
A percepção que tenho é de que a união destas três características nos permite
entregar aplicações que não dependem da plataforma tecnológica, distribuem
a carga de processamento e preservam recursos nos servidores, rapidamente
conferem ao usuário um ar de renovação tecnológica e atendem a diversos
canais/dispositivos . Eu explico.
Aplicações que não dependem da plataforma tecnológica, uma vez que as
principais plataformas do mercado, como Java e .NET, estão aptas à
construção e entrega de serviços, sejam eles pertencentes a uma
arquitetura orientada a serviços tradicional ou mesmo serviços construídos
de forma tática, para atender requisitos funcionais específicos e ad-hoc.
Distribuem a carga de processamento e preservam recursos nos servidores
porque, diferente de tecnologias como JSP, JSF, PHP ou ASP.NET, o
conteúdo estático e dinâmico não é preparado no lado servidor, mas sim no
cliente (browser). Utilizando JavaScript através de frameworks ou código
customizado, todo o conteúdo dinâmico é recuperado, tratado e apresentado
através da camada cliente – o browser.
Rapidamente conferem ao usuário um ar de renovação tecnológica, pois o
desenvolvimento web traz resultados visuais impactantes quando aliado a
disciplinas como identidade visual, usabilidade e experiência do usuário.
Atendem a diversos canais/dispositivos ao desenvolvermos aplicações
utilizando as tecnologias mencionadas previamente (HTML, CSS e JavaScript)
e utilizando o conceito de Responsive Design, ou Design Responsivo, que
prevê a adaptação do formato e do conteúdo de uma página às dimensões do
dispositivo cliente, podendo ser um desktop, um tablet ou um smartphone.
	
  

Mais conteúdo relacionado

Mais procurados

Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.Valdeir Frizzera
 
Modelagem de sistemas da informação – aula 03 mai2011
Modelagem de sistemas da informação – aula 03 mai2011Modelagem de sistemas da informação – aula 03 mai2011
Modelagem de sistemas da informação – aula 03 mai2011Universal.org.mx
 
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...eneck
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
03 arquitetura-cliente-servidor
03   arquitetura-cliente-servidor03   arquitetura-cliente-servidor
03 arquitetura-cliente-servidorConcurseira Le
 
Bpm Automacao De Processos
Bpm   Automacao De ProcessosBpm   Automacao De Processos
Bpm Automacao De ProcessosMarcos Yonamine
 
Aula01 arquitetura clienteservidor
Aula01 arquitetura clienteservidorAula01 arquitetura clienteservidor
Aula01 arquitetura clienteservidorMarlon CP
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overview4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overviewqualidatavix
 
Apresentação ti pdf
Apresentação ti pdfApresentação ti pdf
Apresentação ti pdflanepb
 
Controlando cargas de trabalho com o resource governor no SQL Server 2014
Controlando cargas de trabalho com o resource governor no SQL Server 2014Controlando cargas de trabalho com o resource governor no SQL Server 2014
Controlando cargas de trabalho com o resource governor no SQL Server 2014Marcos Freccia
 
Cliente e servidor
Cliente e servidorCliente e servidor
Cliente e servidorDavi Silva
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvcTadeu Matos
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemCloves Moreira Junior
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Glauco Vinicius Argentino de Oliveira
 
Apostilas modelo cliente servidor
Apostilas   modelo cliente servidorApostilas   modelo cliente servidor
Apostilas modelo cliente servidorDaniel Silveira
 

Mais procurados (20)

Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.
 
Mda arq cliente_serv
Mda arq cliente_servMda arq cliente_serv
Mda arq cliente_serv
 
Modelagem de sistemas da informação – aula 03 mai2011
Modelagem de sistemas da informação – aula 03 mai2011Modelagem de sistemas da informação – aula 03 mai2011
Modelagem de sistemas da informação – aula 03 mai2011
 
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
03 arquitetura-cliente-servidor
03   arquitetura-cliente-servidor03   arquitetura-cliente-servidor
03 arquitetura-cliente-servidor
 
Bpm Automacao De Processos
Bpm   Automacao De ProcessosBpm   Automacao De Processos
Bpm Automacao De Processos
 
Aula01 arquitetura clienteservidor
Aula01 arquitetura clienteservidorAula01 arquitetura clienteservidor
Aula01 arquitetura clienteservidor
 
Silverlight
SilverlightSilverlight
Silverlight
 
Microservices 2
Microservices 2Microservices 2
Microservices 2
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overview4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overview
 
Apresentação ti pdf
Apresentação ti pdfApresentação ti pdf
Apresentação ti pdf
 
Controlando cargas de trabalho com o resource governor no SQL Server 2014
Controlando cargas de trabalho com o resource governor no SQL Server 2014Controlando cargas de trabalho com o resource governor no SQL Server 2014
Controlando cargas de trabalho com o resource governor no SQL Server 2014
 
Cliente e servidor
Cliente e servidorCliente e servidor
Cliente e servidor
 
Aula 1 - ASP
Aula 1 - ASPAula 1 - ASP
Aula 1 - ASP
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvc
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvem
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
 
Apostilas modelo cliente servidor
Apostilas   modelo cliente servidorApostilas   modelo cliente servidor
Apostilas modelo cliente servidor
 

Semelhante a Service Oriented Front-End Architecture

Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...tdc-globalcode
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...Marcelo Palladino
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWSDextra
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...tdc-globalcode
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Joana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático wwwJoana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático wwwJoana Costa
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambMicrosoft Brasil
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com HolyLatinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com HolyDextra
 
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Leandro Guimarães
 
Introdução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento WebIntrodução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento WebAnderson Luís Furlan
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 

Semelhante a Service Oriented Front-End Architecture (20)

Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWS
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
 
JavaEE
JavaEEJavaEE
JavaEE
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Joana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático wwwJoana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático www
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcamb
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
MODELO ASP
MODELO ASPMODELO ASP
MODELO ASP
 
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com HolyLatinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com Holy
 
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
 
Intro aspnet webapi
Intro aspnet webapiIntro aspnet webapi
Intro aspnet webapi
 
Curso asp - basico
Curso   asp - basicoCurso   asp - basico
Curso asp - basico
 
Introdução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento WebIntrodução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento Web
 
Jsf
JsfJsf
Jsf
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 

Service Oriented Front-End Architecture

  • 1. Service Oriented Front-End Architecture por Cristiano Gomes Neste post eu quero propor uma discussão sobre Presentation Architecture, mais especificamente sobre front-end web, com processamento client-side (no browser) e consumindo serviços (XML/JSON, SOAP, REST, WebSockets, etc,). Para que possamos perceber todo o potencial dessa abordagem, devemos entender as vantagens e as implicações (trade-offs) de cada uma de suas três características básicas: § Web; § Processamento client-side (browser); § Consumo de serviços. Vamos lá! Web: As principais tecnologias web - HTML, CSS e JavaScript, são, de modo geral, padronizadas e independentes de fornecedor. De tal sorte que a mesma página construída com tais tecnologias pode ser visualizada da mesma maneira em diferentes browsers e diferentes sistemas operacionais (incluindo o mundo mobile/tablets). A curva de aprendizado para estas tecnologias é tão curta ou menor do que a curva de aprendizado para linguagens de programação populares como C# ou Java, que tipicamente possuem diversos módulos e frameworks. Na minha opinião, uma vantagem importante (talvez a principal) para nós, provedores de soluções para diferentes clientes, é que a mesma base de conhecimento pode ser empregada em diferentes cenários e clientes (o mesmo não é possível com ferramentas de fornecedores, que mudam de versão para versão, por vezes exigindo considerável capacitação adicional). É notável a existência de limitações para aplicações web, com relação ao uso/consumo de recursos locais (na máquina cliente). É verdade que tais restrições podem ser contornadas de diferentes maneiras, porém, utilizando outras tecnologias para tanto. Processamento client-side (browser): Realizar o processamento necessário para apresentar conteúdo ao usuário e tratar suas entradas e eventos, até então era uma tarefa para o servidor de aplicações. Escalar uma infraestrutura de servidores de aplicações é uma tarefa que poucos clientes conseguem realizar de modo apropriado. São inúmeros os casos de problemas
  • 2. de desempenho causados por mal dimensionamento ou má configuração da infraestrutura responsável por aplicações web. Além do processamento, tais aplicações consomem grande volume de memória para armazenar objetos na sessão do usuário. Distribuir esse processamento e carga de objetos entre os clientes da aplicação desonera consideravelmente a infraestrutura. Ou seja, todo o MVC fica na camada cliente (no browser). Consumo de serviços: As vantagens de expor funcionalidades em forma de serviços estão relacionadas a princípios básicos da construção de softwares, como o encapsulamento e desacoplamento. O tema serviços é bastante amplo, por isso, me limitarei aos aspectos relacionados à exposição de funcionalidades para alimentar aplicações web. Talvez em um outro post possamos falar especificamente sobre SOA, API e afins. Sob este aspecto, os serviços cumprem um papel simples, provendo dados e funcionalidades à camada de apresentação, representando os pontos de acesso aos diferentes processos, sistemas, funcionalidades e dados. A percepção que tenho é de que a união destas três características nos permite entregar aplicações que não dependem da plataforma tecnológica, distribuem a carga de processamento e preservam recursos nos servidores, rapidamente conferem ao usuário um ar de renovação tecnológica e atendem a diversos canais/dispositivos . Eu explico. Aplicações que não dependem da plataforma tecnológica, uma vez que as principais plataformas do mercado, como Java e .NET, estão aptas à construção e entrega de serviços, sejam eles pertencentes a uma arquitetura orientada a serviços tradicional ou mesmo serviços construídos de forma tática, para atender requisitos funcionais específicos e ad-hoc. Distribuem a carga de processamento e preservam recursos nos servidores porque, diferente de tecnologias como JSP, JSF, PHP ou ASP.NET, o conteúdo estático e dinâmico não é preparado no lado servidor, mas sim no cliente (browser). Utilizando JavaScript através de frameworks ou código customizado, todo o conteúdo dinâmico é recuperado, tratado e apresentado através da camada cliente – o browser. Rapidamente conferem ao usuário um ar de renovação tecnológica, pois o desenvolvimento web traz resultados visuais impactantes quando aliado a disciplinas como identidade visual, usabilidade e experiência do usuário.
  • 3. Atendem a diversos canais/dispositivos ao desenvolvermos aplicações utilizando as tecnologias mencionadas previamente (HTML, CSS e JavaScript) e utilizando o conceito de Responsive Design, ou Design Responsivo, que prevê a adaptação do formato e do conteúdo de uma página às dimensões do dispositivo cliente, podendo ser um desktop, um tablet ou um smartphone.