JeeWiz The Java Enterprise System Builder
Download
Report
Transcript JeeWiz The Java Enterprise System Builder
Web Services
Done Right
Done Quickly
Matthew Fowler
New Technology/enterprise Ltd
London
Agenda
• NT/e's Experience
• Architecture for Web Services
• JeeWiz - A J2EE System Generator
NT/e’s Experience with BEA
•
•
•
•
•
•
•
40 Projects on behalf of BEA
All sizes - very large to small
All roles - architect to deployer
All stages - Proof Of Concept to go-live
WLS Training - Development, Admin
WLS 4.0 -> WLS 6.1
WLC, WLPI, WLCS
Some Projects
•
•
•
•
•
•
Banks: Deutsche, Dresdner, UBS Warburg
Finance: Capital One, EBRD, Crest
Comms: British Telecom, Nokia, Equant
FT100: BA, BP Amoco, Sainsburys
Others: FT, TAG Maclaren, Jumpy, Vizzavi
BEA Partners: Accenture, CSC, Scient
Part 2.
Architecture for Web Services
•
•
•
•
The Background - BT Project
The Battles
The Principles
The Architecture - A Synthesis
The Background
• British Telecom
• Internal System Team
• "Common Entry Point"
– Multi-channel, multi-client ... large!
• WLS replaced
– IBM DCE RPC
– WLE
Client Systems
Mainframes
Retail
Call Centre
Customer
Information
BT.com
WebLogic Server
Mid-Tier
WebLogic
Enterprise
Login MUX
Business
Customers
Business
Customers
COSMOS
Network
Management
The Battles
•
•
•
•
•
•
•
RMI or EJB access route
Straight-through, no value-add
Stateful or Stateless
Ru-Use on Business Objects
Access to "Entities"
Where is the business logic
Access to mainframes/back-end services
RMI or EJB access route
•
•
•
•
Issue: RMI access simpler, it's an option
Need: Transaction & network management
Resolution: EJB - RMI excluded
Realisation: EJB Facade layer
Straight-through, no value-add
• Issue: enough business logic on mainframe
• Need: access to login server
• Resolution: Support straight-through
– Value added
• Transaction & network management
• Access Routes at front and back ends
• Realisation: Special Session EJBs
Stateful or Stateless
• Issue: amount of mid-tier information
• Need: response-time/throughput goals
• Resolution: allow either
Re-Use on Business Objects ?
• Issue: Scepticism concerning reuse on
"Business Objects"
• Need: ROI demands maximal reuse
• Resolution:
– Reusable "Business Objects"
– Non-reusable "Business Process Objects"
• Realisation: BPOs and BOs
Access To "Entities"
• Issue: "give me entity info, no biz process"
• Need: simple multi-client access to entity
information
• Resolution: allow access to Biz Objects
• Realisation: generic "BO Access" Session
EJB
• Caveat: use for retrieval only
Where is the business logic
•
•
•
•
Issue: Why have business logic in mid-tier?
Need: Performance, ease of programming
Resolution: allow none, or lots
Realisation: three styles:
– no business object
– access to business object via generic EJB
– use full BPO stack
Access to Mainframes/back-end
services
• Issues:
– Little objects, big transactions
– Multiple-choices for mainframe transactions
– Migration to WebServices at M/F
• Resolution:
– Information Layer driven by Business Process
– Smart mapping, caching, XML intermediate
Channels
Access Routes (Servlets)
Pluggable Access Routes, e.g. SOAP, Http/XML
Accessible Services
Services (Session EJBs)
Client Identity, BP Selection, Exception Handling
Accessible Business Processes
Business Process Objects (Java)
Client-Specific Business Procedures
Business Concepts
Business Objects (Java)
Dependent Data
e.g. AccountBO, CustomerBO, OrderBO
e.g. OrderLine
Business Information
Information Objects (Java)
e.g. Account, Customer, Order
Dependent Data
Persistence
Persistence / Transactions
EJB, Connectors, Web Services, CORBA
Business Process
Automation
Http/XML
Client
Http/XML
Servlet
Java
Client
SOAP
Client
W
L
S
SOAP
Servlet
Services - Session EJBs
Business Processes
Generic BO Access
Business Objects
Information Objects
CORBA
EJB
WebServices
JCA
Done Right
• Major long-term savings
• Can handle highly complex processes
• But not done quickly
– Long Proof
– Application Programmer training
How to do it quickly ???
Part 2.
The Java Enterprise System Builder
•
•
•
•
•
J2EE Development 1999-2001
The JeeWiz! Vision
How JeeWiz! Works
Benefits
Next Steps
J2EE Development 1999-2001
• Start-up long and expensive
– Architecture, PoC, Performance, Document
– And finally … the application
• Constant Change - EJB1.1/2.0, JSPs, Portals
• Mixing of Infrastructure and App
Development
• Complex, difficult to change
J2EE Development Example
•
•
•
•
8 months duration, average 4 people
Develop sample, productise, throw away
Develop sample, productise, document
Try to teach Application programmers
– But it was really hard
• Total cost: > DM 1,000,000
The JeeWiz! Vision
First Vertical Slice, Localised, in 2 Weeks
Good for small or large enterprises
The JeeWiz! Vision - Goals
•
•
•
•
•
•
Simplify for application developers
Easier adaptation to change
Package architectural patterns
Reduce start-up time
Reduce cost
Reduce risk
How JeeWiz! Works
Application Development and Deployment
J2EE System
Components and Patterns for Web Services
Foundation
Ant + Patterns + XML Specifications
JeeWiz! Foundation - Tools
• Ant - Java-based builder
– more intelligence into the build process
• Velocity - pattern generator
– separate patterns from application definition
• XML
– the new specification and interchange language
JeeWiz! Foundation - Process
Patterns +
Standards
Implementation
J2EE Expert
Architect
Unit Test
App Servers
Patterns +
Standards
Specification
Application
Implementation
SystemTest
App Servers
Application
Programmer
Application
Analyst
Application
Specification
Out-of-the-box
patterns and
standards
Deployment
Descriptions
Assembler /
Deployer
Production
App Servers
JeeWiz! Foundation - Patterns
Application Specification
entity
name
attribute
= Account
name
type
key
= AccountID
= int
= true
Generated Code and Descriptors
Directory Naming
File Naming
Java Object Naming
/src/AccountEJB/
AccountPK.java
public class AccountPK {
public AccountPK() {}
abstract public int getAccountID();
abstract public void setAccountID( int i );
Code generation
}
Deployment
descriptor
generation
<entity>
<ejb-name>AccountBean</ejb-name>
</entity>
JeeWiz! Foundation Deployment
• Runnable WLS configuration
• Application programmer generates unit test
deployment
• Assembler / deployer add overrides
• XSL-T (XML Transformations) today
• 'XMLMerge' utility tomorrow
JeeWiz! Foundation
• Patterns help application programmers
–
–
–
–
–
reduces effort
reduces complexity
reduces risk
eases maintenance
promotes standards
• Foundation can be adapted to new areas
JeeWiz! J2EE Patterns
• Builds on the Foundation
• Design language for J2EE applications
• A complete set of patterns for
– Web Services ...
– to EJBs
• Includes deployment
• Doesn't (yet) include testing, Rational Rose
Customer Benefits
• Cheaper, quicker start-up
• Improved productivity for bulk of
developers
• Cheaper, quicker maintenance
• Clearer reponsibilities for personnel
• Easier to use new technologies
JeeWiz USPs
• Combination of
– build engine is end-to-end and adaptable
– NT/e's EJB pattern
– enterprise-level features for deployment
• EJB2.0 and Web Services
• No run-time overhead/cost
JeeWiz! Futures
•
•
•
•
•
Automatic testing
Integration with Rational Rose / RUP
Documentation production
Business Rules using EJB2.0
JCA, integration with WLI