JBanana
Tópicos Arquitetura WEB Integração dos Frameworks Conceitos Frameworks Controller View Model Integração dos Frameworks Estágio Atual , Evolução
Padrão MVC para WEB Controller Dados Model Dados View Cliente DB, Objetos, LDAP, Arquivos etc. 3.Acessa / Modifica 1.Requisição 2.Invoca Model 5.Seleciona 4.Retorna Dados 6. Acessa 7.Resposta View
Tecnologias Usadas Servlets API HTML DHTML XHTML JavaScript JScript 1.Requisição 7.Resposta View 6. Acessa 4.Retorna Dados 2.Invoca 5.Seleciona DB, Objetos, LDAP, Arquivos etc. 3.Acessa / Modifica Model Cliente Controller HTML DHTML XHTML JavaScript JScript VBScript DOM 1 DOM 2 DOM 3 Servlets API XML VO Java Beans JSP API XSL Velocity JDBC API JTA/JTS JNDI EJBs OJBS CORBA RMI SQL/OQL
Frameworks MVC Não Reinventar a Roda Encapsulam Complexidade Facilitam o Trabalho em Equipe Implementam os Padrões de Projetos Customizáveis Propriedades e Atributos (Configurações) Herança e Interfaces (Codificações) XMLs (Programação Declarativa)
Programação Declarativa 100111100010010 101110010011110 001001010111001 001111000100101 <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 MVC Controller Model Dados View Cliente 1.Requisição 7.Resposta View 6. Acessa 4.Retorna Dados 2.Invoca 5.Seleciona DB, Objetos, LDAP, Arquivos etc. 3.Acessa / Modifica Model Cliente Controller
Frameworks - Controller 1.Requisição 2.Invoca Model 5.Seleciona Interceptar requisições HTTP Validação dos Parâmetros Recebidos Selecionar Regra de Negócio Selecionar uma Visualização View Cliente
Frameworks - JBanana Validando Dados Invocando Model Invocando View <attribute name="origem"> <simpleType baseType="string"> <propertie name="enumeration" value=";Brasilia;Curitiba;Florianopolis;Fortaleza;Joinville"/> </simpleType> </attribute> Validando Dados <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
Frameworks - JBanana
Frameworks MVC Controller Model Dados View Cliente 1.Requisição 7.Resposta View 6. Acessa 4.Retorna Dados 2.Invoca 5.Seleciona DB, Objetos, LDAP, Arquivos etc. 3.Acessa / Modifica Model Cliente Controller
Frameworks - Model View Cliente Controller Dados DB, Objetos, LDAP, Arquivos etc. 3.Acessa / Modifica Model 4.Retorna Dados Receber parâmetros do Controller Gravar e Recuperar Dados Dados: Value Objects, Java Beans, XML View Cliente
Frameworks - Jolt View Cliente Controller 3.Acessa / Modifica Model 4.Retorna Dados Receber parâmetros do Controller Gravar e Recuperar Dados Dados: Value Objects, Java Beans, XML View Cliente
Frameworks - Jolt Seqüência Vantagens XMLs contendo instruções SQLs parametrizadas configuram o Jolt Jolt recebe VO com dados gerados pela camada de controle e executa as instruções SQL parametrizadas Jolt retorna VO genéricos ou XMLs com Dados Vantagens Produtividade - Mapeamento Simples para Complexo Simplicidade - Não é preciso criar Objetos Performance - Grande Bases de Dados
Frameworks - Jolt
Frameworks MVC Controller Model Dados View Cliente 1.Requisição 7.Resposta View 6. Acessa 4.Retorna Dados 2.Invoca 5.Seleciona DB, Objetos, LDAP, Arquivos etc. 3.Acessa / Modifica Model Cliente Controller
Frameworks - View Model Controller Definir Layout para os Dados 7.Resposta 6. Acessa Dados View Definir Layout para os Dados Facilitar a mudança de Look&Feel Reutilizar Componentes Visuais
Frameworks - Venus Venus Model Cliente Controller Componentes Dados Componentes Protocolo Adaptador Definir Layout para os Dados Facilitar a mudança de Look&Feel Reutilizar Componentes Visuais Venus Project Cliente
Frameworks - Venus Seqüência Vantagens Dados são Empacotados (Camada Adaptadora) Dados são Enviados (Camada Protocolo) Página é Renderizada (Camada Componentes) Vantagens Alta Qualidade Gráfica Alta Produtividade de Desenvolvimento Independência da Tecnologia do Servidor Codificação Simplificada Grande Econômia de Banda
Frameworks - Venus
Solução Completa Venus Definir Controles 3 XMLs Definir Instruções SQLs 1 XML Venus Project Definir Layouts HTML/JavaScript
MVC – Projeto JBanana Venus Componentes Protocolo Adaptador Dados Cliente 1.Requisição 2.Invoca Venus Project Adaptador 5.Seleciona 3.Acessa / Modifica Componentes 8.Renderiza Dados 4.Retorna 7.Comunica Protocolo 6.Empacota
Arquitetura Jolt Venus JBanana Log / Traceability Authentication and Authorization Service Transactions Business Data Resources WEB Pages
Conclusão Soluçoes Existentes Reabastecimento em Vôo Produtividade Muitas Bibliotecas Curva de Aprendizado Lenta Reabastecimento em Vôo Arquitetura Oculta a Complexidade Rápido Reaproveitamento da Equipe (Legado) Produtividade Grande parte do Trabalho está Pronto Solução de Ponta a Ponta Simplicidade sem perder Qualidade Software Livre Nacional!
Perguntas? Projeto JBanana Contatos www.jbanana.org www.jbanana.org/jolt/ www.jbanana.org/venus/ Contatos Kemmel Scopin – kemmel@jbanana.org Ricardo Nakashima - ricardo@jbanana.org Sandro Bihaiko - sandro@jbanana.org