UFBA Framework
Arquitetura do Sistema e definição do
escopo
Carlos Eugênio P. da Purificação
Tópicos
• Soluções
• Arquitetura
–
–
–
–
•
•
•
•
Framework Struts
Visão Modelos
Visão Refactoring
Visão Nodes
UFBA Framework Patterns
Estratégia de Persistência
Application Nodes Designer
Conclusão
Carlos Eugênio P. da Purificação
Soluções
• Modelagem
– Ferramentas OpenSource ou Free como o
ArgoUML e Poseidon Community Edition;
– Pode ser utilizada qualquer ferramenta que
utilize o padrão XMI. (Rational Rose)
– Varredura de classes e refactoring com Design
Patterns;
• Desenvolvimento
– Ferramenta: NetBeans;
Carlos Eugênio P. da Purificação
Soluções
• Desenvolvimento (cont.)
–
–
–
–
–
–
Utilização da arquitetura MVC Model 2;
Utilização de Frameworks Web OpenSource
Padrões de mercado como o Struts da Apache;
Deployment automático e configurável;
Desenvolvimento gráfico do workflow e nodes;
Deployment automatizado;
Carlos Eugênio P. da Purificação
Soluções
• Padrões de Projeto
– Model View Controler Model 2 para Struts;
– Data Access Objects, Bussiness Delegate,
Adapter e Bridge Patterns para separação do
Framework de Persistência (J2EE Beans ou um
Oject-to-Relational Framework);
– Session Façade para acesso aos Sessions Beans;
– Data Transfer Object Pattern para transferência
de informações entre as camadas;
Carlos Eugênio P. da Purificação
Soluções
• Containers
– OpenSource JBoss;
– OpenSource TomCat;
– Qualquer implementação padrão J2EE;
• Apresentação
– JSP Custom Tags;
– Struts Tags;
Carlos Eugênio P. da Purificação
Soluções
• Apresentação (cont):
– Validator Framework para validações padrões:
•
•
•
•
•
•
•
Campos requeridos;
Tipos de dados (byte, int, float,...);
Tamanho mínimo ou máximo;
Range;
Regular Expressions;
Datas;
Cartões de Crédito;
Carlos Eugênio P. da Purificação
Soluções
• Apresentação (cont.):
– Suporte a internacionalização;
– ResourceBundles para campos, links, imagens e
mensagens;
Carlos Eugênio P. da Purificação
Arquitetura
DesignUML Tool
ArgoUML/Poseidon
Java IDE
NetBeans
UFBA Framework
Classes básicas do Engeny Business Framework
Enterprise JavaBean
Container: JBoss
JSP/Servlet
Web Container
Tomcat
Carlos Eugênio P. da Purificação
Arquitetura
UFBA FRAMEWORK
Structs Templates
IDE
Engeny Templates
UFBA Framework
Classes básicas do Engeny Framework
Structs
Velocity
Enterprise
JavaBean
Container
JAXP/JXPath/JAXB
Cactus
JSP/Servlet
Container
Carlos Eugênio P. da Purificação
Arquitetura
Configuration Files
(structs-config.xml)
Requisição
HTTP
Browser
ActionMappings
Bean
Structs
Controller
Servlet
Resposta
(Página
HTML)
Action
Bean
JSP Pages
ActionForm
Bean
JavaBean
Carlos Eugênio P. da Purificação
Arquitetura – Visão Modelos
Classes
Básicas
Modelos UML
UseCases
Modelo de Classes
Diagrama de Colaboração
Velocity
UFBA Framework
Engeny UML Handler
Engeny Class
Templates
Carlos Eugênio P. da Purificação
Arquitetura – Visão Nodes
UFBA Nodes
Project
Use Cases
Use Cases relacionados
tornam-se
ActionsNodes
UFBA Framework
Application Nodes Designer
Carlos Eugênio P. da Purificação
Arquitetura – Visão Nodes
ActionNode
Nodes que
representam um
UseCase
Outros
Nodes
JSPNodes
Nodes que representam
uma página JSP
ModelClass
Nodes
Nodes que representam
uma classe do modelo
de classes da aplicação
UFBA Framework
Application Nodes Designer
Carlos Eugênio P. da Purificação
UFBA Framework Patterns
• Patterns
– Os Design Patterns são bons para evitar erros
clássicos de design de aplicações.
– A seguir são apresentados os principais patterns
utilizados pelo Framework.
Carlos Eugênio P. da Purificação
UFBA Framework Patterns
• Pattern: Data Access Object
– Separa a aplicação da implementação utilizada
para acessar dados persistentes, podendo a
implementação variar (RDBMS, OODBMS,
XML, etc);
– Um objeto do tipo ValueObject é usado para
transferir dados do(s) objeto(s) de regras de
negócio – BusinessObject para o
DataAccessObject (DAO);
Carlos Eugênio P. da Purificação
UFBA Framework Patterns
• Pattern: Data Access Object
Carlos Eugênio P. da Purificação
UFBA Framework Patterns
• Pattern: Data Access Object
– No UFBA Framework é utilizado uma interface
IApplicationService (onde Application é o
nome da aplicação ou de um Action específico).
Carlos Eugênio P. da Purificação
UFBA Framework Patterns
• Pattern: Session Façade
– Provê uma interface simples para os clientes
acessarem os serviços da aplicação;
– Menos objetos são vistos pelo cliente reduzindo
a complexidade da aplicação;
– Não expõe os objetos de negócio diretamente
para o cliente permitido uma melhor separação
de camadas;
Carlos Eugênio P. da Purificação
UFBA Framework Patterns
• Pattern: Session Façade
– O UFBA Framework irá definir
automaticamente uma interface e uma
implementação básica para um Sessio Façade;
– Os Use Cases com serviços relacionados no
Application Nodes Designer irão gerar somente
um Session Façade. (ex.: Depositar-Em-Conta,
Sacar-Da-Conta, Ver-Saldo-Conta,etc.)
Carlos Eugênio P. da Purificação
UFBA Framework Patterns
• Pattern: Session Façade
Carlos Eugênio P. da Purificação
UFBA Framework Patterns
• Pattern: Transfer Object
– Clientes de Entity Beans geralmente necessitam com
uma chamada de informação mais de um atributo;
– Cada chamada feita a um Entity Bean ou Session Bean
geralmente é remota implicando em tráfego de rede e
degradação de performance;
– Os Data Transfer Objects encapsulam os dados que
devem ser levados de uma camada a outra, fazendo
com que o número de chamadas remota, de uma
maneira geral, diminuam;
Carlos Eugênio P. da Purificação
UFBA Framework Patterns
• Pattern: Transfer Object
Carlos Eugênio P. da Purificação
Estratégia de Persistência
• Persistência
– Pré-definidas:
• Enterprise Java Beans – CMP ou BMP
– Customizadas:
• Pode-se escolher qualquer outro tipo de persistência,
pois devido à utilização do Data Access Object
Pattern, o detalhe do tipo escolhido não afeta a
aplicação.
Carlos Eugênio P. da Purificação
Estratégia de Persistência
• Persistência com Enterprise Java Beans
– Interface exposta para a aplicação é limitada a
Session Beans (Session Façade).
– A implementação dos Session Beans acessa
Entity Beans que utilizam persistência
gerenciada pelo J2EE Container.
– Como toda a aplicação só tem acesso aos
Session Beans utilizando um Session Façade, a
implementação de persistência pode mudar.
Carlos Eugênio P. da Purificação
Estratégia de Persistência
UFBA Framework
Application
Business
Classes
(Actions)
Engeny
Business
Framework
SessionFaçade
Application
EntityBean
Application
Persistence
Bean
(JDO, DAO, ...)
DBMS
Carlos Eugênio P. da Purificação
Application Nodes Designer
• Permite a configuração de todos os detalhes da
aplicação:
–
–
–
–
–
–
–
–
JSPNodes
ActionNodes
ValidationFormNodes
ValidatorNodes
ValidationRulesNodes
FieldNodes
ModelClassNodes
ModelAttributeNodes
Carlos Eugênio P. da Purificação
Application Nodes Designer
• Não é necessário conhecer nenhum detalhe
dos arquivos de configuração do struts,
cactus, tomcat, jboss, etc.
• Reconhecimento das classes e use cases do
modelo UML.
• Templates.
Carlos Eugênio P. da Purificação
Application Nodes Designer
Carlos Eugênio P. da Purificação
Conclusão
• Framework que leva em consideração as
melhores práticas do mercado;
• Inclui ferramentas de produtividade e
configuração;
• Mantém o desenvolvimento direcionado;
• Solução para o desenvolvimento Web com
Java;
Carlos Eugênio P. da Purificação
Download

Carlos Eugênio P. da Purificação