web services done right done quickly
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Web ServicesDone 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
• British Telecom
• Internal System Team
• "Common Entry Point" – Multi-channel, multi-client ... large!
• WLS replaced – IBM DCE RPC – WLE
The Background
BusinessCustomers
COSMOS
CustomerInformation
Mainframes
WebLogicEnterprise
Login MUX
WebLogic Server Mid-Tier
BusinessCustomers
RetailCall Centre
BT.com
NetworkManagement
Client Systems
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
• 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
Access to Mainframes/back-end services
Business Process Objects (Java)Business Process Objects (Java) Client-Specific Business ProceduresAccessible Business Processes
Services (Session EJBs) Services (Session EJBs) Client Identity, BP Selection, Exception HandlingAccessible Services
Business Objects (Java)Business Objects (Java) e.g. AccountBO, CustomerBO, OrderBOBusiness Concepts
Dependent DataDependent Data e.g. OrderLine
Information Objects (Java)Information Objects (Java) e.g. Account, Customer, OrderBusiness Information
Dependent DataDependent Data
Access Routes (Servlets)Access Routes (Servlets) Pluggable Access Routes, e.g. SOAP, Http/XMLChannels
Persistence / TransactionsPersistence / Transactions EJB, Connectors, Web Services, CORBAPersistence
Services - Session EJBsServices - Session EJBs
Business ProcessesBusiness Processes
Http/XMLServlet
Http/XMLServlet
SOAPServletSOAPServlet
Http/XMLClient
Http/XMLClient
SOAP ClientSOAP Client
WLS
JavaClientJava
Client
Business ProcessAutomation
Business ProcessAutomation
Business Objects Business Objects
Information ObjectsInformation Objects
CORBACORBA
Generic BO AccessGeneric BO Access
EJBEJB WebServicesWebServices JCAJCA
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 ???
• J2EE Development 1999-2001
• The JeeWiz! Vision
• How JeeWiz! Works
• Benefits
• Next Steps
Part 2. The Java Enterprise System
Builder
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
FoundationAnt + Patterns + XML Specifications
J2EE SystemComponents and Patterns for Web Services
Application Development and Deployment
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
Architect
J2EE Expert
ApplicationAnalyst
ApplicationProgrammer
Assembler /Deployer
ApplicationSpecification
DeploymentDescriptions
SystemTestApp Servers
ProductionApp Servers
Unit TestApp Servers
Out-of-the-boxpatterns and
standards
Patterns +Standards
Implementation
ApplicationImplementation
Patterns +Standards
Specification
JeeWiz! Foundation - Process
JeeWiz! Foundation - Patterns
entityname Account
attributename AccountID
type int
key true
public class AccountAccountPK {
public AccountPK() {} abstract public int getAccountID();abstract public int getAccountID(); abstract public void setAccountID( int i );abstract public void setAccountID( int i );
}
AccountAccountPK.java=
=
=
=
Application Specification Generated Code and Descriptors
/src/AccountAccountEJB/Directory NamingDirectory NamingFile NamingFile Naming
Java Object NamingJava Object Naming
Code generationCode generation
<entity> <ejb-name>AccountBeanAccountBean</ejb-name></entity>
Deployment Deployment descriptor descriptor generationgeneration
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