In this presentation, CITYTECH, a Red Hat JBoss Advanced Business Partner, shares how they leveraged the JBoss Seam framework to rapidly modernize legacy applications.
Citytech Application Modernization Using JBoss Seam
1. Accelerating Legacy Application Modernization using the JBoss Seam Framework Jeff D. Brown, Senior Consultant jbrown@citytechinc.com http://www.citytechinc.com March 23, 2010
2. Agenda CITYTECH Introduction JBoss Seam Overview Application Modernization Seam for Application Modernization Case Study Conclusion / Q&A
3. CITYTECH Introduction Professional Services: Specializing in the design, development and execution of highly available and scalable enterprise applications Consultants: Average experience is 10 years Offices: Located in downtown Chicago, IL Goal: Strive for long-term partnerships with partners and clients Focus: Java EE and Grails.
4. CITYTECH Introduction Proponent to the open source business model with partnerships with both Red Hat and Alfresco Software Red Hat Advanced Business Partner since 2007 JBoss Expertise: Enterprise Application Platform (EAP) Enterprise SOA Platform (SOA-P) Enterprise Portal Platform (EPP) Red Hat Expertise: Red Hat Enterprise Linux Red Hat Enterprise Virtualization
5. Agenda CITYTECH Overview JBoss Seam Overview Application Modernization Seam for Application Modernization Case Study Conclusion/ Q&A
6. What is JBoss Seam? An open-source web framework developed by Red Hat employees and supported as part of the JBoss EAP subscription. Component architecture for JavaServer Faces (JSF) and Enterprise JavaBeans (EJB) 3.0 Integrates Java EE standards: Java Server Faces (JSF) Enterprise Java Beans (EJB3) Java Persistence API (JPA) Java Authentication and Authorization Services (JAAS) Provides for Dependency Injection (Bijection) Provides for concurrency and state management
7. Benefits of Using Seam Security included Rich UI included (“Web 2.0”) Cache included (performance) BPM included (page flows) Code Generation to kick-start development Messaging integration included
8. Benefits of Using Seam Additional stateful context scopes (Page, Conversation, Biz Proc) Dynamic Language support included (Groovy) Annotations instead of XML EL for page developers Tag libraries for rendering PDF, outgoing email, and charts Developer Tool support Hot deployment Debug page High “test-ability”
9. Agenda CITYTECH Overview JBoss Seam Overview Application Modernization Seam for Application Modernization Case Study Conclusion/ Q&A
10. Application Modernization What is Application Modernization? Benefits of Application Modernization Move to a supported and standards-based platform Reduce support and maintenance costs Enhance application usability Web-enable application with zero client install Provide application security Provide stakeholders with higher reliability, extensibility and scalability Modernizing an existing enterprise application involves porting a custom enterprise application from an obsolete platform or framework to a current day platform or framework reducing support costs and providing usability benefits to end users.
11. Application Modernization Challenges Risks The big unknown – what does this application actually do? End user expectations and training Support staff expectations and training Costs An unknown scope can lead to inability to estimate project accurately Legacy data migration Legacy data cleanup
12. Target Platforms Ripe for Modernization: Oracle Forms Why modernize? Proprietary with no long term new feature development road map The effort in moving from 6i to 10g and beyond may be as great as modernizing to a new platform anyway. Oracle moving its eBusiness Suite away from Forms to Fusion Over time, Forms apps will demand higher cost for support due to declining interest in new deployments. Inability to separate data, presentation logic and business logic
13. Modernizing Oracle Forms Application Using JBoss Seam Oracle Database Legacy Forms Application BEFORE Stays Same Modernized Application Business Services AFTER Oracle Database Seam Existing Database SOA Seam
14. Target Platforms Ripe for Modernization: Microsoft Access Why Modernize? Typically grows from a one person “utility” application into a departmental wide, multiple user application. Very limited scalability Inherently unsecure Does not handle multiple users Lacks disaster recovery capabilities Difficult to maintain – bug fixes or new features fall to the original developer. No source code management
15. Modernizing Microsoft Access Application using JBoss Seam Access Database Legacy Access Application BEFORE Modernized Application MySQL or PostgreSQL Database AFTER Seam New Database
16. Agenda CITYTECH Overview JBoss Seam Overview Application Modernization Seam for Application Modernization Case Study Conclusion/ Q&A
17. Leverage JBoss Seam for Modernizing Applications Why? Provides utilities to jump start your modernization process Based on accepted and highly used standards Allows for freedom of CHOICE Presentation choice (JSF, Flex, Wicket, Tapestry, GWT) Architectural choice (presentation vs. business. logic) POJO or EJB Deployment (app server or servlet container) Professionally Supported by Red Hat or Community Java and/or Groovy Scale (single instance to massive HA cluster with Failover) Standalone and/or Portal
18. JBoss Seam’s Tools for Rapid Modernization Project generator serving two main functions: Sets up the structure of a Seam-based project Build script Environment profiles Libraries Eclipse and NetBeans project files Creates a fully functional CRUD application Reverse engineers an existing database schema There really are a LOT of advantages to starting with the seam-gen structure. I did a lot of work on things that will take you a while to reproduce if you do it all from scratch (like, weeks of work!).
19. Agenda CITYTECH Overview JBoss Seam Overview Enterprise Application Modernization Seam for Application Modernization Case Study Conclusion
20. Case Study: Application Modernization using Seam Application Function: Manages Departmental Employee Disciplinary Actions State before Modernization Microsoft Access based application Originally only used by a handful of departmental users, but now requested across departments Used hardcoded paths in the database to reference documents related to disciplinary cases. Required Access installed and local network drive mappings No security or audit trail No proven process for backup and disaster recovery Needing new functionality, original developer no longer around
21. Case Study: Modernizing a Microsoft Access Based Application Modernization Process Analyzed the VBA code and related tables. Documented business rules and main entities in the system. Leveraged a utility called “Access to MySQL” to migrate the data from Access to MySQL Optimized the database schema by creating additional keys, increased data constraints and renamed tables and columns for consistency.
22. Case Study: Modernizing a Microsoft Access Based Application Modernization Process Seam setup (set up project defaults) Seam create-project (create the Eclipse project) Seam generate (create all application artifacts based on the MySQL Database) At this point there is a fully-functional web application with CRUD functionality! Extended generated artifacts and user interface elements. Test, Deploy, Run
23. Case Study: Modernizing a Microsoft Access Based Application BEFORE
24. Case Study: Modernizing a Microsoft Access Based Application AFTER
25. Case Study: Modernizing a Microsoft Access Based Application AFTER
26. Case Study: Modernizing a Microsoft Access Based Application AFTER
27. Agenda CITYTECH Overview JBoss Seam Overview Enterprise Application Modernization Seam for Application Modernization Case Study Conclusion / Q&A
28. Conclusion Leverage JBoss’ Seam framework to automate the modernization of your legacy applications. CITYTECH can help!
29. Contact Us to help with your enterprise application modernization initiatives! Matt Van Bergen Chief Technology Officer 312-673-6433 x111 mvanbergen@citytechinc.com http://blogs.citytechinc.com/matt http://twitter.com/mvanbergen Jeff Brown Senior Consultant 312-673-6433 x114 jbrown@citytechinc.com http://blogs.citytechinc.com/jeffbrown Web: http://www.citytechinc.com Phone: 312-673-6433 Email: sales@citytechinc.com Twitter: http://twitter.com/citytech Blogs: http://blogs.citytechinc.com Melissa Geoffrion Red Hat Partnership Manager 312-673-6433 x148 mgeoffrion@citytechinc.com
Notas do Editor
Jdashjhd
Matt to cleanup
Jdashjhd
Mention that it can be POJO or Session Beans
Jeff Brown to confirm
Jeff Brown to confirm
Jdashjhd
Jdashjhd
Jeff to tidy up – can we reduce the number of words here and add some graphics?