JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks...

Preview:

Citation preview

JBanana

TópicosTópicos

Arquitetura WEBArquitetura WEB ConceitosConceitos FrameworksFrameworks

ControllerControllerViewViewModelModel

Integração dos FrameworksIntegração dos FrameworksEstágio Atual , EvoluçãoEstágio Atual , Evolução

1.Requisição

7.Resposta

View

6. Acessa

4.RetornaDados

2.Invoca

5.Seleciona

DadosDB,

Objetos, LDAP,

Arquivosetc.

3.Acessa /Modifica

Model

Cliente

Padrão MVC para WEBPadrão MVC para WEB

Controller

Tecnologias UsadasTecnologias Usadas

1.Requisição

7.Resposta

View

6. Acessa

4.RetornaDados

2.Invoca

5.Seleciona

DadosDB,

Objetos, LDAP,

Arquivosetc.

3.Acessa /Modifica

Model

Cliente

Controller• HTMLHTML• DHTMLDHTML• XHTMLXHTML• JavaScriptJavaScript• JScriptJScript• VBScriptVBScript• DOM 1DOM 1• DOM 2DOM 2• DOM 3DOM 3

• Servlets APIServlets API

• XMLXML• VOVO• JavaJava BeansBeans

• JSP APIJSP API• XSLXSL• VelocityVelocity

• JDBC APIJDBC API• JTA/JTSJTA/JTS• JNDIJNDI• EJBsEJBs• OJBSOJBS• CORBACORBA• RMIRMI• SQL/OQLSQL/OQL

Frameworks MVCFrameworks MVC

Não Reinventar a RodaNão Reinventar a Roda Encapsulam ComplexidadeEncapsulam Complexidade Facilitam o Trabalho em EquipeFacilitam o Trabalho em Equipe Implementam os Padrões de ProjetosImplementam os Padrões de Projetos Customizáveis Customizáveis

Propriedades e Atributos (Configurações)Propriedades e Atributos (Configurações)HerançaHerança e Interfaces (Codificações) e Interfaces (Codificações)XMLsXMLs (Programação Declarativa) (Programação Declarativa)

Programação DeclarativaProgramação Declarativa

100111100010010101110010011110001001010111001001111000100101

<shape name=“cross”><block x=“1” y=“0” size=“2x4”/><block x=“0” y=“1” size=“4x4”/><block x=“1” y=“2” size=“2x4”/></shape>

Frameworks MVCFrameworks MVC

1.Requisição

7.Resposta

View

6. Acessa

4.RetornaDados

2.Invoca

5.Seleciona

DadosDB,

Objetos, LDAP,

Arquivosetc.

3.Acessa /Modifica

Model

Cliente

Controller

Controller

Frameworks - ControllerFrameworks - Controller

1.Requisição 2.Invoca

5.Seleciona

Cliente

Model

View

Interceptar requisições HTTP

Validação dos Parâmetros Recebidos

Selecionar Regra de Negócio

Selecionar uma Visualização

<step servletState="2" name="FiltroDeVoos"><extension javaClass="examples.reservaVoos.CargaCidadesExtension"/><nextStep servletState="3"/>

</step>

Invocando Model

<transformation> <viewl path="ponto/etc/xsl/reservaVoos" file="telaInicialReservaVoos.xsl"

contentType="text/html"/> <selection id="ServletState" value="2"/></transformation>

Invocando View

<attribute name="origem"> <simpleType baseType="string"> <propertie name="enumeration"

value=";Brasilia;Curitiba;Florianopolis;Fortaleza;Joinville"/> </simpleType></attribute>

Validando Dados

Frameworks - JBananaFrameworks - JBanana

Frameworks - JBananaFrameworks - JBanana

Frameworks MVCFrameworks MVC

1.Requisição

7.Resposta

View

6. Acessa

4.RetornaDados

2.Invoca

5.Seleciona

DadosDB,

Objetos, LDAP,

Arquivosetc.

3.Acessa /Modifica

Model

Cliente

Controller

Model

Frameworks - ModelFrameworks - Model

ClienteView

Receber parâmetros do Controller

Gravar e Recuperar Dados

Dados: Value Objects, Java Beans, XML

Controller

4.RetornaDados

3.Acessa /Modifica

DadosDB,

Objetos, LDAP,

Arquivosetc.

Model

Frameworks - JoltFrameworks - Jolt

ClienteView

Controller

4.RetornaDados

3.Acessa /Modifica

Receber parâmetros do Controller

Gravar e Recuperar Dados

Dados: Value Objects, Java Beans, XML

Frameworks - JoltFrameworks - Jolt

Seqüência Seqüência

XMLs contendo instruções SQLs parametrizadas XMLs contendo instruções SQLs parametrizadas configuram o configuram o JoltJolt

Jolt recebe VO com dados gerados pela camada de Jolt recebe VO com dados gerados pela camada de controle controle e executa as instruções SQL parametrizadase executa as instruções SQL parametrizadas

Jolt retornaJolt retorna VO genéricos VO genéricos ou XMLs ou XMLs com Dadoscom Dados

VantagensVantagens

Produtividade - Mapeamento Simples para ComplexoProdutividade - Mapeamento Simples para Complexo

Simplicidade - Não é preciso criar ObjetosSimplicidade - Não é preciso criar Objetos

Performance - Grande Bases de DadosPerformance - Grande Bases de Dados

Frameworks - JoltFrameworks - Jolt

Frameworks MVCFrameworks MVC

1.Requisição

7.Resposta

View

6. Acessa

4.RetornaDados

2.Invoca

5.Seleciona

DadosDB,

Objetos, LDAP,

Arquivosetc.

3.Acessa /Modifica

Model

Cliente

Controller

Frameworks - ViewFrameworks - View

Model

Controller

Definir Layout para os Dados

Facilitar a mudança de Look&Feel

Reutilizar Componentes Visuais

7.Resposta

6. Acessa

Dados

View

Frameworks - VenusFrameworks - Venus

Cliente

Model

Controller

Definir Layout para os Dados

Facilitar a mudança de Look&Feel

Reutilizar Componentes Visuais

Dados

VenVenususProject

Ad

ap

tad

or

Pro

toc o

lo

Co

mp

on

en

tes

Frameworks - VenusFrameworks - Venus Seqüência Seqüência

Dados são Empacotados (Camada Adaptadora)Dados são Empacotados (Camada Adaptadora) Dados são Enviados (Camada Protocolo)Dados são Enviados (Camada Protocolo) Página é Renderizada (Camada Componentes)Página é Renderizada (Camada Componentes)

VantagensVantagens Alta Qualidade GráficaAlta Qualidade Gráfica Alta Produtividade de DesenvolvimentoAlta Produtividade de Desenvolvimento Independência da Tecnologia do ServidorIndependência da Tecnologia do Servidor Codificação SimplificadaCodificação Simplificada Grande Econômia de BandaGrande Econômia de Banda

Frameworks - VenusFrameworks - Venus

Solução CompletaSolução Completa

VenVenususProject

Definir ControlesDefinir Controles3 XMLs3 XMLs

Definir Instruções SQLsDefinir Instruções SQLs1 XML1 XML

Definir LayoutsDefinir LayoutsHTML/JavaScriptHTML/JavaScript

Cliente

MVC – Projeto JBananaMVC – Projeto JBanana

1.Requisição

VenVenususProject

Ad

ap

tad

or

5.Seleciona

Dados4.Retorna

2.Invoca3.Acessa /

Modifica

Co

mp

on

en

tes

8.Renderiza8.Renderiza

6.Empacota

7.Comunica

Pro

toc o

lo

ArquiteturaArquitetura

JBananaJBanana

Log / TraceabilityLog / Traceability

Authentication and Authorization Service

Authentication and Authorization Service

TransactionsBusiness

Data Resources WEB Pages

JoltJoltVenusVenus

ConclusãoConclusão Soluçoes ExistentesSoluçoes Existentes

Muitas BibliotecasMuitas Bibliotecas

Curva de Aprendizado LentaCurva de Aprendizado Lenta

Reabastecimento em VôoReabastecimento em Vôo Arquitetura Oculta a ComplexidadeArquitetura Oculta a Complexidade

Rápido Reaproveitamento da Equipe (Legado)Rápido Reaproveitamento da Equipe (Legado)

ProdutividadeProdutividade Grande parte do Trabalho está ProntoGrande parte do Trabalho está Pronto

Solução de Ponta a PontaSolução de Ponta a Ponta

Simplicidade sem perder QualidadeSimplicidade sem perder Qualidade Software Livre Nacional!Software Livre Nacional!

Perguntas?Perguntas?

Projeto JBananaProjeto JBanana

www.jbanana.orgwww.jbanana.org

www.jbanana.org/jolt/www.jbanana.org/jolt/

www.jbanana.org/venus/www.jbanana.org/venus/

ContatosContatos

Kemmel Scopin – kemmel@jbanana.orgKemmel Scopin – kemmel@jbanana.org

Ricardo Nakashima - ricardo@jbanana.orgRicardo Nakashima - ricardo@jbanana.org

Sandro Bihaiko - sandro@jbanana.orgSandro Bihaiko - sandro@jbanana.org

Recommended