Enterprise Web 2.0
Architectures: from pristine Java
EE to fully-loaded frameworks
Vinicius Senger        Alberto Lemos
Gl...
This talk…
>   Presents five solid, different Java EE architectures
    
        Each one is based on our consulting expe...
Agenda
>   Introduction
>   Architectures:
     1. Pure Web
     2. Web + EJB + JMS
     3. Spring
     4. JBoss Seam
    ...
Presenters
>   Vinicius Senger
>   Alberto Lemos - Dr. Spock

       Founders of GlobalCode
        
            Brazili...
Previous JavaOne presentations
>   2004: From Simple JSP Technology to Full J2EE
    Platform in 10 Steps: Stress Test-Bas...
Agenda
>   Introduction
>   Architectures:
     1. Pure Web
     2. Web + EJB + JMS
     3. Spring
     4. JBoss Seam
    ...
What matters in your Java EE
environment?
Scalability          Maintainability    Reliability
Availability         Extensi...
Evans Data Corporation
Application Server Rankings in September, 2008

 Scalability          Maintainability     Reliabili...
What our customers demand

Scalability          Maintainability    Reliability
Availability         Extensibility      Man...
Top Java Enterprise Decisions
•    Frameworks: Spring or Seam? Hibernate or
     Toplink? Which JSF Ajax toolkit?
•    UI ...
Spring versus Seam
>   Spring was born as an alternative to Java EE
>   Seam created as a complimentary framework to
    J...
Agenda
>   Introduction
>   Architectures:
         Pure Web
      Web + EJB + JMS
      Spring
      JBoss Seam
     ...
Pure Web
Foundations
>   JavaServer Faces 1.2
>   Facelets 1.1.x
>   JSF Ajax component library
>   Uses Managed Beans as ...
Pure Web
Discussion
>   Advantages
    
        Simplicity
       Support from many tools
    
        Compatibility wi...
Pure Web
Discussion
>   GoF Patterns can be applied into Managed Beans:
    
        Mediator, Façade, State
       Meme...
Pure Web
Where we are using?
>   Startup projects
>   Compatibility and cross-vendor environments
>   Big development team...
Agenda
>   Introduction
>   Architectures:
      Pure Web
      Web + EJB + JMS
      Spring
      JBoss Seam
      S...
Web + EJB + JMS
Foundations
    JavaServer Faces
                                    }
>
>   Facelets                     ...
Web + EJB + JMS
Discussion
>   Advantages
    
        Support from many tools
       Compatibility with different conta...
Web + EJB + JMS
Where we are using?
>   Senior team with Java EE 5 experience
>   Scalability available with Java EE
>   C...
Agenda
>   Introduction
>   Architectures:
      Pure Web
      Web + EJB + JMS
      Spring
      JBoss Seam
      S...
Spring
Foundations
    JavaServer Faces
                                 }
>
>   Facelets                    Used in Pure ...
Spring
Discussion
>   Advantages
    
        Credibility from users
       Integration: Struts, JSF, EJB, POJO, Wicket,...
Spring
Where we are using
>   Senior teams of developers
>   Complex Transaction and security
>   Integration with non-spe...
Agenda
>   Introduction
>   Architectures:
      Pure Web
      Web + EJB + JMS
      Spring
      JBoss Seam
      S...
JBoss Seam
Foundation
>   Integration model for Java EE
    JavaServer Faces
                              }
>
           ...
JBoss Seam
Discussion
>   Advantages
    
        Anticipate Java EE 6: bookmarkable URL,
        conversation, injection...
JBoss Seam
Where we are using?
>   Projects already using JBoss Platform
>   More complex Web applications
>   Application...
JBoss Seam


DEMO




             29
Agenda
>   Introduction
>   Architectures:
      Pure Web
      Web + EJB + JMS
      Spring
      JBoss Seam
      S...
Spring + JBoss Seam
Foundation
    JavaServer Faces
                                 }
>
                                 ...
Spring + JBoss Seam
Discussion
>   Spring benefits
       Integration model for enterprise applications with
        ente...
Spring + JBoss Seam
Recommendations
>   Requires experienced senior team
>   Large legacy code: Struts, Spring, JSF, EJB…
...
Spring+Seam


DEMO




              34
Agenda
>   Introduction
>   Architectures:
     1. Pure Web
     2. Web + EJB + JMS
     3. Spring
     4. JBoss Seam
    ...
Improving JSF 1.2
>   PrettyFaces
    
        Bookmarkable URL in JSF 1.2
>   FacesAnnotations
       Protected managed...
Where is the architecture’s code?




                                    37
SuperCRUD.com
> Web engine to generate CRUD applications based
  on collaborative artifacts;
> Online entity editor;
> Dif...
SuperCRUD.com




DEMO
                39
Agenda
>   Introduction
>   Architectures:
     1. Pure Web
     2. Web + EJB + JMS
     3. Spring
     4. JBoss Seam
    ...
Conclusions

> Java EE + frameworks achieve most of the
  companies needs;
> Architectures may vary depending on localizat...
Our Java EE map:
               #1    #2        #3       #4     #5
               web   web+ejb   Spring   Seam   Seam+Spr...
Java EE 6
                      Java EE 6
Scalability
Team skills
Tools
Productivity
Commercial Support*
Cost
Security
OSG...
What your project are looking for?

Scalability          Maintainability    Reliability
Availability         Extensibility...
THANKS!
Vinicius Senger
vinicius@globalcode.com.br
Alberto Lemos
spock@globalcode.com.br

www.globalcode.com.br
www.superc...
Vinicius Senger
vinicius@globalcode.com.br

Alberto Lemos
alberto@globalcode.com.br


                             46
Upcoming SlideShare
Loading in...5
×

Enterprise Web 2.0: from pristine Java EE to fully-loaded frameworks

2,575

Published on

Presentation realized at JavaOne 2009.

Published in: Technology, Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

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

No notes for slide

Transcript of "Enterprise Web 2.0: from pristine Java EE to fully-loaded frameworks"

  1. 1. Enterprise Web 2.0 Architectures: from pristine Java EE to fully-loaded frameworks Vinicius Senger Alberto Lemos Globalcode Globalcode Enterprise Architect Enterprise Architect
  2. 2. This talk… > Presents five solid, different Java EE architectures  Each one is based on our consulting experience over the past year > Discusses the reality of Java Enterprise Architecture implementations > Presents successful project and consulting techniques 2
  3. 3. Agenda > Introduction > Architectures: 1. Pure Web 2. Web + EJB + JMS 3. Spring 4. JBoss Seam 5. Spring + JBoss Seam > Tools & Tips > Conclusions 3
  4. 4. Presenters > Vinicius Senger > Alberto Lemos - Dr. Spock  Founders of GlobalCode  Brazilian Java consulting, implementation, and education  Over 18 years of software development experience  Java Enterprise Consumers – not API writers… 4
  5. 5. Previous JavaOne presentations > 2004: From Simple JSP Technology to Full J2EE Platform in 10 Steps: Stress Test-Based Refactoring, 2004 > 2005: Where Is the Bottleneck? A Quantitative Study of the Impact of MVC Frameworks; > 2007: Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme Web Testing, 5
  6. 6. Agenda > Introduction > Architectures: 1. Pure Web 2. Web + EJB + JMS 3. Spring 4. JBoss Seam 5. Spring + JBoss Seam > Tools & Tips > Conclusions 6
  7. 7. What matters in your Java EE environment? Scalability Maintainability Reliability Availability Extensibility Manageability Performance Mobility Compatibility Usability Connectivity Testability Modularity Interoperability Security Toolability Auditability Risk Commercial Support Cost Productivity Team Skills Accessibility Sustainability 7
  8. 8. Evans Data Corporation Application Server Rankings in September, 2008 Scalability Maintainability Reliability Availability Extensibility Manageability Performance Mobility Compatibility Usability Connectivity (DB) Testability Modularity Interoperability Security Toolability Auditability Risk Commercial Support Cost Productivity Team Skills Accessibility Sustainability 8
  9. 9. What our customers demand Scalability Maintainability Reliability Availability Extensibility Manageability Performance Mobility Compatibility Usability Connectivity Testability Modularity Interoperability Security Toolability Auditability Risk Commercial Support Cost Productivity Team Skills Accessibility Sustainability 9
  10. 10. Top Java Enterprise Decisions • Frameworks: Spring or Seam? Hibernate or Toplink? Which JSF Ajax toolkit? • UI Design: • JSF, Flex, JavaFX, Swing, Wicket, GWT; 3. EJB or not • Good things can be done without EJB; • But someone need to take care about transaction, security and scalability; • Security: does it fit with Java EE security model? • Team: what about your team skills? 10
  11. 11. Spring versus Seam > Spring was born as an alternative to Java EE > Seam created as a complimentary framework to Java EE > Seam and Spring focus on Web 2.0, both support integration > Container use: > Seam mostly used with JBoss > Spring used in many different containers 11
  12. 12. Agenda > Introduction > Architectures: Pure Web  Web + EJB + JMS  Spring  JBoss Seam  Spring + JBoss Seam Architecture > Tools & Tips > Conclusions 12
  13. 13. Pure Web Foundations > JavaServer Faces 1.2 > Facelets 1.1.x > JSF Ajax component library > Uses Managed Beans as main components:  Controller / Business / DAO Managed Bean  Use of basic resource injection  Managed Beans dependency with managed property 13
  14. 14. Pure Web Discussion > Advantages  Simplicity  Support from many tools  Compatibility with many different containers > Disadvantages  Limited transaction and security management  Low modularity 14
  15. 15. Pure Web Discussion > GoF Patterns can be applied into Managed Beans:  Mediator, Façade, State  Memento, Decorator; 15
  16. 16. Pure Web Where we are using? > Startup projects > Compatibility and cross-vendor environments > Big development team > Lower complexity projects 16
  17. 17. Agenda > Introduction > Architectures:  Pure Web  Web + EJB + JMS  Spring  JBoss Seam  Spring + JBoss Seam Architecture > Tools & Tips > Conclusions 17
  18. 18. Web + EJB + JMS Foundations JavaServer Faces } > > Facelets Used in Pure Web > JSF Ajax component library > EJB 3.0  Session and message-driven  For business domain code  Provides componentization and modularization > JMS and MDBs for critical business processes 18
  19. 19. Web + EJB + JMS Discussion > Advantages  Support from many tools  Compatibility with different containers  Better modularity with EJBs  Increased reliability with JMS and MDBs > Disadvantages  Greater complexity 19
  20. 20. Web + EJB + JMS Where we are using? > Senior team with Java EE 5 experience > Scalability available with Java EE > Conservative business scenario > Cross-vendor environment 20
  21. 21. Agenda > Introduction > Architectures:  Pure Web  Web + EJB + JMS  Spring  JBoss Seam  Spring + JBoss Seam > Tools & Tips > Conclusions 21
  22. 22. Spring Foundations JavaServer Faces } > > Facelets Used in Pure Web > JSF Ajax component library > POJOs and message-driven POJOs > Spring component (POJO)  Business domain code > Spring AOP > Spring Security 22
  23. 23. Spring Discussion > Advantages  Credibility from users  Integration: Struts, JSF, EJB, POJO, Wicket, etc.  Modularity support with OSGi  Strong AOP support and culture; > Disadvantages  Not a JCP Standard;  Commercial Support (at least for our market!)  Future? 23
  24. 24. Spring Where we are using > Senior teams of developers > Complex Transaction and security > Integration with non-specified (JCP) technologies and frameworks > Reliable and conservative enterprise architecture 24
  25. 25. Agenda > Introduction > Architectures:  Pure Web  Web + EJB + JMS  Spring  JBoss Seam  Spring + JBoss Seam Architecture > Tools & Tips > Conclusions 25
  26. 26. JBoss Seam Foundation > Integration model for Java EE JavaServer Faces } > Used in Pure Web > Facelets > JSF AJAX Component library > With or without EJBs > Uses Seam Component (POJO) as main component > Security with JBoss Rules 26
  27. 27. JBoss Seam Discussion > Advantages  Anticipate Java EE 6: bookmarkable URL, conversation, injection, validation;  JSR 299 - Contexts and Dependendency Injection for the Java EE platform  Transparent use of EJBs > Disadvantages  Harder container migration  Deployment time difficulty  Future with Java EE 6 27
  28. 28. JBoss Seam Where we are using? > Projects already using JBoss Platform > More complex Web applications > Applications that require  Support for BPM and SOA  Better security model for Web  Contexts for integration / long term transaction 28
  29. 29. JBoss Seam DEMO 29
  30. 30. Agenda > Introduction > Architectures:  Pure Web  Web + EJB + JMS  Spring  JBoss Seam  Spring + JBoss Seam > Tools & Tips > Conclusions 30
  31. 31. Spring + JBoss Seam Foundation JavaServer Faces } > Used in Pure Web > Facelets > JSF Ajax Component Library > Components  Spring  Seam > Spring Security > Spring AOP “Imagine all the frameworks living life in piece.”, 31
  32. 32. Spring + JBoss Seam Discussion > Spring benefits  Integration model for enterprise applications with enterprise services  Simplifies the usage of AOP and OSGi  Great solution for the business tier  Best for stateless components > Seam benefits  Provides asynchronous, concurrent and stateful access to components in a Web context  Manages the persistence context at the Web tier  Great solution for the presentation tier  Best for stateful components 32
  33. 33. Spring + JBoss Seam Recommendations > Requires experienced senior team > Large legacy code: Struts, Spring, JSF, EJB… > High TCO > Hard maintenance > Extreme Learning Curve 33
  34. 34. Spring+Seam DEMO 34
  35. 35. Agenda > Introduction > Architectures: 1. Pure Web 2. Web + EJB + JMS 3. Spring 4. JBoss Seam 5. Spring + JBoss Seam > Tools & Tips > Conclusions 35
  36. 36. Improving JSF 1.2 > PrettyFaces  Bookmarkable URL in JSF 1.2 > FacesAnnotations  Protected managed bean methods with declarative security  SecurityRoles > JSFSecurity  JSF Expression Language extended to improve security inside pages  securityScope 36
  37. 37. Where is the architecture’s code? 37
  38. 38. SuperCRUD.com > Web engine to generate CRUD applications based on collaborative artifacts; > Online entity editor; > Different architecture templates can be used, including the 5 presented architectures; > Templates can be customized; > Artifacts templates can be customized; > Open-source project; 38
  39. 39. SuperCRUD.com DEMO 39
  40. 40. Agenda > Introduction > Architectures: 1. Pure Web 2. Web + EJB + JMS 3. Spring 4. JBoss Seam 5. Spring + JBoss Seam > Tools & Tips > Conclusions 40
  41. 41. Conclusions > Java EE + frameworks achieve most of the companies needs; > Architectures may vary depending on localization; > Pure Java EE 6 architectures will be much more powerful; 41
  42. 42. Our Java EE map: #1 #2 #3 #4 #5 web web+ejb Spring Seam Seam+Spring Scalability Team skills Tools Productivity Commercial Support* Cost Security OSGi SOA Web 2.0 42
  43. 43. Java EE 6 Java EE 6 Scalability Team skills Tools Productivity Commercial Support* Cost Security OSGi Glassfish SOA Web 2.0 43
  44. 44. What your project are looking for? Scalability Maintainability Reliability Availability Extensibility Manageability Performance Mobility Compatibility Usability Connectivity Testability Modularity Interoperability Security Toolability Auditability Risk Commercial Support Cost Productivity Team Skills Accessibility Sustainability 44
  45. 45. THANKS! Vinicius Senger vinicius@globalcode.com.br Alberto Lemos spock@globalcode.com.br www.globalcode.com.br www.supercrud.com 45
  46. 46. Vinicius Senger vinicius@globalcode.com.br Alberto Lemos alberto@globalcode.com.br 46

×