carlos eugênio p. da purificação ufba framework arquitetura do sistema e definição do escopo

30
Carlos Eugênio P. da Purific UFBA Framework Arquitetura do Sistema e definição do escopo

Upload: internet

Post on 17-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

UFBA Framework

Arquitetura do Sistema e definição do escopo

Page 2: Carlos Eugênio P. da Purificação 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

Page 3: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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;

Page 4: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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;

Page 5: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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;

Page 6: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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;

Page 7: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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;

Page 8: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

Soluções

• Apresentação (cont.):– Suporte a internacionalização;– ResourceBundles para campos, links, imagens e

mensagens;

Page 9: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

Arquitetura

JSP/ServletJSP/ServletWeb ContainerWeb Container

TomcatTomcat

UFBA FrameworkUFBA FrameworkClasses básicas do Engeny Business FrameworkClasses básicas do Engeny Business Framework

Enterprise JavaBeanEnterprise JavaBeanContainer: JBossContainer: JBoss

DesignUML ToolDesignUML ToolArgoUML/PoseidonArgoUML/Poseidon

Java IDE Java IDE NetBeansNetBeans

Page 10: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

Arquitetura

JSP/ServletJSP/ServletContainerContainer

UFBA FrameworkUFBA FrameworkClasses básicas do Engeny FrameworkClasses básicas do Engeny Framework

EnterpriseEnterpriseJavaBeanJavaBeanContainerContainer

UFBA FRAMEWORKUFBA FRAMEWORK

Structs TemplatesStructs Templates

StructsStructs VelocityVelocity JAXP/JXPath/JAXBJAXP/JXPath/JAXB

IDEIDE Engeny TemplatesEngeny Templates

CactusCactus

Page 11: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

Arquitetura

Configuration FilesConfiguration Files(structs-config.xml)(structs-config.xml)

StructsStructsControllerController

ServletServletBrowserBrowser

ActionMappingsActionMappingsBeanBean

ActionActionBeanBean

JSP PagesJSP Pages

RequisiçãoHTTP

JavaBeanJavaBean

Resposta(PáginaHTML)

ActionFormActionFormBeanBean

Page 12: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

Arquitetura – Visão Modelos

UFBA FrameworkUFBA Framework

Modelos UMLModelos UMLClassesClassesBásicasBásicas

UseCasesModelo de ClassesDiagrama de Colaboração

Engeny UML HandlerEngeny UML Handler

VelocityVelocity

Engeny ClassEngeny Class TemplatesTemplates

Page 13: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

Arquitetura – Visão Nodes

UFBA FrameworkUFBA Framework

UFBA NodesUFBA NodesProjectProject

Use Cases relacionadostornam-se ActionsNodes

Application Nodes DesignerApplication Nodes Designer

Use CasesUse Cases

Page 14: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

Arquitetura – Visão Nodes

UFBA FrameworkUFBA Framework

ActionNodeActionNode

Nodes que representamuma página JSP

Application Nodes DesignerApplication Nodes Designer

JSPNodesJSPNodes

Nodes querepresentam umUseCase

ModelClassModelClassNodesNodes

Nodes que representamuma classe do modelode classes da aplicação

OutrosOutrosNodesNodes

Page 15: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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.

Page 16: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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);

Page 17: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

UFBA Framework Patterns

• Pattern: Data Access Object

Page 18: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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).

Page 19: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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;

Page 20: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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.)

Page 21: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

UFBA Framework Patterns

• Pattern: Session Façade

Page 22: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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;

Page 23: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

UFBA Framework Patterns

• Pattern: Transfer Object

Page 24: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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.

Page 25: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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.

Page 26: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

Estratégia de Persistência

UFBA FrameworkUFBA Framework

Engeny Engeny Business Business

FrameworkFrameworkApplicationApplicationBusinessBusinessClassesClasses

(Actions)(Actions)SessionFaçadeSessionFaçade

ApplicationApplicationEntityBeanEntityBean

ApplicationApplicationPersistencePersistence

BeanBean(JDO, DAO, ...)(JDO, DAO, ...)

DBMSDBMS

Page 27: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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

Page 28: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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.

Page 29: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

Carlos Eugênio P. da Purificação

Application Nodes Designer

Page 30: Carlos Eugênio P. da Purificação UFBA Framework Arquitetura do Sistema e definição do escopo

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;