Melhorando performance do JPA com Spring Web Flow

Embed Size (px)

DESCRIPTION

Slides usado na apresentação realizada no TDC2009 em São Paulo (http://bit.ly/38wBwb). Trata de um problema específico no desenvolvimento de aplicação Web com a plataforma Java num período de transição de aplicações orientadas a requisições para orientadas a eventos (via JSF e Ajax). Sugere algumas soluções e como o Spring Web Flow resolve de maneira simples o problema apresentado.

Citation preview

  • 1. Melhorando performance de JPA com Spring Web Flow Alberto Lemos (Dr. Spock) Instrutor Globalcode Arquiteto de Software

2. Agenda

  • O problema : Aplicaes web orientadas a requisies ou eventos?
  • A soluo
  • Uma soluo : Spring Web Flow
  • Consequnciase efeitos colaterais
  • Video demo

3. O problema

  • Como gerenciar o contexto de persistncia numa aplicao Web?
  • No modelo orientado a requisies: Open Session In View Filter
  • No modelo orientado a eventos:Open Session In View Filter (what?)
  • JSFtrouxe uma mudana de paradigma:Componentizaoe eventos (limitado!)
  • JSF +Ajax=> Tratamento de eventos sofisticado!

4. A soluo

  • Manter o contexto de persistncia numescopo de conversao !
  • Escopo = Visibilidade + Tempo de vida
  • Conversao = Visibilidade/Usurio + (requisio < tempo de vida < sesso)
  • Implementaes: Apache MyFaces Orchestra, Seam Framework eSpring Web Flow

5. Uma Soluo: SWF

  • Um dos produtos do Spring Portifolio;
  • Turbina uma aplicao Web: Spring + JSF, Workflow, Ajax, JavaScript, Spring MVC;
  • Implementa os escopos de 'conversation' e 'flow';
  • Gerencia um contexto de persistncia (HB ou JPA)nos escopos do SWF;
  • Configurao por XML.

6. Consequncias e efeitos colaterais

  • Preserva o investimento na arquitetuta: JSF + Spring + JPA;
  • Uso efetivo de cache;
  • Goodbye LazyInitializationException!
  • Suporte a paginao na camada de apresentao (view!);
  • Reduo q tede objetos na sesso web;
  • Nenhuma alterao nos componentes que usam @PersistenceContext
  • Uso de XML e merge de entidades!

7. Video Demo

  • Consulta ao cadastro de produtos
  • Edio de um Catlogo de Produtos
  • Visualizao de Combos via mltiplos painis

8. Mais informaes ou dvidas

  • Lunch or Coffee break!