25
JBanana

JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

Embed Size (px)

Citation preview

Page 1: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

JBanana

Page 2: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

TópicosTópicos

Arquitetura WEBArquitetura WEB ConceitosConceitos FrameworksFrameworks

ControllerControllerViewViewModelModel

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

Page 3: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 4: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 5: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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)

Page 6: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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>

Page 7: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 8: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 9: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

<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

Page 10: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

Frameworks - JBananaFrameworks - JBanana

Page 11: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 12: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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.

Page 13: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 14: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 15: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

Frameworks - JoltFrameworks - Jolt

Page 16: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 17: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 18: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 19: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 20: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

Frameworks - VenusFrameworks - Venus

Page 21: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 22: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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

Page 23: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

ArquiteturaArquitetura

JBananaJBanana

Log / TraceabilityLog / Traceability

Authentication and Authorization Service

Authentication and Authorization Service

TransactionsBusiness

Data Resources WEB Pages

JoltJoltVenusVenus

Page 24: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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!

Page 25: JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks Controller Controller View View Model Model Integração dos

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 – [email protected] Scopin – [email protected]

Ricardo Nakashima - [email protected] Nakashima - [email protected]

Sandro Bihaiko - [email protected] Bihaiko - [email protected]