JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks...
Transcript of JBanana. Tópicos Arquitetura WEB Arquitetura WEB Conceitos Conceitos Frameworks Frameworks...
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 – [email protected] Scopin – [email protected]
Ricardo Nakashima - [email protected] Nakashima - [email protected]
Sandro Bihaiko - [email protected] Bihaiko - [email protected]