Web Services Done Right Done Quickly

Document Sample
Web Services Done Right Done Quickly Powered By Docstoc
					     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
                 WebLogic Server                    Business
                                    Enterprise
                    Mid-Tier                       Customers
                                   Login MUX

   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)        e.g. AccountBO, CustomerBO, OrderBO

               Dependent Data             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        SOAP               Java
          Client        Client            Client

                                                     W
        Http/XML        SOAP                         L
         Servlet        Servlet
                                                     S
           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                                                      Unit Test
                                                                                               App Servers


                Patterns +
                Standards                                                       Application
               Specification                                                  Implementation
Architect
                                                                Application                    SystemTest
                                                                Programmer                     App Servers

                                              Application
                               Application   Specification
                                Analyst
      Out-of-the-box
       patterns and                                                                            Production
        standards                                                               Deployment     App Servers
                                                                                Descriptions
                                                                Assembler /
                                                                 Deployer
         JeeWiz! Foundation - Patterns

    Application Specification                                      Generated Code and Descriptors

                                        Directory Naming     /src/AccountEJB/
         name     = Account
entity                                    File Naming                AccountPK.java

                 name    = AccountID   Java Object Naming   public class AccountPK {
     attribute
                 type    = int                                  public AccountPK() {}
                 key     = true          Code generation        abstract public int getAccountID();
                                                                abstract public void setAccountID( int i );
                                                            }



                                           Deployment       <entity>
                                            descriptor         <ejb-name>AccountBean</ejb-name>
                                           generation       </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