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

Post on 17-Apr-2015

102 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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

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

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 FrameworkUFBA Framework

Engeny Engeny Business Business

FrameworkFrameworkApplicationApplicationBusinessBusinessClassesClasses

(Actions)(Actions)SessionFaçadeSessionFaçade

ApplicationApplicationEntityBeanEntityBean

ApplicationApplicationPersistencePersistence

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

DBMSDBMS

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;

top related