Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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