Enterprise Web 2.0: from pristine Java EE to fully-loaded frameworks
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. 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. Agenda
> Introduction
> Architectures:
1. Pure Web
2. Web + EJB + JMS
3. Spring
4. JBoss Seam
5. Spring + JBoss Seam
> Tools & Tips
> Conclusions
3
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. 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. Agenda
> Introduction
> Architectures:
1. Pure Web
2. Web + EJB + JMS
3. Spring
4. JBoss Seam
5. Spring + JBoss Seam
> Tools & Tips
> Conclusions
6
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. 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
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. 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. Agenda
> Introduction
> Architectures:
Pure Web
Web + EJB + JMS
Spring
JBoss Seam
Spring + JBoss Seam Architecture
> Tools & Tips
> Conclusions
12
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. Pure Web
Discussion
> Advantages
Simplicity
Support from many tools
Compatibility with many different containers
> Disadvantages
Limited transaction and security management
Low modularity
14
15. Pure Web
Discussion
> GoF Patterns can be applied into Managed Beans:
Mediator, Façade, State
Memento, Decorator;
15
16. Pure Web
Where we are using?
> Startup projects
> Compatibility and cross-vendor environments
> Big development team
> Lower complexity projects
16
17. Agenda
> Introduction
> Architectures:
Pure Web
Web + EJB + JMS
Spring
JBoss Seam
Spring + JBoss Seam Architecture
> Tools & Tips
> Conclusions
17
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. 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. 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. Agenda
> Introduction
> Architectures:
Pure Web
Web + EJB + JMS
Spring
JBoss Seam
Spring + JBoss Seam
> Tools & Tips
> Conclusions
21
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. 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. 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. Agenda
> Introduction
> Architectures:
Pure Web
Web + EJB + JMS
Spring
JBoss Seam
Spring + JBoss Seam Architecture
> Tools & Tips
> Conclusions
25
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. 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. 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
30. Agenda
> Introduction
> Architectures:
Pure Web
Web + EJB + JMS
Spring
JBoss Seam
Spring + JBoss Seam
> Tools & Tips
> Conclusions
30
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. 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. Spring + JBoss Seam
Recommendations
> Requires experienced senior team
> Large legacy code: Struts, Spring, JSF, EJB…
> High TCO
> Hard maintenance
> Extreme Learning Curve
33
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
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. 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. 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. Java EE 6
Java EE 6
Scalability
Team skills
Tools
Productivity
Commercial Support*
Cost
Security
OSGi Glassfish
SOA
Web 2.0
43
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