Citytech Application Modernization Using JBoss Seam

29
Accelerating Legacy Application Modernization using the JBoss Seam Framework Jeff D. Brown, Senior Consultant [email protected] http://www.citytechinc.com March 23, 2010

description

In this presentation, CITYTECH, a Red Hat JBoss Advanced Business Partner, shares how they leveraged the JBoss Seam framework to rapidly modernize legacy applications.

Transcript of Citytech Application Modernization Using JBoss Seam

Page 1: Citytech Application Modernization Using JBoss Seam

Accelerating Legacy Application Modernization using the JBoss

Seam Framework

Jeff D. Brown, Senior [email protected]

http://www.citytechinc.comMarch 23, 2010

Page 2: Citytech Application Modernization Using JBoss Seam

Agenda

CITYTECH Introduction

JBoss Seam Overview

Application Modernization

Seam for Application Modernization

Case Study

Conclusion / Q&A

Page 3: Citytech Application Modernization Using JBoss Seam

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.

Page 4: Citytech Application Modernization Using JBoss Seam

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

Page 5: Citytech Application Modernization Using JBoss Seam

Agenda

CITYTECH Overview

JBoss Seam Overview

Application Modernization

Seam for Application Modernization

Case Study

Conclusion/ Q&A

Page 6: Citytech Application Modernization Using JBoss Seam

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

Page 7: Citytech Application Modernization Using JBoss Seam

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

Page 8: Citytech Application Modernization Using JBoss Seam

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”

Page 9: Citytech Application Modernization Using JBoss Seam

Agenda

CITYTECH Overview

JBoss Seam Overview

Application Modernization

Seam for Application Modernization

Case Study

Conclusion/ Q&A

Page 10: Citytech Application Modernization Using JBoss Seam

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.

Page 11: Citytech Application Modernization Using JBoss Seam

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

Page 12: Citytech Application Modernization Using JBoss Seam

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

Page 13: Citytech Application Modernization Using JBoss Seam

SOA

Modernizing Oracle Forms Application Using JBoss Seam

Oracle Database

Legacy Forms

Application

ModernizedApplication Oracle

DatabaseBusiness Services

BEFORE

AFTER

Seam

SeamExisting Database

Stays Same

Page 14: Citytech Application Modernization Using JBoss Seam

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

Page 15: Citytech Application Modernization Using JBoss Seam

Modernizing Microsoft Access Application using JBoss Seam

Access Database

Legacy Access

Application

ModernizedApplication

MySQL or PostgreSQL

Database

BEFORE

AFTER

SeamNew Database

Page 16: Citytech Application Modernization Using JBoss Seam

Agenda

CITYTECH Overview

JBoss Seam Overview

Application Modernization

Seam for Application Modernization

Case Study

Conclusion/ Q&A

Page 17: Citytech Application Modernization Using JBoss Seam

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

Page 18: Citytech Application Modernization Using JBoss Seam

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!).

Page 19: Citytech Application Modernization Using JBoss Seam

Agenda

CITYTECH Overview

JBoss Seam Overview

Enterprise Application Modernization

Seam for Application Modernization

Case Study

Conclusion

Page 20: Citytech Application Modernization Using JBoss Seam

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

Page 21: Citytech Application Modernization Using JBoss Seam

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.

Page 22: Citytech Application Modernization Using JBoss Seam

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

Page 23: Citytech Application Modernization Using JBoss Seam

Case Study: Modernizing a Microsoft Access Based Application

BEFORE

Page 24: Citytech Application Modernization Using JBoss Seam

Case Study: Modernizing a Microsoft Access Based Application

AFTER

Page 25: Citytech Application Modernization Using JBoss Seam

Case Study: Modernizing a Microsoft Access Based Application

AFTER

Page 26: Citytech Application Modernization Using JBoss Seam

Case Study: Modernizing a Microsoft Access Based Application

AFTER

Page 27: Citytech Application Modernization Using JBoss Seam

Agenda

CITYTECH Overview

JBoss Seam Overview

Enterprise Application Modernization

Seam for Application Modernization

Case Study

Conclusion / Q&A

Page 28: Citytech Application Modernization Using JBoss Seam

Conclusion

Leverage JBoss’ Seam framework to automate the modernization of your legacy applications.

CITYTECH can help!

Page 29: Citytech Application Modernization Using JBoss Seam

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