Date post: | 10-May-2015 |
Category: |
Technology |
Upload: | citytech-inc |
View: | 2,712 times |
Download: | 0 times |
Accelerating Legacy Application Modernization using the JBoss
Seam Framework
Jeff D. Brown, Senior [email protected]
http://www.citytechinc.comMarch 23, 2010
Agenda
CITYTECH Introduction
JBoss Seam Overview
Application Modernization
Seam for Application Modernization
Case Study
Conclusion / Q&A
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.
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
Agenda
CITYTECH Overview
JBoss Seam Overview
Application Modernization
Seam for Application Modernization
Case Study
Conclusion/ Q&A
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
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
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”
Agenda
CITYTECH Overview
JBoss Seam Overview
Application Modernization
Seam for Application Modernization
Case Study
Conclusion/ Q&A
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.
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
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
SOA
Modernizing Oracle Forms Application Using JBoss Seam
Oracle Database
Legacy Forms
Application
ModernizedApplication Oracle
DatabaseBusiness Services
BEFORE
AFTER
Seam
SeamExisting Database
Stays Same
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
Modernizing Microsoft Access Application using JBoss Seam
Access Database
Legacy Access
Application
ModernizedApplication
MySQL or PostgreSQL
Database
BEFORE
AFTER
SeamNew Database
Agenda
CITYTECH Overview
JBoss Seam Overview
Application Modernization
Seam for Application Modernization
Case Study
Conclusion/ Q&A
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
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!).
Agenda
CITYTECH Overview
JBoss Seam Overview
Enterprise Application Modernization
Seam for Application Modernization
Case Study
Conclusion
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
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.
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
Case Study: Modernizing a Microsoft Access Based Application
BEFORE
Case Study: Modernizing a Microsoft Access Based Application
AFTER
Case Study: Modernizing a Microsoft Access Based Application
AFTER
Case Study: Modernizing a Microsoft Access Based Application
AFTER
Agenda
CITYTECH Overview
JBoss Seam Overview
Enterprise Application Modernization
Seam for Application Modernization
Case Study
Conclusion / Q&A
Conclusion
Leverage JBoss’ Seam framework to automate the modernization of your legacy applications.
CITYTECH can help!
Contact Us to help with your enterprise application modernization initiatives!
Matt Van BergenChief Technology Officer312-673-6433 [email protected]://blogs.citytechinc.com/matthttp://twitter.com/mvanbergen
Jeff BrownSenior Consultant312-673-6433 [email protected]://blogs.citytechinc.com/jeffbrown
Melissa GeoffrionRed Hat Partnership Manager312-673-6433 [email protected]
Web: http://www.citytechinc.comPhone: 312-673-6433Email: [email protected]
Twitter: http://twitter.com/citytechBlogs: http://blogs.citytechinc.com