Arquitetura de
Software Enterprise
Casos de sucesso na implantação de
arquitetura de software enterprise
Dr. Spock
@drspoc...
@bout me!
• Bacharel e especialista em Física
pela UFV e Unicamp;
• Desenvolvedor de aplicações
Web desde 96 e Java desde ...
Visite o SBUG
http://www.springbrasil.com.br/
Agenda
Agenda
• Introdução e conceitos;
Agenda
• Introdução e conceitos;
• 3 exemplos de arquitetura
Java EE;
Agenda
• Introdução e conceitos;
• 3 exemplos de arquitetura
Java EE;
• Desafios de um arquiteto de
software;
Introdução &
Conceitos
O que é arquitetura de software?
“Descrição da organização do
software estabelecendo as principais
decisões de projeto com o
objetivo de realizar os requis...
Confuso?
Confuso?JSP ou XHTML?
Richfaces?
ICEFaces?
TopLink?Swing?
JSF?
Wicket?
Spring ou Seam?
Flex?
Struts?
GWT? EJB3?
NetBeans? ...
Confuso?JSP ou XHTML?
Richfaces?
ICEFaces?
TopLink?Swing?
JSF?
Wicket?
Spring ou Seam?
Flex?
Struts?
GWT? EJB3?
NetBeans? ...
Quem é o arquiteto de software?
“Papel exercido por um desenvolvedor
experiente capaz de tomar decisões
de projeto para a organização da
estrutura de um s...
Principais
responsabilidades
• Limitar as escolhas durante o
desenvolvimento:
• Escolher um padrão para a
maneira de desen...
Principais
responsabilidades
• Indicar os pontos de reutilização
dentro da aplicação ou na
organização:
• Enxergar de mane...
De um ponto de vista
prático!
• Durante o Design, quebrar a
complexidade do desenvolvimento
de aplicações em pedaços menor...
Ferramentas de um
arquiteto
• Linguagem de modelagem: UML;
• Linguagem de programação;
• Técnicas OO: herança,
polimorfismo...
Exemplos de
Arquiteturas de
Software Enterprise
Primeiro caso
O problema
Empresa com aplicação Web de
cotações de produtos já
implementado com PHP
usando banco de dados
Oracle, equipe ...
Requisitos
importantes
• Usabilidade: UI ricas,
componentes visuais de negócios
e drag’n drop e templates na
Web;
• Integr...
Modelo básico da arquitetura
Modelo de componentização
Modelo de componentização
Tecnologias
selecionadas
• JBossAS 4.2.3
• JSF 1.2
• Facelets
• Spring Framework 2.5
• Acegi Security 2.5
• Hibernate 3.2
...
Tecnologias
selecionadas
• JBossAS 4.2.3
• JSF 1.2
• Facelets
• Spring Framework 2.5
• Spring Webflow 2
• Acegi Security 2....
Pontos positivos e
negativos
• Quantidade excessiva de
configurações em XML;
• Modelo consistente de
componentização (favor...
Segundo caso
O problema
Empresa com aplicação
Progress em modo caractere
com aplicação de gestão de
produtos turísticos para
agências d...
Requisitos
importantes
• Comunicação com diversas
fontes na internet de
produtos turísticos;
• Flexibilidade para suportar...
Modelo básico da arquitetura
Modelo básico da arquitetura
Modelo de componentização
Modelo de componentização
Tecnologias
selecionadas
• JBossAS 4.2.3
• JSF 1.2
• Facelets
• JBoss Seam 2.0
• Hibernate 3.2 (via JPA)
• JBoss Richfaces...
Pontos positivos e
negativos
• Gerenciamento eficiente do
contexto de persistência;
• Arquitetura com alta
complexidade par...
Terceiro caso
O problema
Modelo genérico e configurável
de entidades de negócios para
integração entre ERPs para
diferentes processos de
...
Requisitos
importantes
• Flexibilidade/extensibilidade
para definir entidades de
negócios por cliente por
unidade de negóci...
Modelo básico da arquitetura
Tecnologias
selecionadas
• Java Swing => Builders
• POJO => Domain model
• Struts => Interfaces Web
dinâmicas
• Multi-thre...
Pontos positivos e
negativos
• Quantidade excessiva de
configurações em XML;
• Metamodelo genérico para
definição de entidad...
Perguntas
Obrigado!
• Contato:
Dr. Spock
spock@springbrasil.com.br
• Twitter:
@drspockbr
• About me:
http://about.me/drspockbr
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software Enterprise
Upcoming SlideShare
Loading in...5
×

TDC2011: Arquitetura de Software Enterprise

1,761

Published on

Casos de sucesso na implantação de arquitetura de software enterprise.

Slides da palestra apresentada no TDC2011 em Florianópolis para a trilha de Arquitetura.

Quais os desafios e principais decisões de projeto que norteiam a concepção e evolução de uma arquitetura de software enterprise? Através de 3 exemplos de casos de sucesso serão discutidas as dificuldades, facilidades e as principais decisões de projeto que nortearam a implantação destas arquiteturas. Assim, exemplos baseados em Frameworks e tecnologias da plataforma Java EE para prover uma solução consistente e escalável de acordo os requisitos não funcionais estabelecidos serão considerados para ilustrar o que compõe a definição de uma arquitetura de software simples e enterpise.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,761
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

TDC2011: Arquitetura de Software Enterprise

  1. 1. Arquitetura de Software Enterprise Casos de sucesso na implantação de arquitetura de software enterprise Dr. Spock @drspockbr
  2. 2. @bout me! • Bacharel e especialista em Física pela UFV e Unicamp; • Desenvolvedor de aplicações Web desde 96 e Java desde 99; • Palestrante em eventos nacionais e internacionais; • Integrante da equipe de P&D da Softplan em Florianópolis;
  3. 3. Visite o SBUG http://www.springbrasil.com.br/
  4. 4. Agenda
  5. 5. Agenda • Introdução e conceitos;
  6. 6. Agenda • Introdução e conceitos; • 3 exemplos de arquitetura Java EE;
  7. 7. Agenda • Introdução e conceitos; • 3 exemplos de arquitetura Java EE; • Desafios de um arquiteto de software;
  8. 8. Introdução & Conceitos
  9. 9. O que é arquitetura de software?
  10. 10. “Descrição da organização do software estabelecendo as principais decisões de projeto com o objetivo de realizar os requisitos não funcionais”
  11. 11. Confuso?
  12. 12. Confuso?JSP ou XHTML? Richfaces? ICEFaces? TopLink?Swing? JSF? Wicket? Spring ou Seam? Flex? Struts? GWT? EJB3? NetBeans? Eclipse? JavaFX? Ajax? Hibernate? JBossAS? Glassfish? Desktop ou Web? Primefaces? Maven? svn ou git? Java ou .NET? Ruby? Python?Scala? Android? JavaME? Cloud? MongoDB? NoSQL? CDI? JTA?JMS? iOS C++? Arduino? Grails? Grid? WebSphere? Jenkins?
  13. 13. Confuso?JSP ou XHTML? Richfaces? ICEFaces? TopLink?Swing? JSF? Wicket? Spring ou Seam? Flex? Struts? GWT? EJB3? NetBeans? Eclipse? JavaFX? Ajax? Hibernate? JBossAS? Glassfish? Desktop ou Web? Primefaces? Maven? svn ou git? Java ou .NET? Ruby? Python?Scala? Android? JavaME? Cloud? MongoDB? NoSQL? CDI? JTA?JMS? iOS C++? Arduino? Grails? Grid? WebSphere? Jenkins?
  14. 14. Quem é o arquiteto de software?
  15. 15. “Papel exercido por um desenvolvedor experiente capaz de tomar decisões de projeto para a organização da estrutura de um software (ou sistemas) e sugerir as escolhas certas”
  16. 16. Principais responsabilidades • Limitar as escolhas durante o desenvolvimento: • Escolher um padrão para a maneira de desenvolver aplicações; • Definir/criar um framework para ser usado na aplicação; Fonte:Wikipedia
  17. 17. Principais responsabilidades • Indicar os pontos de reutilização dentro da aplicação ou na organização: • Enxergar de maneira mais abrangente; • Adotar um design de componentização; • Ter contato e conhecimento com outras aplicações na organização; Fonte:Wikipedia
  18. 18. De um ponto de vista prático! • Durante o Design, quebrar a complexidade do desenvolvimento de aplicações em pedaços menores e melhores gerenciáveis; • Entender as funções de cada componente; • Entender as interações e dependências entre os componentes de software; • Comunicar esses pontos com os desenvolvedores. Fonte:Wikipedia
  19. 19. Ferramentas de um arquiteto • Linguagem de modelagem: UML; • Linguagem de programação; • Técnicas OO: herança, polimorfismo, design patterns, analysis patterns, frameworks,APIs, componentização e tecnologias; • Consolidação das decisões com diferentes visões num documento de arquitetura de software.
  20. 20. Exemplos de Arquiteturas de Software Enterprise
  21. 21. Primeiro caso
  22. 22. O problema Empresa com aplicação Web de cotações de produtos já implementado com PHP usando banco de dados Oracle, equipe de 8 desenvolvedores com pouco conhecimento em Java SE e Java EE com interesse em migrar para a plataforma Java. Qual a arquitetura adequada para esta migração?
  23. 23. Requisitos importantes • Usabilidade: UI ricas, componentes visuais de negócios e drag’n drop e templates na Web; • Integração via web services e arquivos EDI; • Multi-plataforma para modelo de domínio; • Performance e escalabilidade nos horários críticos.
  24. 24. Modelo básico da arquitetura
  25. 25. Modelo de componentização
  26. 26. Modelo de componentização
  27. 27. Tecnologias selecionadas • JBossAS 4.2.3 • JSF 1.2 • Facelets • Spring Framework 2.5 • Acegi Security 2.5 • Hibernate 3.2 • JBoss Richfaces 3.1
  28. 28. Tecnologias selecionadas • JBossAS 4.2.3 • JSF 1.2 • Facelets • Spring Framework 2.5 • Spring Webflow 2 • Acegi Security 2.5 • Hibernate 3.2 • JBoss Richfaces 3.1
  29. 29. Pontos positivos e negativos • Quantidade excessiva de configurações em XML; • Modelo consistente de componentização (favorece possível uso de EJBs e OSGi); • Problemas de performance com JPA/Hibernate; • Escalabilidade via servidor de aplicações.
  30. 30. Segundo caso
  31. 31. O problema Empresa com aplicação Progress em modo caractere com aplicação de gestão de produtos turísticos para agências de viagens, equipe com desenvolvedores sem experiência em Java e OO com interesse em migrar para a plataforma Java. Qual a arquitetura adequada para esta migração?
  32. 32. Requisitos importantes • Comunicação com diversas fontes na internet de produtos turísticos; • Flexibilidade para suportar novos produtos; • Múltiplos contextos na sessão web; • Tecnologias consolidadas;
  33. 33. Modelo básico da arquitetura
  34. 34. Modelo básico da arquitetura
  35. 35. Modelo de componentização
  36. 36. Modelo de componentização
  37. 37. Tecnologias selecionadas • JBossAS 4.2.3 • JSF 1.2 • Facelets • JBoss Seam 2.0 • Hibernate 3.2 (via JPA) • JBoss Richfaces • EJBs (Session e MDB)
  38. 38. Pontos positivos e negativos • Gerenciamento eficiente do contexto de persistência; • Arquitetura com alta complexidade para equipe inexperiente; • Modelo consistente de componentização favorecendo extensibilidade; • Modelo assíncrono via Ajax na tela web.
  39. 39. Terceiro caso
  40. 40. O problema Modelo genérico e configurável de entidades de negócios para integração entre ERPs para diferentes processos de negócios da empresa no relacionamento com vários clientes. Qual a arquitetura adequada para esta integração?
  41. 41. Requisitos importantes • Flexibilidade/extensibilidade para definir entidades de negócios por cliente por unidade de negócio; • Processamento em batch de dados via máquina de regras; • Interfaces Web dinâmicas; • I18n: Inglês, espanhol e chinês.
  42. 42. Modelo básico da arquitetura
  43. 43. Tecnologias selecionadas • Java Swing => Builders • POJO => Domain model • Struts => Interfaces Web dinâmicas • Multi-thread standalond Java app => Máquina de regras • Spring Framework 1.2
  44. 44. Pontos positivos e negativos • Quantidade excessiva de configurações em XML; • Metamodelo genérico para definição de entidades de negócios; • Performance tende piorar para volume de dados das entidades; • Modelo de componentização POJO.
  45. 45. Perguntas
  46. 46. Obrigado! • Contato: Dr. Spock spock@springbrasil.com.br • Twitter: @drspockbr • About me: http://about.me/drspockbr

×