34
Web Services Done Right Done Quickly Matthew Fowler New Technology/enterprise Ltd London

Web Services Done Right Done Quickly

  • Upload
    arawn

  • View
    40

  • Download
    5

Embed Size (px)

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 Presentation

Citation preview

Page 1: Web Services Done  Right Done  Quickly

Web ServicesDone Right

Done Quickly

Matthew Fowler

New Technology/enterprise Ltd

London

Page 2: Web Services Done  Right Done  Quickly

Agenda

• NT/e's Experience

• Architecture for Web Services

• JeeWiz - A J2EE System Generator

Page 3: Web Services Done  Right Done  Quickly

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

Page 4: Web Services Done  Right Done  Quickly

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

Page 5: Web Services Done  Right Done  Quickly

Part 2.Architecture for Web Services

• The Background - BT Project

• The Battles

• The Principles

• The Architecture - A Synthesis

Page 6: Web Services Done  Right Done  Quickly

• British Telecom

• Internal System Team

• "Common Entry Point" – Multi-channel, multi-client ... large!

• WLS replaced – IBM DCE RPC – WLE

The Background

Page 7: Web Services Done  Right Done  Quickly

BusinessCustomers

COSMOS

CustomerInformation

Mainframes

WebLogicEnterprise

Login MUX

WebLogic Server Mid-Tier

BusinessCustomers

RetailCall Centre

BT.com

NetworkManagement

Client Systems

Page 8: Web Services Done  Right Done  Quickly

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

Page 9: Web Services Done  Right Done  Quickly

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

Page 10: Web Services Done  Right Done  Quickly

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

Page 11: Web Services Done  Right Done  Quickly

Stateful or Stateless

• Issue: amount of mid-tier information

• Need: response-time/throughput goals

• Resolution: allow either

Page 12: Web Services Done  Right Done  Quickly

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

Page 13: Web Services Done  Right Done  Quickly

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

Page 14: Web Services Done  Right Done  Quickly

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

Page 15: Web Services Done  Right Done  Quickly

• 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

Page 16: Web Services Done  Right Done  Quickly

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

Page 17: Web Services Done  Right Done  Quickly

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

Page 18: Web Services Done  Right Done  Quickly

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 ???

Page 19: Web Services Done  Right Done  Quickly

• J2EE Development 1999-2001

• The JeeWiz! Vision

• How JeeWiz! Works

• Benefits

• Next Steps

Part 2. The Java Enterprise System

Builder

Page 20: Web Services Done  Right Done  Quickly

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

Page 21: Web Services Done  Right Done  Quickly

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

Page 22: Web Services Done  Right Done  Quickly

The JeeWiz! Vision

First Vertical Slice, Localised, in 2 Weeks

Good for small or large enterprises

Page 23: Web Services Done  Right Done  Quickly

The JeeWiz! Vision - Goals

• Simplify for application developers

• Easier adaptation to change

• Package architectural patterns

• Reduce start-up time

• Reduce cost

• Reduce risk

Page 24: Web Services Done  Right Done  Quickly

How JeeWiz! Works

FoundationAnt + Patterns + XML Specifications

J2EE SystemComponents and Patterns for Web Services

Application Development and Deployment

Page 25: Web Services Done  Right Done  Quickly

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

Page 26: Web Services Done  Right Done  Quickly

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

Page 27: Web Services Done  Right Done  Quickly

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

Page 28: Web Services Done  Right Done  Quickly

JeeWiz! Foundation - Deployment

• Runnable WLS configuration

• Application programmer generates unit test deployment

• Assembler / deployer add overrides

• XSL-T (XML Transformations) today

• 'XMLMerge' utility tomorrow

Page 29: Web Services Done  Right Done  Quickly
Page 30: Web Services Done  Right Done  Quickly

JeeWiz! Foundation

• Patterns help application programmers– reduces effort– reduces complexity– reduces risk– eases maintenance– promotes standards

• Foundation can be adapted to new areas

Page 31: Web Services Done  Right Done  Quickly

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

Page 32: Web Services Done  Right Done  Quickly

Customer Benefits

• Cheaper, quicker start-up

• Improved productivity for bulk of developers

• Cheaper, quicker maintenance

• Clearer reponsibilities for personnel

• Easier to use new technologies

Page 33: Web Services Done  Right Done  Quickly

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

Page 34: Web Services Done  Right Done  Quickly

JeeWiz! Futures

• Automatic testing

• Integration with Rational Rose / RUP

• Documentation production

• Business Rules using EJB2.0

• JCA, integration with WLI